본문 바로가기

Computer Science/운영체제

(5)
프로세스 스케줄링 프로세스 스케줄링 스케줄링이란 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업을 뜻하며, 대기 시간은 최소화하고 최대한 공평하게 처리하는 것을 목적으로 합니다. 메모리에 여러 개의 프로세스를 올려놓고(다중 프로그래밍), CPU의 가동시간을 적절히 나누어(시분할) 각각의 프로세스에게 분배하여 실행되도록 합니다. 프로세스 스케줄링이란 CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 일입니다. 처리율과 CPU 이용률을 증가시키고 오버헤드/응답시간/반환시간/대기시간을 최소화시키기 위한 기법입니다. 즉, CPU가 쉬지 않고 계속 열심히 일할 수 있도록 효율적인 계획을 잡아주는 것입니다. 스케줄링에서는 아래와 같이 장기, 중기, 단기 단위가 있습니다. 장기 ..
문맥교환(Context-Switching) 문맥교환 (Context Switching) PCB (Process Control Block) 운영체제가 시스템 내의 프로세스들을 관리하기 위해 프로세스마다 유지하는 정보들을 담는 커널 내 자료구조. 커널 주소 공간의 data 영역에 존재합니다. PCB에 저장되는 내용들 Process 상태 CPU를 할당해도 되는지 여부를 결정하기 위해 필요합니다. PC 값 다음에 수행할 명령어의 위치를 가리킵니다. CPU Register CPU 연산을 위해 현 시점에 레지스터에 어떤 값을 저장하고 있는지를 나타냅니다. CPU 스케줄링 정보 메모리 관리 정보 자원 사용 정보 입출력 상태 정보 등등 Process마다 Context가 필요한 이유 문맥교환이 일어나기 때문입니다. 문맥교환 중에 CPU를 선점하고 있던 프로세스는..
동기와 비동기 동기와 비동기 동기와 비동기는 데이터를 받는 방식을 말합니다. 동기와 비동기로 작성한 코드의 가장 큰 차이 중 하나는 런타임 시에 발생하는 지연시간(latency)입니다. 동기 (Synchronous : 동시에 일어나는) 동기는 말 그대로 동시에 일어난다는 뜻입니다. 요청과 그 결과가 동시에 일어난다는 약속으로, 바로 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 합니다. A노드와 B노드 사이의 작업 처리 단위(Transaction)를 동시에 맞춥니다. 동기식 처리 모델(Synchronous Processing Model)은 직렬적으로 태스크(Task)를 수행합니다. 즉, 태스크는 순차적으로 실행되며 어떤 작업이 수행 중이면 다음 작업은 대기하게 됩니다. 예를 들어, 서버에서 데이터..
교착상태와 기아상태 교착상태와 기아상태 교착상태(DeadLock)란? 다중 프로그래밍 시스템에서는 프로세스가 결코 일어나지 않을 사건을 기다리는 상태가 되면 교착상태에 빠졌다고 말합니다. 두 개 이상의 프로세스들이 사용할 자원을 할당받기 위해 기다리고 있어서 결과적으로 아무것도 완료되지 못하는 상태를 말합니다. 교착상태는 하나 이상의 작업에 영향을 주기 때문에 무한 대기나 기아상태보다 더 심한 문제를 일으킵니다. 교착상태는 시스템 자원에 요구가 뒤엉킨 상태로, 두 프로세스가 사용하는 자원(비공유)을 서로 기다리고 있을 때 발생합니다. 따라서 둘 이상의 작업이 중단되고 프로세스들은 서로 사용할 자원을 기다리고만 있게 됩니다. 그림에서 P1 프로세스는 P2 프로세스가 사용 중인 자원 R1을 할당받기 위해 기다리고 있고, P2 ..
Process와 Thread Program Program이란 파일이 저장 장치에 저장되어 있지만, 메모리에는 올라가 있지 않은 정적인 상태를 말합니다. 이 말을 쉽게 설명해보면, 메모리에 올라가 있지 않은 : 아직 운영체제가 프로그램에게 독립적인 메모리 공간을 할당해주지 않았다는 뜻입니다. 모든 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해 주어야 실행될 수 있습니다. 정적인 상태 : '정적'이라는 단어 그대로, 움직이지 않는 상태라는 뜻입니다. 한 마디로 아직 실행되지 않고 가만히 있다는 뜻입니다. 이 프로그램을 실행하는 순간 해당 파일은 컴퓨터 메모리에 올라가게 되고, 이 상태를 동적인 상태라고 하며 이 상태의 프로그램을 프로세스라고 합니다. 따라서 대부분의 경우 프로세스에 대해 정의할 때 '실행..