일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 안드로이드 유닛테스트란
- 2022 플러터 설치
- 2022 플러터 안드로이드 스튜디오
- 큐 자바 코드
- jvm 작동 원리
- 안드로이드 유닛 테스트 예시
- 안드로이드 레트로핏 사용법
- 안드로이드 라이선스
- rxjava hot observable
- 스택 자바 코드
- 멤버변수
- 객체
- 안드로이드 라이선스 종류
- 서비스 쓰레드 차이
- 자바 다형성
- 서비스 vs 쓰레드
- android retrofit login
- jvm이란
- android ar 개발
- 안드로이드 os 구조
- 플러터 설치 2022
- ar vr 차이
- 안드로이드 레트로핏 crud
- Rxjava Observable
- 클래스
- ANR이란
- rxjava disposable
- 안드로이드 유닛 테스트
- rxjava cold observable
- 스택 큐 차이
- Today
- Total
나만을 위한 블로그
[혼공컴운] 11. CPU 스케줄링 본문
CPU 스케줄링 개요
프로세스 우선순위
대부분의 프로세스들은 CPU, 입출력장치를 모두 사용하며 실행된다. 프로세스는 실행 상태, 대기 상태를 반복하며 실행된다
프로세스 종류마다 입출력장치 이용 시간, CPU 이용 시간의 양에는 차이가 있다. 비디오 재생, 디스크 백업 작업 담당 프로세스같이 입출력 작업이 많은 프로세스(입출력 집중 프로세스)도 있고 CPU 작업이 많은 프로세스(CPU 집중 프로세스)도 있다
입출력 집중 프로세스는 실행 상태보다 입출력을 위한 대기 상태에 더 많이 머무르고 CPU 집중 프로세스는 실행 상태에 더 많이 머무름
상황과 프로세스 중요도에 맞게 프로세스가 CPU를 쓸 수 있게 하기 위해 OS는 프로세스마다 우선순위를 부여
OS는 각 프로세스의 PCB에 우선순위를 명시하고 PCB의 우선순위를 기준으로 먼저 처리할 프로세스를 결정
스케줄링 큐
CPU를 쓰고 싶은 프로세스, 메모리에 올라가고 싶은 프로세스들의 줄
준비 큐 : CPU를 쓰고 싶은 프로세스들이 서는 줄
대기 큐 : 입출력장치를 쓰기 위해 대기 상태가 된 프로세스들이 서는 줄
선점형, 비선점형 스케줄링
선점형 스케줄링 : 프로세스가 CPU를 비롯한 자원을 쓰고 있어도 OS가 프로세스로부터 자원을 강제로 뺏어서 다른 프로세스에 할당할 수 있는 스케줄링 방식 (대부분 OS가 차용)
비선점형 스케줄링 : 하나의 프로세스가 자원을 쓰고 있다면 그 프로세스가 종료되거나 대기 상태가 되기 전까진 다른 프로세스가 낄 수 없는 스케줄링 방식
CPU 스케줄링 알고리즘
선입 선처리 스케줄링(FCFS 스케줄링)
준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식
CPU를 먼저 요청한 프로세스부터 CPU 할당
최단 작업 우선 스케줄링(SJF 스케줄링)
기본적으로 비선점형 스케줄링 알고리즘으로 분류되지만 선점형으로 구현될 수도 있다
라운드 로빈 스케줄링
선입 선처리 스케줄링 + 타임 슬라이스(각 프로세스가 CPU를 쓸 수 있는 정해진 시간)
타임 슬라이스 크기가 중요
최소 잔여시간 우선 스케줄링(SRT 스케줄링)
최단 작업 우선 스케줄링 + 라운드 로빈 알고리즘
프로세스들은 정해진 타임 슬라이스만큼 CPU를 쓰고 CPU를 사용할 다음 프로세스는 남은 작업 시간이 가장 적은 프로세스가 선택됨
우선순위 스케줄링
프로세스들에 우선순위를 부여하고 가장 높은 우선순위를 가진 프로세스부터 실행하는 스케줄링 알고리즘
다단계 큐 스케줄링
우선순위 스케줄링의 발전된 형태. 우선순위 별로 준비 큐를 여럿 사용하는 스케줄링 방식
다단계 피드백 큐 스케줄링
다단계 큐 스케줄링의 발전된 형태. 프로세스들이 큐 사이를 이동할 수 있어서, 새로 준비 상태가 된 프로세스는 우선순위가 가장 높은 우선순위 큐에 삽입되고 일정 시간 동안 실행됨
구현이 복잡하지만 가장 일반적인 CPU 스케줄링 알고리즘
'책 > 혼자 공부하는 컴퓨터 구조 + 운영체제' 카테고리의 다른 글
[혼공컴운] 13. 교착 상태 (0) | 2024.01.01 |
---|---|
[혼공컴운] 12. 프로세스 동기화 (0) | 2023.12.29 |
[혼공컴운] 10. 프로세스와 쓰레드 (0) | 2023.12.27 |
[혼공컴운] 9. 운영체제 시작하기 (0) | 2023.12.25 |
[혼공컴운] 8. 입출력장치 (0) | 2023.12.25 |