Be ready to study forever - 개발자 꿈나무
운영체제의 스캐쥴러 이해 본문
간단한 용어 정리
- 배치처리 시스템
컴퓨터 프로그램 실행을 요청 순서에 따라 순차적으로 실행하는 방식이며 한번에 한 프로그램밖에 실행할 수 없기 때문에 비효율 적이며 원시적인 시스템
- 시분할 시스템
다중 사용자를 지원하기 위해서 응답시간을 최소화 하는 시스템. 배치시스템과는 다르게, 짧은 시간동안 프로그램을 계속 번갈아 가며 실행
- 멀티 태스킹
하나의 CPU가 여러 작업을 할 수 있도록 짧은 시간동안 프로그램을 계속 번갈아 가며 실행함(시분할 시스템과 비슷한 컨셉이지만 목적이 다름)
- 멀티 프로세싱
단일 CPU가 아닌 코어가 여러 개일 경우 멀티 프로세싱으로 처리
- 멀티 프로그래밍
CPU가 활용도를 최대한으로 높이기 위해서 A프로그램이 저장매체등의 다른 장치를 이용하고 있을 때 B프로그램이 CPU를 점유하여 활용할 수 있게 만드는 방법
예를 들어, open함수를 쓸 경우 저장매체에서 파일을 가져오기 때문에 CPU는 돌지 않고 저장매체에서 해당 파일을 가져올 때까지 기다림.(CPU자원의 낭비)
스케쥴러
멀티 태스킹을 지원하는 다중 프로그램 운영체제에서 프로세스들이 CPU를 점유하는 걸 관리하는 시스템이다. 기본적으로 다음에 실행될 프로세스를 정하고 프로세스의 상태를 관리한다
프로세스란?
프로세스란 간단하게 이야기 해서 현재 실행 중에 있는 프로그램을 의미한다. 스케쥴러가 관리하는 대상
프로세스의 상태
멀티 프로그래밍과 멀티 태스킹을 지원하기 위해서 각각의 프로세스들은 상태를 가지고 상태에 때라서 CPU에서 실행될지, 기다릴지, 잠시 정지(?)할지 스캐쥴러에 의해 결정되는 상태
running – 현재 CPU를 점유하고 사용하고 있는 프로세스의 상태
ready – 현재 프로세스를 사용하기위해 Ready Queue에서 기다리고 있는 상태
block – 현재 CPU를 사용할 수 없는 상태(저장매체를 이용하고 있다던지..)
선점형 스캐쥴러 vs 비선점형 스캐쥴려
선점형 – 스캐쥴러가 CPU를 선점하여, 현재 CPU를 이용중인 프로세스가 작업을 끝내지 못하더라도 스캐쥴러가 프로세스를 중지하고 다른 프로세스에게 CPU를 할당 할 수 있음(멀티 태스킹&멀티 프로그래밍)
비선점형 – 스캐쥴러가 CPU를 선점하지 않았기 때문에 실행중인 프로세스가 끝날 때 까지 기다려야 다음 프로세스가 CPU를 사용 할 수있음.
인터럽트
CPU가 프로그램을 실행하고 있을 때 입출력 하드웨어장치에 예외사 생기거나 스캐쥴러에서 선점형 스캐쥴러를 지원하기 위해서(프로세스의 상태를 ready, block 변화 상태를 스캐쥴러에 알려주기 위해서) 타이머를 설정해서 운영체제에 알려줌. 이벤트시 OS에게 알려주는 역할을 함.
시스템콜과 인터럽트의 관계
시스템콜을 실행하기 위해서는 인터럽트가 필요함으로 시스템콜에는 인터럽트가 포함되어 있음.
'Programming > Operating System' 카테고리의 다른 글
파일 시스템 (0) | 2021.01.07 |
---|---|
가상 메모리와 페이징 (0) | 2021.01.07 |
Thread의 이해 (0) | 2021.01.06 |
프로세스 구조와 IPC(Inter Process Communication) (0) | 2021.01.06 |
운영체제 배경지식 (0) | 2021.01.05 |