본문 바로가기

Contact English

【운영체제】 총론 2강. 프로세스 관리

 

총론 2강. 프로세스 관리

 

추천글 : 【운영체제】 운영체제 목차 


1. 프로세스의 개요 [본문]

2. 스케줄링 [본문]

3. 병행 프로세스와 상호 배제 [본문]

4. 교착상태 [본문]


 

1. 프로세스의 개요 [목차]

⑴ 프로세스 정의

① 프로세스(Process) : 실행 중인 프로그램

② 프로세서(Processor) : 프로세스를 실행시키는 주체로서 CPU를 지칭

③ 프로시저(Procedure) : 프로세스를 구성하는 부 프로그램을 지칭 (예 : 루틴, 서브루틴, 함수)

④ 스레드(Thread) : CPU가 독립적으로 처리하는 하나의 작업 (어원 : 실)

○ 보통 코어 개수와 스레드 개수가 동일하며, 4 코어 4 스레드 등이 있음

○ 하나의 프로세스에 여러 스레드가 존재할 수 있음

⑵ PCB(Process Control Block, Task Control Block, Job Control Block)

① 각 프로세스마다 하나씩 생성되는, 프로세스에 대한 중요 정보 저장소

② 저장 정보 : 프로세스의 현재 상태, 포인터, 프로세스 고유 식별자, 프로세스의 우선순위(스케줄링)

⑶ 프로세스 상태 전이

① 제출 : 사용자가 작업을 시스템에 제출한 상태

② 접수 : 제출된 작업이 보조기억장치의 할당 위치에 저장(Spooling)된 상태

③ 준비 : 프로세스가 스케줄링 큐에서 실행을 준비하고 있는 상태

○ 디스패치 : 프로세스가 준비 상태에서 실행 상태로 전이되는 과정

④ 실행 : 프로세스가 프로세서를 할당받아 실행되는 상태, 선점·시간 초과로 준비 상태로 이동 가능

⑤ 대기(보류, 블록) : 입·출력이 필요해서 실행 중인 프로세스가 중단되고 대기하고 있는 상태

○ 깨움 : 프로세스가 대기 상태에서 준비 상태로 전이되는 과정

⑥ 종료 : 프로세서의 실행이 끝나고 프로세스 할당이 해제된 상태

 


2. 스케줄링 : 기억장치의 반입전략 [목차]

⑴ 스케줄링의 개요

① 정의 : 시스템이 여러 자원을 준비 중인 프로세스에게 할당하는 작업

② 장기 스케줄링(작업 스케줄링, 상위 스케줄링) : 특정 프로세스를 준비 상태에 있도록 처리

③ 중기 스케줄링 : 각 프로세스들이 어떤 CPU를 할당받을 것인지 결정

④ 단기 스케줄링(프로세서 스케줄링, 하위 스케줄링) : 각 프로세스들이 언제 CPU를 할당받을 것인지 결정

⑵ 비선점 스케줄링

① 정의 : 프로세서가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용하도록 하는 방식

② FCFS(First Come First Service, First In First Out)

③ SJF(Shortest Job First)

④ HRN(Highest Response-ratio Next)

 

 

⑤ Deadline

⑥ Priority

⑶ 선점 스케줄링

① 정의 : 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 있는 방식

② SRT(Shortest Remaning Time) : SJF를 선점 형태로 변경한 기법

③ RR(Round Robin)

○ 각 프로세스를 시간 할당량(Time Slice, Quantum) 동안 실행 후 완료되지 않으면 우선순위가 낮아짐

○ 할당되는 시간이 클 경우 FCFS 기법과 같아지고, 작을 경우 문맥교환 및 오버헤드가 자주 발생

④ MQ(Multi-level Queue)

○ 그룹에 따라 각기 다른 준비상태 큐를 사용하는 기법

○ 하위단계 준비상태 큐 내 프로세스가 실행중이어도 상위단계 큐의 프로세스가 오면 CPU 할당을 빼앗김

⑤ MFQ(Multi-level Feedback Queue)

○ MQ에서 프로세스가 준비상태 큐 사이를 이동할 수 있도록 개선한 기법

○ 각 준비상태 큐의 시간 할당량을 완료하지 못한 프로세스는 다음 단계의 준비 상태 큐로 이동하는 방식

○ 마지막 단계 큐에서는 작업이 완료될 때까지 RR 스케줄링 기법을 사용

 

 

3. 병행 프로세스와 상호 배제 [목차]

⑴ 병행 프로세스(Concurrent Process)

① 하나의 시스템에 두 개 이상의 프로세스들이 동시에 존재하는 것

② 여러 프로세스가 독립적으로 실행되면 독립적 병행 프로세스, 협력적으로 실행되면 협력적 병행 프로세스라 함

③ 다중 처리 시스템이나 분산 처리 시스템에서 관찰되는 개념

⑵ 임계 구역(Critical Area) : 어느 한 시점에는 한 프로세스만 사용하도록 지정된 공유자원

⑶ 상호 배제 기법(Mutual Exclusion) : 한 프로세스가 사용 중인 공유자원을 다른 프로세서가 쓰지 못하도록 하는 기법

① 하드웨어적 기법 : Test_And_Set 기법, Swap 기법

② 알고리즘 기법 : Dekker 알고리즘, Peterson 알고리즘, Lamport 알고리즘

③ 동기화 기법(Synchronization Mutual Exclusion) : 각 프로세스에 대한 처리 순서를 결정하는 기법

○ 세마포어(Semaphore) : S(공유자원 개수), P(자원 조사 및 할당 연산), V(자원 반납 연산)

○ 세마포어에 대한 연산은 처리 중에 인터럽트되어서는 안 됨

○ 모니터(Monitor) : 모니터의 경계에서 상호 배제가 이루어지는 기법으로, 모니터 내부는 은폐돼 있음

 

 

4. 교착상태 [목차]

⑴ 교착상태와 무한연기

① 교착상태 : 무한정 프로시저를 기다리는 현상으로 가능성이 전혀 없음

② 무한연기 : 무한정 프로시저를 기다리는 현상으로 가능성이 그래도 있음

⑵ 교착상태의 필요충분 조건 : 상호 배제, 자원의 점유 및 대기, 비선점 스케줄링, 환형 대기

⑶ 예방 기법(Prevention) : 교착 상태의 필요충분 조건을 부정함으로써 달성

⑷ 회피 기법(Avoidance) : 은행원 알고리즘

⑸ 발견 기법(Detection)

⑹ 회복 기법(Recovery) : 프로세스 종료, 자원 선점 등

 

입력: 2017.08.06 09:15