RTOS(RealTimeOS)와 일반 OS의 차이: 응답성(응답속도). RTOS는 응답성이 Windows와 같은 일반 OS보다 좋다. 따라서 우리가 명령하는 일들을 신속히 처리한다. RTOS는 일반 OS에 비해서 속도가 빠른 것이 아니라 사용되는 목적이 구체적이고 제한적이다 보니, 보다 단순하게 디자인되어 있고 일반 OS에 비해서 훨씬 가볍기 때문에 응답성이 좋은 것이다.
기아 상태(Starvation): 프로세스가 끊임없이 필요한 컴퓨터 자원을 가져오지 못하는 상황. 스케줄링이나 상호 배제 알고리즘의 오류에 기인하지만 자원 누수에 의해 일어날 수도 있으며 포크 폭탄과 같은 서비스 거부 공격을 통해 고의적으로 발생할 수 있음.
라운드 로빈(Round-Robin) 스케줄링 알고리즘: 같은 우선순위의 프로세스들간 형평성 유지를 위해, 정해진 시간 간격만큼만 실행을 하고 우선순위가 동일한 다른 프로세스에게 CPU의 할당을 넘기는 방식을 제공. 실행의 최소 단위 시간 간격을 가리켜 퀀텀(Quantum) 혹은 타임 슬라이스(Time Slice)라 하는데, 동일한 우선순위의 모든 프로세스들은 이 타임 슬라이스를 기준으로 CPU의 할당을 넘기게 됨.
*Windows 운영체제는 프로세스를 스케줄링 하는데 있어서 우선순위, 그리고 라운드 로빈 기반의 알고리즘을 적용하고 있다.
스케줄링 알고리즘에 의해서 스케줄링이 진행되는 시점
1. 매 타임 슬라이스(Time Slice)마다 스케줄러 동작
2. 프로세스가 생성 및 소멸될 때마다 스케줄러 동작
3. 현재 실행 중인 프로세스가 블로킹 상태에 놓일 때마다 스케줄러 동작
Priority Inversion: 프로세스의 우선순위가 뒤 바뀌는 현상.
ex) 우선순위가 프로세스A, 프로세스B, 프로세스C 순서일 경우, 프로세스A가 Blocked 상태에 빠지기 전에 다음 우선순위인 프로세스B가 오지 못하고 연관 작업이 필요한 프로세스C가 동작할 수 있도록 우선순위를 위임하고 Blocked 상태에 빠진다.
'서버 > 시스템 프로그래밍' 카테고리의 다른 글
동기 및 비동기 I/O (0) | 2022.08.09 |
---|---|
Windows 제공 동기화 기법 (0) | 2022.08.05 |
Thread 관련 (0) | 2022.08.05 |
함수 호출규약 (0) | 2022.08.05 |
컨텍스트 스위칭(Context Switching) (0) | 2021.09.03 |