2019년 01월 01일 <스케쥴링 알고리즘 조합>
스케줄러 구분 ( 정책, policy 라고도 함 )
- FIFO(FCFS), SJF, Priority-based 는 어떤 프로세스를 먼저 실행 시킬지에 대한 알고리즘
+ (비선점형 스케줄링에 가까움)
- RoundRobin 은 시분할 시스템을 위한 기본 알고리즘
+ (선점형 스케줄러)
여러 알고리즘을 조합하여 스케줄러를 만든다
ex) 1. 시분활 시스템
2. 프로세스 상태 고려
3. 정적 우선 순위 기반
4. 선점형
* 가볍게 듣기
렉?: 마우스/ 키보드 반응이 느린 경우?
>스케줄러가 해결해야하는 이슈!
>다양하고 복잡한 스케쥴링 알고리즘 필요
- 리눅스 스케쥴러: O(1), CFS (스케줄링 알고리즘 이름)와 같이 다양한 방식으로 변경 시도 중
-인터렉티브,IO,CPU 중심 프로세스로 미리 구분할수 있다면 보다 개선된 스케쥴링이 가능함
2019년 01월 01일 <인터럽트란>
인터럽트란?
- CPU가 프로그램을 실행하고 있을 떄, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요한 경우에 CPU에 알려서 처리하는 기술 (이벤트 발생=>처리(kernel))-->인터럽트
>어느 한순간 CPU가 실행하는 멸령은 하나! 다른 장치와 어떻게 커뮤니케이션을 할까요?
인터럽트 필요 이유
>선점형 스케줄러 구현
-프로세스 running 중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체하기 위해, 현재 프로세스 실행을 중단 시킴
->그러려먼, 스케줄러 코드가 실행이 되서, 현 프로세스 실행을 중지시켜야 함
>IO Device와의 커뮤니케이션
- 저장매체에서 데이터 처리 완료시, 프로세스를 깨워야함 ( blockstate -> readystate )
> 에외 상황 핸들링
- CPU가 프로그램을 실행하고 있을 떄, 입출력 하드웨 등의 장치나 또는 예외상황이 발생할 경우, CPU가 해당 처리를 할 수 있도록 CPU에 알려 줘야함
>> 이벤트가 발생하고 그 이벤트를 처리하는 것을 인터럽트라고 할 수 있다.
'군대에서 한것 > Operating System' 카테고리의 다른 글
190117/25,26/프로세스 구조, 힙 그리고 스텍 오버플로우 (0) | 2019.01.17 |
---|---|
190102&0109/21~22/인터럽트 종류 & 인터럽트 내부 동작 (0) | 2019.01.02 |
181225/18/선점형과 비선점형 스케줄러 (0) | 2018.12.23 |
181223/17/프로세스 상태기반 스케줄링 알고리즘 기본 (0) | 2018.12.23 |
181221/16/프로세스 상태와 스케줄러 (0) | 2018.12.21 |