티스토리 뷰
● 도입
- 컴퓨터의 자원은 크게 2가지로 분류할 수 있다.
1. 필수 장치 : CPU, 메모리 등
2. 주변 장치 : HDD, 키보드, 마우스 등
- 앞으로 몇 개의 글을 통해 필수 장치 중 하나인 CPU에 대해 배워볼 것이다.
● CPU 스케줄링
- 프로그램을 실행시키면 메모리에 프로세스가 생성되고 각 프로세스에는 1개 이상의 Thread가 존재한다.
- 이러한 프로세스들은 CPU를 차지하기 위해 OS의 명령을 기다리고 있는 상태(한 번에 하나의 프로세스만 실행된다.)
- OS는 모든 프로세스에게 CPU를 할당 / 해제 하는데 이를 CPU 스케줄링이라고 한다.
- CPU 스케줄링에서 스케줄러(OS)가 고려해야 할 사항은 2가지가 있다.
- 참고로 아래의 2가지 사항이 PC 성능에 매우 큰 영향을 미치므로 잘 알아두자
1. 어떤 프로세스에게 CPU 리소스를 줘야하는가?
- 메모리에는 수 많은 프로세스들이 있는데 이 중 어떤 프로세스에게 CPU 사용권을 줘야하는가에 대한 얘기이다.
(= 어떤 프로세스를 실행시켜야 하는가?)
- 특정 프로세스에게만 계속해서 CPU 리소스를 준다면 이는 문제가 된다.
2. CPU를 할당받은 프로세스가 얼마의 시간 동안 CPU를 사용해야하는가?
- 오늘날은 시분할 처리방식으로 여러 프로세스에게 짧은 시간 동안 돌아가면서 CPU를 할당한다.
cf) CPU를 할당 받아 실행하는 작업을 CPU Burst 라고 부르고 입출력 작업을 I/O Burst 라고 부른다.
https://jhnyang.tistory.com/entry/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9CCPU-burst-VS-IO-burst
https://melonicedlatte.com/2022/04/30/162100.html
'CS > 운영체제' 카테고리의 다른 글
#14 스케줄링 목표 (0) | 2023.03.12 |
---|---|
#13 다중큐 (0) | 2023.03.10 |
#11 프로세스와 Thread (0) | 2023.03.03 |
#10 프로세스 생성과 종료 with fork, exec 함수 (0) | 2023.02.27 |
#9 컨텍스트 스위칭(Context switching) (0) | 2023.02.26 |
- Total
- Today
- Yesterday
- SQL
- 프로세스
- node.js
- spring
- git
- MySQL
- 프로그래머스
- 빅데이터 분석기사
- Java8
- DART
- 운영체제
- 코테
- nosql
- Advanced Stream
- jpa
- java
- API
- SpringBoot
- MongoDB
- Phaser3
- 코딩테스트
- Stream
- 빅데이터
- OS
- Phaser
- Spring Boot
- db
- 자료구조
- 메모리
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |