반응형
본 챕터 목표
: 다음 단골 CS 지식 문항에 대해 구체적으로 이해하고, 답변 준비하기
- 프로세스 구조에 대해 가능한 상세하게 설명해주세요.
- 컨텍스트 스위칭에 대해 가능한 상세하게 설명해주세요.
- 프로세스간에는 어떻게 통신하는지 가능한 상세하게 설명해주세요.
현업, 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 스케쥴링 알고리즘 - 시분할 시스템
- 프로세스 상태 기반 스케쥴링 알고리즘 - 멀티 프로그래밍
반응형
'cs > computer-science-basic' 카테고리의 다른 글
기술면접 - 7. 스레드 (Thread)와 동기화 (Synchronization) (0) | 2022.03.23 |
---|---|
기술면접 - 6. 컨텍스트 스위칭과 IPC (InterProcess Communication) (0) | 2022.03.23 |
기술면접 - 4. 프로세스 (process) (0) | 2022.03.23 |
기술면접 - 3. 응용 프로그램 (0) | 2022.03.23 |
기술면접 - 2. 사용자 모드와 커널 모드 (0) | 2022.03.23 |