개발환경구축

프로세스 관리

SangRok Jung 2022. 4. 6. 23:09
반응형

프로세스 관리

  • 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