반응형 Computer Science/운영체제13 Memory Management 2 - Paging 저번 글에서 메모리 관리를 위해 사용하는 방법에 대해서 알아봤다. dynamic relocation의 방법 중 fixed/variable partitions와 segmentation에 대해 알아봤었는데 paging이라는 방법도 있다고 했다. 이 방법은 셋 중 가장 보편적으로 사용되는 방법이고 내용도 상대적으로 많기 때문에 이 글에서 따로 다뤄볼 생각이다. Structure of Virtual Memory paging에 대해 알아보기 전에 우선 가상메모리가 어떤 식으로 구성되는지 간단히 알아보자. 가상 메모리는 각각의 프로세스에게 굉장히 많은 메모리 공간이 있는 것처럼 보이게 한다고 했다. 이러한 가상 메모리 공간의 크기는 어떻게 될까 컴퓨터 OS, 프로그램 등을 설치할 때 32bit/64bit로 버전이 .. 2022. 5. 19. Memory Management 1 이 글에서는 OS가 하는 일 중 하나인 메모리 관리에 대해 알아보자. 많은 프로그램이 메모리에 올려져서 실행이 되는데 OS는 여려개의 응용 프로그램들이 한정된 메모리 자원을 사용하는 것을 관리해야 한다. 컴퓨터가 막 나온 1950년대 초반같은 경우에는 effective address가 실제 물리적인 메모리 주소였었다. 이때는 전체 시스템에 대한 접근이 제한되지 않은 채 한번에 하나의 프로그램만 실행될 수 있었다. 그 이후에는 다중 프로그래밍이 등장하였는데 2개 이상의 프로그램에서 CPU나 I/O 작업이 겹치게 될 경우에는 처리량이 증가하였다. 어쨌든 이러한 이유로 fig 1처럼 메모리에 여러 프로그램을 올려야 했다. 이때 각 프로그램이 올려지는 위치는 서로 독립적으로 하여 프로그래밍이나 스토리지 관리를 .. 2022. 5. 16. Deadlock 이전 글에서 synchronization(동기화)을 이루기 위해 lock을 사용하였었다. 하지만 간단한 예제가 아닌 실제 상황에서는 performance의 큰 저하 없이 lock으로 병렬성(동시성)을 만들어내는게 쉽지 않은 걸 알았다. 만약 lock을 촘촘하게 한다면 병렬성은 올라가도 오버헤드도 증가하기 때문에 성능이 감소할 수도 있고 구조가 복잡해지면 deadlock이 발생할 수도 있었기 때문이다. 이 글에서는 deadlock에 대해 더 알아보고, 컴퓨터 시스템의 deadlock을 예방하거나 피하기 위해 사용하는 방법들도 살펴볼 것이다. System Model 여기서는 다음과 같은 모델을 사용한다. 시스템은 cpu, memory, I/O device 등의 자원(resource)으로 이루어져 있다. 단순.. 2022. 5. 10. Synchronization 2 이전 글에서는spinlock 방법을 알아봤다. 하지만 이 방법은 프로세스가 대기하고 있는 동안 다른 프로세스를 실행할 수 없다거나(busy waiting) 사이클 낭비를 초래하게 되는 단점이 있었다. 그리고 모든 프로세스가 critical section(cs로 줄임)에 들어가야 한다는 bounded wating 또한 충족할 수 없었다. spinlock방법은 컨텍스트 스위칭이 발생하지 않기 때문에(어쨌든 프로세스는 바뀌지 않고 lock을 얻으려고 시도하니깐) cs의 길이가 짧은 경우에는 더 유리하긴 하다. 이 글에서는 그렇지 않은 경우에 더 유리한 synchronization을 high-level 수준에서 구현한 방법들에 대해 알아볼 것이다. Semaphores 이전 글에서의 spinlock 방법말고 b.. 2022. 4. 21. 이전 1 2 3 4 다음 반응형