본문 바로가기

운영체제 (이화여대 반효경)

운영체제 강의 8

1. 프로세스의 개념

📌 프로세스는 실행중인 프로그램이다

 

📌 프로세스의 문맥(context)

     ✓ CPU 수행 상태를 나타내는 하드웨어 문맥

           • Program Counter

           • 각종 register

     ✓ 프로세스의 주소 공간

           • code, data, stack

     ✓ 프로세스 관련 커널 자료 구조

           • PCB (Process Control Block)

           • Kernel stack

 

2. 프로세스의 상태

📌 프로세스는 상태(state)가 변경되며 수행된다

 

        Running : CPU를 잡고 instruction을 수행중인 상태

        Ready : CPU를 기다리는 상태 (메모리 등 다른 조건을 모두 만족하고)

        Blocked (wait, sleep) : CPU를 주어도 당장 instruction을 수행할 수 없는 상태

                                                  Process 자신이 요청한 event( 예): I/O )가 즉시 만족되지 않아 이를 기다리는 상태

                                                  예) 디스크에서 file을 읽어와야 하는 경우

 

        New : 프로세스가 생성중인 상태

        Terminated : 수행이 끝난 상태

 

 

3. 프로세스 상태도

 

4. Process Control Block (PCB)

📌 PCB

       ✓ 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보

       ✓ 다음의 구성 요소를 가진다 (구조체로 유지)

               1) OS가 관리상 사용하는 정보 : Process state, Process ID, scheduling information, priority

               2) CPU 수행 관련 하드웨어 값 : Program counter, registers

               3) 메모리 관련 : Code, data, stack의 위치 정보

               4) 파일 관련 : Open file descriptors

 

5. 문맥 교환 (Context Switch)

📌 CPU를 한 프로세스에서 다른 프로세스로 넘겨주는 과정

📌 CPU가 다른 프로세스에게 넘어갈 때 운영체제는 다음을 수행

        ✓ CPU를 내어주는 프로세스의 상태를 그 프로세스의 PCB에 저장

        ✓ CPU를 새롭게 얻는 프로세스의 상태를 PCB에서 읽어옴

 

 

(CPU가 다른 프로세스로 넘어갈 때, 어디까지 수행되었는지 등을 알아야하기 때문에 각 프로세스의 PCB에 레지스터 값을 저장한 후, CPU를 넘긴다)

 

문맥 교환은 사용자 프로세스에서 다른 사용자 프로세스로 CPU가 넘어가는 것을 말하고,

그 과정에 반드시 운영체제 커널의 개입이 있지만,

사용자 프로세스로부터 운영체제 커널로 CPU가 넘어간 것을 문맥 교환이라 하지 않는다.

 

6. 프로세스를 스케줄링하기 위한 큐

📌 Job queue : 현재 시스템 내에 있는 모든 프로세스의 집합

📌 Ready queue : 현재 메모리 내에 있으면서 CPU를 잡아서 실행되기를 기다리는 프로세스의 집합

📌 Device queues : I/O device의 처리를 기다리는 프로세스의 집합

 

✓ 프로세스들은 각 큐들을 오가며 수행된다

 

7. 프로세스 스케줄링 큐의 모습

 

'운영체제 (이화여대 반효경)' 카테고리의 다른 글

운영체제 강의 10  (0) 2021.07.13
운영체제 강의 9  (0) 2021.07.13
운영체제 강의 7  (0) 2021.07.12
운영체제 강의 6  (0) 2021.07.12
운영체제 강의 5  (0) 2021.07.11