본문 바로가기

# IT, Computer Science/Operating System

Process Scheduling

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

프로세스 스케줄링

q  프로세스

실행중인 프로그램 (active entity)

Ø  프로세스 상태

New : 생성프로세스가 생성된 상태

Ready: 준비프로세스가 CPU에게 할당되기 위해 준비하는 상태

Waiting: 대기프로세스가 이벤트가 발생하기를 기다리는 상태

Running: 실행명령어가 수행되는 상태 (프로세서 점유 중)

Terminated: 종료프로세스가 수행을 종료한 상태

 

 


 

 

Process state

Process number

Program counter

Registers

Memory limits

List of open files

. . . . . . . . .

Ø  Process Control Block (프로세스 제어 블록)

프로세스 관련 정보는 process control block (PCB)에 기록됨

PCB에 저장되는 정보

프로세스 상태

프로그램 카운터 (program counter) : 다음 수행될 주소를 알려줌.

CPU 레지스터  : 명령어 저장컴 구조에 따라 수나 형태 변화.

CPU scheduling 정보 : 프로세스 우선 순위큐에 대한 포인터다른 스케줄 파라미터

메모리 관리 정보

Accounting (계정정보 : 프로세서 사용 시간사용 상한 시간작업이나 프로세스 번호

I/O 상태 정보  : 프로세스에 할당된 I/O장치와 파일의 목록.                               

q  다중 프로그래밍 (Multiprogramming)

CPU 효율성의 최대화를 달성함

-       동시에 몇 개의 프로그램을 MM에 적재하고 프로세서를 분할 사용 à 짧은 시간에 좀 더 많은 일

à 전반적인 시스템의 효율 높이는데 목적

만약 단일 시스템에서는 입출력을 요구한 후 완료될 때까지 유휴 상태로 기다리기 때문에 시간 낭비

 But 다중 프로그래밍 환경에서는 여러 개의 프로세스들을 동시에 메모리 적재.

   이 때실행중인 프로세스가 실행을 기다리게 되면 OS는 그 프로세스로부터 프로세서를 회수하여 다른 프로세스에게 할당 후 실행.    

한 프로세스가 대기 à 다른 프로세스가 프로세서를 할당 받음 )

q  시간 분할 (Time sharing)

사용자가 각각의 수행중인 프로그램과 상호작용하게 하기 위해 빈번하게 프로세서(CPU)를 프로세스 간에 교환함

 

 

q  스케줄링 큐 (scheduling Queue)

스케줄링을 하기 위해서 사용하는 DB는 큐로 구성프로세스들의 프로세스 제어 블록이 리스트의 형태로 연결되어 있음.

다중 프로그래밍의 목적은 항상 실행되는 프로세스가 있도록 프로세스를 준비 큐에 적재하며 프로세서 사용을 극대화 하는 데 있음

Ø  Job Queue : 시스템에 있는 모든 프로세스들로 구성.

Ø  Ready Queue (준비 큐)  :주 메모리에 위치해서 실행되기를 기다리는 프로세스들로 구성.

Ø  Device Queue (장치 큐, = I/O Queue)

특정 I/O 장치를 대기하는 프로세스들의 리스트장치가 전용 장치라면 한 개 이상의 프로세스를 가질 수 없고 디스크 같이 장치를 공유할 수 있다면 여러 개의 프로세스들이 있을 수 있다.

 

 

 

 

 

 

 

작업 스케줄러가 작업을 받아들일 때 작업의 프로세서 제어 블록 생성 – 프로세서 제어 블록은 작업이 시작되어 종료될 때까지 내용이 갱신– 새로운 프로세스실행 준비가 된 프로세스 제어 블록들)는 제일 먼저 준비 큐에 놓임 – 프로세스는 프로세서를 할당 받을 때까지 대기

프로세스가 프로세서에 할당될 때 

Ø  입출력 요청 발신 후 입출력 큐에 놓임

Ø  시간 할당 초과

Ø  새로운 프로세스 생성(fork)하며 종료 기다림

Ø  인터럽트에 의하여 프로세서에서 강제로 제거되어 준비 큐에 다시 놓임.

è  다시 대기상태 à 준비상태 à 준비 큐에 놓임 (종료될 때까지즉 시스템을 떠날 때까지 순환 계속.

 

q  스케줄러

프로세스 실행 동안 다양한 스케줄링 큐 사이를 이동 à 큐에서 프로세스들 선택

Ø  Long-term 스케줄러 (장기 스케줄러 = job scheduler, 작업 스케줄러)

주로 디스크에 있는 프로세스들을 선택해서 실행을 위해 메모리로 load 

(어떤 작업을 어떤 순서로 메모리에 가져와서 처리될 것인가를 결정하는 프로그램)

주어진 시간 안에 적은 수의 프로세스를 선택함 (드물게)

다중 프로그래밍 (multiprogramming)의 수준 (메모리에 있는 프로세스의 수)을 제어함

 (CPU bound I/O bound 작업을 잘 혼합하여 선택해야 해서 신중하게)

inter-process_ selection time: minutes

※프로세스 : 선택된 작업들은 프로세스 제어 블록을 부착시켜서 메모리로 적재

à MM에 적재되어 있는 프로세스를 할당 받아 실행 상태가 되도록 결정하는 것이 스케줄링.

Ø  Short-term 스케줄러 (CPU scheduler, 프로세서 스케줄러)

MM의 실행할 준비가 되어있는 프로세스 중에 선택해서 CPU를 할당

주어진 시간 안에 많은 수의 프로세스를 선택해야 함무척 빨라야 함.

inter-process_ selection time:  milliseconds (100만 분의 수초)

 

Ø  Short-term 스케줄러와 Long-term 스케줄러의 차이점

프로세스 실행 빈도              - 스케줄링 하는 시간선택 시간이 김 )

Short-term 스케줄러가 Long-term 스케줄러보다 빈번하게(수시로프로세스 선택.

 

 

I/O-bound process               (I/O 작업을 많이 하는무게를 두는)

계산작업보다는 I/O 작업에 더 많은 시간을 사용하는 프로세스

CPU-bound process

I/O 작업보다는 계산작업에 더 많은 시간을 사용하는 프로세스

최상의 시스템 성능을 위해서 Long-term 스케쥴러는 I/O-bound processCPU-bound process 사이의 적절한 배분을 선택해야 함: process mix

Ø  Medium-term scheduler (중간 단계 스케줄러)

메모리에서 프로세스를 제거하고, 나중에 제거한 프로세스를 (수행이 중단되었던 곳으로부터) 메모리로 다시 적재하고 계속해서 수행함 (교체, swapping)

 - 프로세서를 서로 차지하려고 할 때 프로세스를 메모리로부터 빼낼 수 있음

분배기 = 디스패처(dispatcher)

Ø  Short-term 스케줄러에 의해 선택된 프로세스에 실질적으로 프로세서 할당.

Ø  프로세서의 레지스터에 적재문맥 교환 )

Ø  사용자 상태(user mode)로 전환

Ø  다시 시작할 때 사용자 프로그램의 올바른 위치로 가게 하는 기능.

 

process mix 또는 memory requirement (메모리 용량 확보)를 위해 필요함

 

모든 작업이 CPU 중심 작업이라면 I/O 대기 큐는 항상 비어 있게 되어서 시스템은 균형이 맞지 않음.

è  두 작업이 적절히 혼합 되어야.

 

부분적으로 실행되다가 교체되어 나갔던 프로세스                                             CPU à end(종료)

 

 

q  문맥 교환( context switch)

Context

프로세스의 Process Control Block (PCB)에 있는 내용물

Context switch ( or 프로세스 교환)

-CPU 상에서 동작하는 프로세스를 변경하고자 할 때, 기존 프로세스의 context (이전의 프로세스 상태 레지스터 내용) 를 저장하고 새로운 프로세스의 context(레지스터들)  load

-context를 변경하는 시간 동안 시스템은 유용한 작업을 수행하지 못함                            

-context를 변경하는 시간은 하드웨어의 지원과 깊게 연관되어 있음




출처 : http://blog.naver.com/sillllver?Redirect=Log&logNo=90125624751











'# IT, Computer Science > Operating System' 카테고리의 다른 글

Process와 Thread 개념, 차이점  (0) 2011.01.16