본문 바로가기
운영체제

운영체제 프로세스 자원 할당에 대하여 ( 1 )

by 흰색남자 2022. 9. 28.

일단 프로그램이 실행되려면 CPU에 의하여 자원을 할당받아야한다.

CPU에 의해 자원을 할당받아 실행된 프로그램을 프로세스라하며

프로세스의 작업의 흐름을 쓰레드라고한다.

 

이제 자원을 할당할 경우 생기는 문제점에 대해서 알아보자.

CPU가 자원을 할당하는 것을 스케줄링이라고 부른다.

( 무언가를 할당하는 것에는 다 스케줄링 가져다 붙이는듯... 쿠버네티스에서도 스케줄링 쓰고... )

 

이번에는 자원 할당 방식과 발생하는 문제점에 대해서 알아보자.

 

참 다양한 알고리즘이 존재하는데,

대분류부터 살펴보자

1. 비선점 스케줄링, 선점형 스케줄링

2. 정적 스케줄링, 동적 스케줄링

대분류는 이렇게 존재하고

1. 비선점

  1.  FCFS ( First Come First Served Scheduling ) // 선착순 << 얘는 정적 스케쥴링
  2. SJF ( Shortest Job First Scheduling ) // 작업이 짧은순  << 얘는 동적 스케줄링
  3. HRRN ( Highest Response Ratio Next Scheduling ) // 우선순위가 높은것 부터 - ( 대기시간 + 처리시간 ) / 처리시간

 

2. 선점

  1. RR ( Round Robin Scheduling ) - 균등 분배, 순서대로 시간단위로 할당함 << 얘는 정적 스케쥴링
  2. SRTF ( Shortest Remaining Time First ) - 가장 남은 시간이 짧은 것 부터 << 얘는 동적 스케줄링
  3. MLQ ( Multilevel Queue Scheduling / 다단계 큐 ) - 여러개의 큐를 사용하여 큐별로, 각 큐마다 다른 스케줄링 알고리즘이 적용됨. 각 큐마다 프로세스가 할당됨. << 얘는 정적 스케줄링

  1. MFQ ( Multilevel Feedback Queue Scheduling ) - MQ에서 한단계 더 발전함. << 얘는 동적 스케줄링

 

MLQ 스케줄링의 경우 큐와 큐 사이에 프로세스들이 이동을 할 수 없는 반면, MFQ 스케줄링의 경우 큐 사이에 프로세스들이 이동을 할 수 있습니다. 따라서 MFQ 스케줄링에 비해 MLQ 스케줄링은 스케줄링 부담이 적지만 유연성은 떨어집니다. 또한 MLQ 스케줄링의 경우 하위 단계의 큐에 있을수록 CPU 할당을 받지 못하여 기아 현상이 발생할 수도 있지만 MFQ 스케줄링의 경우는 에이징 기법을 통해 기아 현상을 예방할 수 있습니다.

 

 

이쯤하고 끊어감. 다음 포스트에서 봅시다