[운영체제] 2. 프로세스(Process) 스케줄링, 스케줄러, 문맥 전환

Posted by 앱해피
2015. 7. 12. 17:18 운영체제(OS)

프로세스 스케줄링(Process Scheduling)

 

1) 멀티프로그래밍(Multiprogramming)

 

CPU 사용을 극대화 하기 위해서, 항상 여러개의 프로세스를 동작시켜야 한다.

 

2) 시분할(Time-sharing)

 

- 많은 사용자가 컴퓨터를 동시에 이용하기 위해서, 각 사용자는 최소한의 CPU 할당 시간을 갖어야 한다.

 

- 시분할 시스템이 잘 구축되면, 각 사용자들은 전체 컴퓨터 시스템을 자신만 사용하는 것과 같이 느낄 수 있다.

 

3) 프로세스 스케줄러(Process Scheduler)

 

- 멀티프로그래밍, 시분할 기능을 사용하기 위해서는 프로세스 스케줄러가 필요하다.

 

- 스케줄러는 실행할 프로세스를 선택한 뒤 CPU에 해당 프로세스를 전달한다.

 

프로세스 사이에서 CPU 전환

 

 

운영체제, 정보처리기사, 프로세스, 스케줄링, 스케줄러, 문맥 전환, context switching, scheduling, scheduler, job queue, ready queue, device queue, operating system

 

프로세스 스케줄링 큐(Process Scheduling Queues)

 

1) Job Queue : 컴퓨터 시스템에 존재하는 모든 프로세스를 관리

 

2) Ready Queue : 메인 메모리 상에 존재하며 CPU에 의해 실행될 준비가 된 모든 프로세스를 관리

 

3) Device Queues : I/O 장치를 기다리는 모든 프로세스를 관리

 

- 리소스 마다 별도의 Waiting Queue가 존재한다.

(메시지 큐, 소켓, 세마포어)

 

4) 프로세스는 실행되는 동안 다양한 큐 사이에서 전환이 이루어진다.

 

 

운영체제, 정보처리기사, 프로세스, 스케줄링, 스케줄러, 문맥 전환, context switching, scheduling, scheduler, job queue, ready queue, device queue, operating system

 

스케줄러

 

1) 스케줄러의 역할

 

-  스케줄링을 하고자 하는 목적으로, 프로세스를 선택하여 조건에 따라 다양한 스케줄링 큐로 이동시키는 역할을 한다.

 

2) CPU Scheduler

 

- 다음에 실행될 프로세스를 선택한 뒤, 그 프로세스에 CPU 자원을 할당한다.

 

 

문맥 전환(Context Switch)

 

1) Context 무엇인가?

 

- Context는 Process Control Block(PCB)으로 표현된 정보다.

 

- Context는 CPU 레지스터 정보와, 프로세스 상태 정보를 갖는다.

 

2) 문맥 전환(컨텍스트 스위칭 - Context Switching)때 일어나는 일

 

step1. 실행되고 있었던 프로세스의 PCB를 저장한다.

 

step2. 실행될 프로세스의 PCB 정보를 불러온다.

 

step3. Cache와 TLB(Translation Lookup Buffer)이 재설정된다.

 

- 컨텍스트 스위칭이 일어날 때, Cache와 TLB에 상당히 많은 미쓰가 발생한다.

 

3) 컨텍스트 스위칭이 일어날 때, 시스템은 실질적인 작업을 처리하지 못한다.

 

 

운영체제, 정보처리기사, 프로세스, 스케줄링, 스케줄러, 문맥 전환, context switching, scheduling, scheduler, job queue, ready queue, device queue, operating system