🖥 가상 메모리 관리
·
독서/운영체제
가상 메모리는 비연속 할당된 메모리 영역에 블록 단위로 사용자 프로그램을 자르고, 잘려진 블록 단위들은 가상 메모리 시스템에 따라서 적절한 위치와 크기로 적재/실행한다. 이제 가상 메모리 시스템을 적절한 모델을 기반하여 다양한 최적화 기법을 학습해보자. Cost model for Virtual Memory. 가상 메모리 접근할 때 적재되지 않은 메모리에 접근할 때 Page fault 발생 시 프로세스는 실행 상태에서 대기 상태로 이동하면서 Context switching 및 커널 개입이 발생하여 큰 비용이 발생한다. 따라서 가상 메모리 최적화에 적용할 Cost model은 Page fault frequency(발생 빈도)와 Page fault rate(발생률)를 기준으로 발생 빈도/률을 최소화 할 수 있..
🖥 메모리 관리
·
독서/운영체제
지금까지 우리는 운영체제가 관리하는 중요한 대상인 프로세스에 대해 공부했다. 이번 장에서는 운영체제가 중요하게 관리하는 대상인 메모리에 대해서 공부하게 된다. 배경 지식 메모리 할당 연속된 메모리 할당 연속된 메모리 할당(Continuous memory allocation)은 우리가 실행한 프로그램, 즉 프로세스를 하나의 연속된 메모리에 배치되도록 하는 방법이다. 따라서 메모리에 올라갈 수 있는 프로세스의 수, 각 프로세스에게 할당되는 메모리 공간 크기, 메모리 분할 방법등의 메모리 구성 정책이 필요하다. Uni-programming 연속된 메모리 할당에선 메모리에 올라갈 수 있는 프로세스의 수에 따라서 크게 Uni-programming/Multi-programming으로 나눌 수 있다. 그 중 Uni-..
🖥 교착상태
·
독서/운영체제
프로세서는 필요한 자원을 얻기 위해 Blocked 상태로 전이될 수 있다고 알고 있다. 하지만 필요한 자원이 영원히 얻을 수 없는 상태가 된다면 이를 Deadlock 상태라고 하며, 이런 Deadlock된 프로세스가 시스템내에 존재한다면 시스템이 deadlock 상태에 있다라고 말하게 된다. Deadlock vs. Starvation 일을 할 수 없는 상태를 두고 본다면, Starvation(이하 기아 현상)과 Deadlock(이하 교착 상태)은 비슷하다고 생각될 수 있다. 하지만 기아 현상의 경우는 운이 없어서 내 차례가 계속 밀리게 되는 현상이고, Deadlock의 경우 가능성이 0%인 상황이다. 또 기아 현상은 _Ready queue_에서 발생하는 반면, Deadlock은 _Wait queue_(사..
🖥 CPU 스케쥴링
·
독서/운영체제
CPU 스케쥴링은 멀티 프로그래밍 운영체제의 기본이며, 멀티 프로그래밍의 항상 어떠한 프로세스를 실행할 수 있고, CPU 활용을 극대화하기 위한 목적이다. CPU 스케쥴링의 기본 컨셉은 우리가 사용하는 대부분의 프로세스는 CPU burst보다 I/O burst인 시간이 더 많고, 따라서 I/O burst인 시간에 CPU burst인 다른 프로세스를 수행하게 되면 성능의 올릴 수 있다는 것이다. 따라서 CPU 스케쥴링은 Reday큐에 있는 다음 CPU가 필요한 프로세스를 선정해야하는데 매우 간단하게 FIFO queue와 Priority queue를 생각해볼 수 있다. Non-preemptive scheduling 현재 CPU를 선점 중인 프로세스가 자발적으로 종료 또는 Wating 큐로 스위칭하기 전까지 ..
🖥 쓰레드의 이해
·
독서/운영체제
앞서 알아본 내용에는 여러개의 프로세스가 메모리에 올라가고 각 프로세스를 시분할하여 마치 동시에 실행되는것 처럼 동작하였다. 하지만 이런 방식은 동일한 프로세스가 수행해야할 작업을 동시에 처리하기 위해서는 동일한 프로세스를 복사하여 수행해야 하는 문제가 있다. 따라서 프로세스의 목적성을 유지하면서 가볍게 처리하기 위한 방법이 쓰레드이다. 쓰레드는 다음과 같은 특징이 있다. 가벼운 프로세스 (aka. LWP) CPU 활용의 기본 단위 쓰레드 ID, 프로그램 카운트, 레지스터 셋, 스택등으로 구성 이렇듯 쓰레드는 자기가 속한 프로세스의 코드와 데이터등을 공유하며 동시에 여러개가 수행되기 때문에 다음과 같은 이점을 가지고 있다. 반응성 실행 흐름이 여러 작업을 처리해도 지속적으로 이어질 수 있어 UI같은 경우..
🖥 프로세스
·
독서/운영체제
작업(Job)은 디스크상의 프로그램(데이터)이며 컴퓨터 시스템에 실행 요청 된 상태를 프로세스라 하고 불린다. 즉 실행을 위해 시스템 커널에 등록된 작업을 의미한다. 따라서 프로세스는 다음과 같이 정의된다. 커널에 등록되고 커널의 관리하에 있는 작업 커널에 의해 스케쥴링 대상이되며 프로그램에 기록된 명령어를 수행하여 목적을 달성한다. 각종 자원들을 요청하고 할당 받을 수 있는 개체 작업에 필요한 리소스를 커널에게 요청 및 할당하여 자신의 임무를 수행한다. 프로세스 관리 블록(PCB)을 할방 받은 개체 자신(프로세스)의 상태 변화를 유지/관리하기 위해 자신의 정보를 저장할 공간을 가진다. 즉 프로세스와 PCB는 1:1 관계를 가진다. 능동적인 개체 실행 중에 각종 자원을 요구, 할당, 반납하며 진행 한마디..