Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Network
- #Qt Creator
- libtins
- BEST of the BEST
- 인터럽트
- #
- Find
- ftz
- KASAN
- command
- FTZ 레벨2
- #IntelManual
- linux
- #MINT64 #Sqix
- C++11
- #Best of the Best #OS #MINT64 #Sqix
- 오버워치
- >
- Sqix
- vi
- #IntelManual #segment Descriptor #세그먼트 디스크립터 #MINT64 #Sqix
- vim
- 오버워치 세이버메트릭스
- Overwatch League SaberMetrics
- libpcap
- vi 외부 명령어
Archives
- Today
- Total
Sqix
CS - OS - 02. 프로세스 스케쥴링 본문
배치 처리 시스템
하나의 프로그램 실행 요청의 처리가 완료된 이후 다음 프로그램이 순차적으로 진행될 수 있도록 하는 처리 기법
- Queue와 유사한 형태로, First in - First out 형태(등록된 프로그램 순서대로 처리)
- 모든 처리작업이 종료되어야 결과가 도출되므로, 각 사용자 입장에서는 응답시간이 길다.
시분할 시스템
프로그램 실행의 동시성과 이용자의 다중성을 확보하기 위해 응답 시간을 최소화하는 시스템
- 응용 프로그램이 CPU를 점유하는 시간을 잘개 쪼개어 사용하도록 하는 시스템
멀티 태스킹
단일 CPU에서 여러 응용 프로그램이 동시에 실행되는 것 처럼 보이도록 하는 시스템
- 다중 프로그램이 매우 짧은 기간동안 실행되도록 하여 동시에 실행되는 것처럼 보이게 함.
- 시분할 시스템과 기본 원리가 동일.
멀티 프로세싱
다중 CPU에서 하나의 프로세스를 병렬 처리하여 처리속도를 극대화하는 기법
스케줄링 알고리즘
프로세스
- 메모리에 올려져서 실행 중인 프로그램.
- 코드의 이미지(바이너리) 파일 -> exe, elf 등의 포맷.
- 하나의 응용 프로그램은 하나의 프로세스일 수도 있고 여러 프로세스가 상호작용하며 실행될 수도 있음(IPC).
- 스케줄러에 의해 프로세스 실행이 관리됨.
스케줄링 알고리즘
- 목표에 따라서 알고리즘이 구현됨
- ex) 시분할 시스템 : 프로세스 응답 시간을 최대한 짧게
- ex) 멀티 프로그래밍 : CPU 활용도를 최대로 높여서 프로세스 실행시간을 최소화
FIFO 스케줄러
- First in First out, 먼저 들어온 프로세스를 먼저 실행한다
- 가장 간단한 스케줄러로 배치 시스템과 유사
SJF 스케줄러
- 최단 작업(Shortest Job) 우선 스케줄러
- 가장 프로세스 실행 시간이 짧은 프로세스부터 프로세서가 처리하는 알고리즘
Priority Based 스케줄러
- 정적 우선순위 => 프로세스마다 우선순위가 미리 지정되는 스케줄링 알고리즘
- 동적 우선순위 => 스케줄러가 상황에 따라 우선순위를 동적으로 변경
Round Robin 스케줄러
- 특정 실행시간 이후 프로세스가 종료되지 않았으면 다음 프로세스를 실행시키고 이전 프로세스는 큐의 끝으로 가서 rdy 상태가 됨
- 모든 프로세스에 대한 균등한 실행시간을 보장해주기 위한 스케줄러
멀티 프로그래밍을 위한 스케줄링 알고리즘
멀티 프로그래밍
- 일반적으로 응용프로그램은 CPU를 온전히 사용하기보다 별도로 작업을 중간에 필요로 하는 경우가 많음.
- ex) I/O 장치를 활용하거나, 레지스터 이외의 캐시나 주 메모리, 보조기억장치 등에 접근하여야 하는 경우
- 응용프로그램의 실행을 짧은 시간 안에 완료할 수 있음.
- 타이머 인터럽트 기능을 제공하며 메모리 보호(Canary 등) 기능이 있는 경우 각 프로그램들에게 프로세스를 일정 시간만큼
할당할 수 있고, 또한 각 프로그램들이 서로의 메모리 영역을 침범할 수 없도록 할 수 있다. - 스케줄러가 어떤 프로세스가 현재 Wait 상태인지, Run 상태인지를 인지하여야 한다.
- 어떤 시점에 특정 프로세스를 CPU에 할당할지 판단할 수 있어야 함
- State Queue
- Ready State Queue / Running State Queue / Block State Queue를 활용하여 각 프로세스의 상태마다 큐에 삽입
프로세스 상태
- new : 새로운 프로세스가 생성된 상태
- ready : 프로세스가 바로 프로세서에 할당되어 실행될 준비가 완료된 상태
- running : 프로세스가 프로세서에 할당되어 실행중인 상태
- exit(terminated) : 프로세스가 종료된 상태
- blocked(waiting) : 프로세스가 특정 이벤트의 종료까지를 대기중인 상태
선점형 / 비선점형 스케줄러
- 선점형 스케줄러 : 프로세스가 실행되고 있더라도 스케줄러가 우선순위 조건을 고려하여 프로세스를 교체할 수 있음
- ex) SJF / FIFO / 우선순위 기반 스케줄링 등
- 비선점형 스케줄러 : 프로세스가 자발적으로 waiting 상태가 되거나 동작을 마친 후에 다른 프로세스로 교체할 수 있음
- ex) 라운드 로빈 등
'CS > OS' 카테고리의 다른 글
CS - OS - 06. Thread (0) | 2021.11.23 |
---|---|
CS - OS - 05. Inter Process Communication(IPC) (0) | 2021.11.19 |
CS - OS - 04. 프로세스와 컨텍스트 스위칭 (0) | 2021.11.19 |
CS - OS - 03. 인터럽트 (0) | 2021.11.18 |
CS - OS - 01. 운영체제의 큰 틀 이해 (0) | 2021.11.15 |
Comments