-
운영체제 1주차 4CS/운영체제와 시스템 2021. 7. 23. 17:21
선점형 스케쥴러 (Preemptive Scheduling) : 하나의 프로세스가 다른 실행중인 프로세스 대신 CPU 사용가능
예 : 시분할 시스템
비 선점형 스케쥴러 (Non-Preemptive) : 프로세스가 스스로 block(wait) 상태가 되거나 or 실행이 끝났을때만(end state)일 때만 다른 프로세스로 교체 가능
스케쥴러 정책(Policy) 구분
FIFO, SJF, Priorty-based : 어떤 프로세스를 먼저 실행 시키냐
RoundRobin : for 시분할 시스템(선점형)
인터럽트 : CPU가 프로그램을 실행중일때, 입출력 하드웨어 등의 장치 이슈나 예외상황이 발생하여 처리해야할 때 CPU에 알려서 처리하는 기술
인터럽트의 활용
선점형 스케쥴러 구현 : 프로세스 구동중에 스케쥴러가 이를 중단시키고 다른 프로세스로 교체하기 위해서는 스케쥴러 코드가 실행되어서 현재 실행중인 프로세스를 중지시켜야함
IO 장치와의 교류 : 저장매체에서 데이터 처리등 block state의 프로세스를 ready state로 변환하기 위해서
예외 상황 컨트롤 : 입출력 하드웨어 같은 장치 이슈나 기타 예외상황(에러, 0으로 나누기 등) 발생시 CPU에 알림
이벤트(인터럽트도 이벤트)를 정의하고, 발생했을때 어떻게 처리하는지도 운영체제가 결정
인터럽트 예시
1.계산하는 코드에서 0으로 나눌때(Divide-by-Zero interrupt)
2.타이머 인터럽트 : 선점형 스케쥴러를 위해
3.IO 인터럽트
외부(하드웨어) vs 내부(소프트웨어)
내부 : 대부분 프로그램 내부에서 잘못된 명령 또는 데이터 사용시 발생
0으로 나눌때, 사용자 모드에서 커널 모드만 실행할 수 있는 명령 또는 공간 접근시
계산결과가 오버플로우 or 언더플로우 날때
외부 : 주로 프로그램 외부(하드웨어)에서 발생
전원 이상, 기계 문제, 키보드등 IO 관련 이벤트, Timer 이벤트
'CS > 운영체제와 시스템' 카테고리의 다른 글
운영체제 2주차 1 (0) 2021.07.27 운영체제 1주차 5 (0) 2021.07.26 운영체제 1주차 3 (0) 2021.07.21 운영체제 1주차 2 (0) 2021.07.21 운영체제 1주차 1 (0) 2021.07.20