1. 운영체제 스케쥴링 기본
시분할 시스템
- 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템
- 즉, 여러 사용자가 동시에 하나의 컴퓨터 사용 가능
- Time Sharing이라고도 함
멀티 태스킹
- 단일 CPU에서 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템
- 10~20ms 단위로도실행 응용 프로그램이 바뀜[1000ms(밀리초) = 1초]
멀티 프로그래밍
- 최대한 CPU를 효율적으로, 많이 활용하여 많은 연산 작업을 수행하도록 하는 시스템(스케쥴링 알고리즘)
- 응용 프로그램은 CPU 외의 다양한 하드웨어 자원까지 사용
메모리 계층 - 컴퓨터 구조 이해
System Bus - 컴퓨터 구조 이해
Wait
- 저장매체로부터 파일 읽기를 기다리는 시간으로 가정
멀티 태스킹과 멀티 프로세싱
***프로그램 성능을 높이는 방법
- 가능한 메모리상에서 실행하도록 해야 함
- 예시: Redis, Scala
2. 스케쥴링 알고리즘 구현 이해 1
- 프로세스 실행을 관리하는 것: 스케쥴러
- 시분할 시스템의 경우 프로세스 응답 시간을 가능한 짧게 실행
- 멀티 프로그래밍의 경우 CPU 활용도를 최대로 높여, 프로세스를 빨리 실행
FIFO 스케쥴러
- 프로세스가 저장매체를 읽거나 프린팅을 하는 작업 없이, 쭉 CPU를 처음부터 끝까지 사용
- 가장 간단한 스케쥴러 (배치 처리 시스템)
- FCFS (First Come First Served) 스케쥴러
FIFO 는 어디서 배웠을까?
최단 작업 우선(SJF, Shortest Job First) 스케쥴러
- 가장 실행시간이 짧은 프로세스부터 먼저 실행을 시키는 알고리즘
보충 지식: RealTime OS(RTOS)
- 응용 프로그램 실시간 성능 보장을 목표로 하는 OS
- 정확하게 프로그램 시작, 완료 시간을 보장
- Hardware RTOS, Software RTOS로 구분
보충 지식2: General Purpose OS(GPOS)
- 프로세스 실행시간에 민감하지 않고, 일반적인 목적으로 사용되는 OS
- 예시: Windows, Linux등
우선순위 기반(Priority-Based) 스케쥴러
정적 우선순위
- 프로세스마다 우선순위를 미리 지정
동적 우선순위
- 스케쥴러가 상황에 따라 우선순위를 동적으로 변경
'컴퓨터공학 공부' 카테고리의 다른 글
컴퓨터공학 공부 다시 시작하기 10주차 - 멀티 프로세스와 IPC 이해, 스레드 개념 이해, 스레드 장단점 정리 (0) | 2024.11.24 |
---|---|
컴퓨터공학 공부 다시 시작하기 9주차 - 스케쥴링 알고리즘 구현 이해2, 프로세스 구조 이해, 힙과 컨텍스트 스위칭 이해 (1) | 2024.11.17 |
컴퓨터공학 공부 다시 시작하기 7주차 - 커널 모드와 사용자 모드 이해, 운영체제 역할 정리, 프로세스 개념 이해 (3) | 2024.11.03 |
컴퓨터공학 공부 다시 시작하기 6주차 - 운영체제 개념, 커널과 쉘 이해 (1) | 2024.10.27 |
컴퓨터공학 공부 다시 시작하기 5주차 - 레지스터와 프로그래밍 이해, CPU 파이프라인 이해, CISC/RISC CPU 이해와 컴퓨터 구조 정리 (1) | 2024.10.20 |