프로세스 관리
- CPU에 의해 실행되는 프로그램
- PCB (Process Control Block)에 의해 관리됨
Process Control Block
- 프로세스 정보를 저장한 자료 구조
- 프로세스의 정보는 PID에 저장되며 PID에 주소는 PDB ptr에 입력되어 각자 독립된 개체로서 더욱 용이하게 관리를 할 수 있어진다.
Process State Diagram (프로세스 상태 전이)
멀티 프로세싱을 위한 시분할 시스템
- Time Quantum (Time Silce) : OS에서 정해준 CPU의 정보처리 시간.
- Dispatch : CPU(Running)로 가라는 명령.
- Active에서는 메모리를 사용하며 Suspended에서는 디스크를 사용한다.
- Suspended state의 발생원인은 OS 안전을 위해 프로세스 디버깅, OS 성능을 위한 자원 확보와 보안 문제 운영자 요구 등 이 있다. 주로 안전성 측면에서 발생한다.
Ready에서 Running으로 가기 위해서는 줄을 서야 한다. Runing에서 Time Quantum을 초과할 시 Asleep으로 가며 정보를 처리하기 위해서는 다시 Ready로 가서 줄을 서야 한다. Ready에서는 대기 큐 (레디큐) 많은 대기가 존재하며 Suspended 시 대기 큐는 디스크에 저장된다.
Context Switching (문맥 교환)
- 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태를 보관하고 새로운 프로세스의 상태를 적재하는 과정
- Context : Process의 정보라는 뜻이며 PCB와 같다.
- Context Switching 은 다중 프로그래밍 지원 (병렬 처리)와 Starvation (기아상태)를 방지하기 위해 필요하다.
- Context Switching 은 Time Quantum (Time Silce) 소진 시, 인터럽트 발생 시, 사용자-커널 모드 전환 시 이루어진다.
Process Scheduling (프로세스 스케쥴링)
- 멀티 프로세스 환경에서 프로세스가 운영체제의 목적에 맞게 실행되기 위해 CPU를 할당받는 기술
스케줄링 정책에 따른 종류
· Preemptive Scheduling (선점형 스케줄링) : OS가 실행 중인 프로세스를 중단 가능
→ Starvation이 없으나 단 Context Switching이 오버헤드가 자주 생김
· Non-Preemptive Scheduling (비선점형 스케줄링) : OS가 실행중인 프로세스를 중단할 수 없음
→ Context Switching가 적으나 Starvation이 생길 수 있다.
스케줄링 시기에 따른 종류
· 장기 : Job scheduling, CPU bound와 I/O bound를 적절히 조합. Create → Ready 구간
· 중기 : Swapper, 실행되고 있는 프로세스를 빼내는 스케줄링. Running → Asleep, Asleep → Ready 구간
· 단기 : Process Scheduling, CPU를 차지할 프로세스 선택. Ready → Running 구간 가장 많이 보임
디스크 비용이 저렴해지고 압축기술이 발달함에 따라 저장기술은 현대 이슈에서 벗어났으며 실행이 주관심사가 되었다.
비선점형 스케줄링 알고리즘
- FIFO (First Input First Output, FCFS)
- SJF (Shortest Job First) SJF가 개발된 계기는 FIFO의 느린 속도 때문이며 FIFO보다 평균 대기 시간이 짧다.
- HRN (Highest Response-Ratio Next)
▶ FIFO (First Input First Output, FCFS)
- 비선점
- 입력된 순서대로 처리
- 장점 : 간단하다.
- 단점 : 짧은 작업이 오래 기다릴 수 있어 평균반환시간이 길다.
▶ SJF (Shortest Job First)
- 비선점
- 작업이 끝나기까지의 실행시간 추정치가 가장 작업을 수행
- 장점 : FIFO 보다 평균 대기 시간이 짧다.
- 단점 : Burst Time이 큰 경우 Starvation 문제 발생
▶ HRN (Highest Response-Ratio Next)
- 비선점
- 긴 작업과 짧은 작업간의 불평등 해소
- 장점 : Starvation 해결됨.
- 단점 : 스케줄러가 복잡하다.
- 우선순위 = 대기시간 + 서비스시간 / 서비스시간
선점형 스케줄링 알고리즘
▶ RR (Round-Robin)
가장 간단하고 강력한 알고리즘으로 알려져있으며 범용 os에서 1sec~1.1sec 의 시간이 정보를 처리하기에 적합하다고 판단하여 1sec~1.1sec 의 Time Quamtum을 제한하고 있다.
- 동일한 시간 할당량 (Time Slice) 을 받음.
- 시간을 초과한 경우 우선순위가 가장 뒤로 밀림.
- Time Slice가 매우 크다면 FIFO와 동일
▶ SRT (Shortest Ramaining Time)
- 남아있는 실행시산의 추정치가 가장 작은 프로세스를 우선 실행.
- Arrival시 남은 시간을 계산하여 필요시 Context Switching 발생
▶ MLQ (MultiLevel Queue)
RR과 달리 중요도를 나누어 정보를 처리한다. MLQ와 MFQ 모두 다수의 RR이 프로세싱 하는 모양이다.
- 각 큐마다 우선순위를 두어 관리
▶ MFQ (MultiLevel Feedback Queue)
사용자가 중요도를 정할 수 있으며 어떤 프로세스 모듈에 두어 정보를 처리 할 지 선택 할 수 있다.
- 각 큐마다 우선순위를 두어 관리
스케줄러는 suspended의 영역에 관여 하지 않으며 suspended는 저장을 위한 영역이고 주로 디버깅을 할 시에 저장된다.
▶ 용어
Scale up : 메모리를 더 끼운다.
Scale out : 컴퓨터를 더 산다.
Starvation : 기아 상태
Segment : 계층
Off set : 동일 오브젝트 안에서 오브젝트 처음부터 주어진 요소나 지점까지의 변위 차를 나타내는 정수형.
Trade off : 질과 량 가운데 어느 한편을 늘리면 다른 한편은 그만큼 줄어드는 것을 이르는 말.
Utilization : 활용, 이용
'개발환경구축' 카테고리의 다른 글
프로그래밍 언어의 분류 (0) | 2022.04.08 |
---|---|
구조적 프로그래밍, SDLC, 객체지향 설계 원칙 (0) | 2022.04.08 |
운영체제 (0) | 2022.04.05 |