일반 OS와 리얼타임(Real Time) OS의 차이점
- 두 OS를 결정짓는 요소는 스케줄러
- 리얼타임은 다른 말로 실시간을 뜻함
└ 프로그램 실행 시 즉시 실행되도록 스케줄링 함
└ 응답성이 좋지만 프로그램 속도가 빠른 것은 별개
- OS는 클럭을 기준으로 타임 슬라이스(Time Slice)를 정함
└ 일반적으로 1ms를 1 TS
- 일반 OS는 TS가 크고, 리얼타임 OS는 상대적으로 작음
선점형 OS와 비선점형 OS
- 우선순위가 높은 것을 먼저 실행해야 하는 것이 OS의 의무
- 선점형 OS의 스케줄러는 우선 순위가 낮은 것을 즉시 뒤로 밀어내고 우선 순위가 높은 것이 먼저 실행 됨
└ 상대적으로 스케줄러가 하는 일이 많음
└ 스케줄러가 더 많이 프로세스의 실행에 직접적으로 관여함
- 비선점형 OS의 스케줄러는 우선 순위가 낮더라도 프로세스가 명시적으로 선언해줘야(함수 호출) 우선 순위가 높은 프로세스가 실행 됨
└ 상대적으로 스케줄러가 하는 일이 적음(제한적)
스케줄링 알고리즘
* 평등과 특권의 공존
- 평등 원칙이 반영되는 경우: 동일 우선순위 → 라운드로빈 기반 알고리즘
- 특권을 허용해주는 경우: 높은 우선순위 → 우선순위 기반 알고리즘
- Priority 7의 프로세스들이 실행되는 동안에는 Priority가 낮은 프로세스들은 실행되지 않음
- Priority7의 프로세스들이 모두 Blocked으로 빠져야지만 다음 우선순위의 프로세스가 실행 됨
스케줄링 진행시점
1) 매 타임 슬라이스(Time Slice)마다
└ 타임 슬라이스 사이에서도 컨텍스트 스위칭은 발생할 수 있는가?
2) 프로세스가 생성 및 소멸될 때마다
└ 소멸 될때는 어떤 이유로 스케줄러가 동작하는가? 다른 프로세스를 실행하기 위해
3) 현재 실행 중인 프로세스가 Blocked 상태에 놓일 때마다
'시스템 프로그래밍' 카테고리의 다른 글
10-2. 함수 호출 인자의 전달과 PUSH & POP 명령어 디자인 (0) | 2022.05.25 |
---|---|
10-1. 절차적 함수 호출(Procedure Call) 지원 CPU 모델 (0) | 2022.05.25 |
8-3. 파이프 방식의 IPC (0) | 2022.05.20 |
8-2. 핸들 테이블과 오브젝트 핸들의 상속 (0) | 2022.05.20 |
8-1. 프로세스 환경변수 (0) | 2022.05.20 |