버스트 (Burst)
네트워크 트래픽 / 리소스 관점 : 일정 기간 동안 임시로 허용되는 최대치 이상의 트래픽이나 리소스 사용 초과량
컴퓨터 과학 관점 : CPU Scheduling이나 I/O 작업에서 프로세스의 한 작업이 연속적으로 실행되는 시간
프로그램은 일반적으로 CPU Burst - I/O Burst를 번갈아 가면서 실행된다.
CPU Burst
- 프로세스가 CPU에 할당된 후 실행을 시작하고, 중단 없이 처리되는 기간. 이후 I/O 작업이 필요하면 CPU Burst가 끝나고, I/O 작업 후 다시 CPU에 할당되면 새로운 Burst가 시작됨
Disk I/O Burst
- 디스크나 네트워크 장치, DB 등에 대한 연속된 데이터 읽거나 쓰는 작업을 수행하는 것
바운드 (Bound)
CPU 바운드 (CPU-bound Job)
- CPU 바운드 작업은 CPU의 처리 속도에 의해 결정되는 경우를 일컫음
- 즉 CPU가 빠르다면 작업속도가 더 빨라질 수 있는 프로그램
- 복잡한 계산, 데이터 처리, 이미지/비디오 렌더링, 암호화, 압축 등의 CPU 연산이 많이 필요한 작업을 수행
- python의 경우 cpu-bound에 한해서 GIL 때문에 멀티 스레딩을 지원하지 않음 (I/O 바운드가 많은 작업은 적절)
- ex) 병렬처리 (멀티코어 CPU) 활용을 통해 성능 향상 가능
- CPU 바운드 작업의 경우 멀티프로세싱이나 병렬 처리를 고려하여, 비동기 처리보다는 멀티코어 CPU를 활용하는 것이 효과적
I/O 바운드 (I/O-bound Job)
- I/O 바운드 작업은 프로그램의 성능이 주로 입력/출력 작업의 속도에 의해 결정되는 경우
- 파일 읽기/쓰기, 네트워크 통신, 데이터베이스 쿼리 등의 I/O 연산이 많이 필요한 작업
- I/O 작업 중 CPU는 상대적으로 유휴 상태일 수 있음
- 디스크, 네트워크, 메모리 등 외부 I/O 장치의 성능에 크게 의존
- 비동기 프로그래밍이나 멀티스레딩을 통해 I/O 병목을 줄일 수 있습니다.
- ex) 데이터베이스 서버 / 파일 서버 / 웹 서버 / 네트워크 통신을 많이 하는 애플리케이션
- 멀티스레딩과 비동기 프로그래밍을 통해 높은 성능과 동시성을 유지 가능
CPU 바운드와 I/O 바운드의 차이
특징 | CPU 바운드 작업 | I/O 바운드 작업 |
주요 병목 요소 | CPU 처리 능력 | I/O 장치 성능 (디스크, 네트워크 등) |
CPU 사용률 | 높음 | 낮음 (I/O 대기 시간 동안) |
성능 향상 방법 | 더 빠른 CPU 또는 멀티코어 CPU 활용 | 비동기 I/O, 더 빠른 I/O 장치, 멀티스레딩 |
예 | 복잡한 계산, 데이터 처리, 렌더링 | 데이터베이스 쿼리, 파일 읽기/쓰기, 네트워크 통신 |
CPU Scheduling 알고리즘
1. FCFS (First-Come, First-Served)
- 도착한 순서대로 CPU를 할당받는 스케쥴링 알고리즘
- 작업이 긴 프로세스가 먼저 도착시 이후 프로세스들이 오래 대기 해야 될 수 있음
2. SJF (Shortest Job First)
- 가장 짧은 실행 시간을 가진 프로세스에게 우선적으로 CPU가 할당되는 방식.
- 평균 대기 시간이 최소화될 수 있으나, 긴 작업 시간을 가진 프로세스가 무한정 대기 되는 (기아-starvation) 문제 발생
3. Priority Scheduling
- 프로세스마다 우선순위를 부여해 CPU를 할당하는 방식
- 중요한 작업 먼저 처리 가능, 우선순위 낮은 프로세스가 무한정 대기 되는 (기아-starvation) 문제 발생장점 (해결책: 에이징 방법)
4. Round Robin (RR)
- 고정된 시간 할당량(Time Quantum)을 설정해, 각 프로세스에게 정해진 시간만큼 CPU를 할당하는 방식
- 응답 시간이 일정하며, 공정성을 보장하지만 Time Quantum이 너무 짧으면 문맥 교환 비용이 증가하고, 길면 FCFS와 비슷
5. Multilevel Queue Scheduling
- 프로세스들을 여러 개의 우선순위 큐에 나누어 관리하고, 각 큐에 다른 스케줄링 알고리즘을 적용하는 방식
- 서로 다른 특성을 가진 작업들을 효율적으로 처리 가능하며, 결국엔 큐 사이의 우선순위 차이로 인한 기아 문제 발생 가능.
6. Multilevel Feedback Queue Scheduling
- Multilevel Queue 방식에서 프로세스가 큐 사이를 이동할 수 있는 스케줄링 방식
- 짧은 작업은 상위 큐에서 빨리 처리되고, 긴 작업은 하위 큐로 이동
- 시스템 상황에 따라 유동적으로 프로세스를 처리하며 기아 문제를 해결하지만, 알고리즘이 복잡하고 조정해야 할 파라미터가 많음
'기술 정리 & CS > 기술면접 대비' 카테고리의 다른 글
[기술 면접 대비] Operating System 3 - 메모리, 명령어 (2) | 2024.06.16 |
---|---|
[기술면접 대비] Operating System 2 - Mutex, Semaphore, DeadLock (1) | 2024.06.16 |
[기술면접 대비] Operating System 1 - Process, Thread (2) | 2024.06.16 |
[기술면접 대비] Python & 자료구조 (0) | 2023.06.18 |
[기술면접 대비] Database 3 - Index, Replication (1) | 2022.12.13 |