반응형

본 챕터 목표
: 다음 단골 CS 지식 문항에 대해 구체적으로 이해하고, 답변 준비하기

  1. 프로세스 구조에 대해 가능한 상세하게 설명해주세요.
  2. 컨텍스트 스위칭에 대해 가능한 상세하게 설명해주세요.
  3. 프로세스간에는 어떻게 통신하는지 가능한 상세하게 설명해주세요.

현업, IT 기술과 컴퓨터공학이 어떻게 쓰이는지도 수시로 설명드립니다.


스케쥴러와 프로세스

  • 기본 프로세스 스케쥴러 이해

누가 프로세스 실행을 관리할까요? - 스케쥴러


스케쥴링 알고리즘
어느 순서로 프로세스를 실행하나요?
· 목표

  • 시분할 시스템: 프로세스 응답 시간을 가능한 짧게
  • 멀티 프로그래밍: CPU 활용도를 최대로 높혀서, 프로세스를 빨리 실행



FIFO 스케쥴러
프로세스가 저장매체를 읽거나 프린팅하는 작업 없이, CPU를 처음부터 끝까지 사용한다.

  • 가장 간단한 스케쥴러 (배치 처리 시스템)
  • FCFS (First Come First Served) 스케쥴러



최단 작업 우선 (SJF) 스케쥴러
· SJF (Shortest Job First) 스케쥴러

  • 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행시키는 알고리즘



SJF 스케쥴러도 실제로 좋은 개발다답게 작성한다면?

  • 자료구조와 알고리즘에 익숙한 상태라면, 좋은 개발자는 분명히 최소한 우선순위 큐와 힙 자료구조 사용을 고려할 것임 (시간복잡도가 O(nlogn)임)
  • 스케쥴러는 운영체제 핵심기능으로 빈번하게 호출되므로, 스케쥴러 알고리즘은 운영체제 성능에 큰 영향을 미침

왜 자료구조와 알고리즘이 필요한지, 코딩테스트를 왜 보는지 이해할 수 있음


가끔 이야기가 나오는 용어 알아두기
RealTime OS (RTOS)

  • 응용 프로그램 실시간 성능 보장을 목표로 하는 OS
  • 정확하게 프로그램 시작, 완료 시간을 보장
  • Hardware RTOS, Software RTOS


General Purpose OS (GPOS)

  • 프로세스 실행시간에 민감하지 않고, 일반적인 목적으로 사용되는 OS
  • 예: Windows, Linux, etc.



우선순위 기반 스케쥴러
· Priority-Based 스케쥴러

  • 정적 우선순위: 프로세스마다 우선순위를 미리 지정
  • 동적 우선순위: 스케쥴러가 상황에 따라 우선순위를 동적으로 변경



Round Robin 스케쥴러

  • 자료구조 큐를 사용하면 구현 가능
  • 일정시간동안 프로세스에 할당 후 다시 큐로 보냄



프로세스 상태 기반 스케쥴러
FIRO, Round Robin과 함께 기본적인 현대 스케쥴링 알고리즘 이해해보기

  • running state: 현재 CPU에서 실행 가능한 상태
  • ready state: CPU에서 실행 가능 상태(실행 대기 상태)
  • block state: 특정 이벤트 발생 대기 상태



프로세스 상태간 관계

  • ready, running, block states



스케쥴링 예제



정리
· 다양한 기본 스케쥴링 알고리즘

  • FIFO (FCFS) 스케쥴링 알고리즘 (배치 처리 시스템)
  • 최단 작업 우선 (SJF) 스케쥴링 알고리즘
  • 우선순위 기반 스케쥴링 알고리즘
  • 정적 우선순위, 동적 우선순위
  • Round Robin 스케쥴링 알고리즘 - 시분할 시스템
  • 프로세스 상태 기반 스케쥴링 알고리즘 - 멀티 프로그래밍



반응형

+ Recent posts