Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- http
- 문자열
- DICTIONARY
- port
- 십진수 이진수 전환
- 동시성문제
- springMVC
- dns
- CPU bound
- 문자열 내마음대로 정렬하기
- process
- stack
- 2차원 배열 출력
- URL
- green thread
- CPU
- annotation
- Spring
- Split
- TCP/IP
- Queue
- IO bound
- reflection
- 프로그래머스
- deque
- 코딩테스트
- java
- frontPattern
- 가장 가까운 단어
- 크기가 작은 부분 문자열
Archives
- Today
- Total
아무나개발하자
CPU bound, IO bound 본문
개념 정리
CPU : 프로세스의 명령어를 해석하고 실행하는 장치
IO : 파일을 읽고 쓰거나 네트워크 어딘가와 데이터를 주고 받는것, 입출력 장치와 데이터를 주고 받는것
Burst : 어떤 현상이 짧은 시간안에 집중적으로 일어나는 일
CPU Burst : 프로세스가 CPU에서 한번에 연속적으로 실행되는 시간
IO Burst : 프로세스가 IO작업을 요청하고 결과를 기다리는 시간
프로세스의 인생은 CPU Burst와 IO Burst의 연속이다.
여기서 일반적으로 연산이 많이 필요한 로직은 CPU bound, 로컬 파일 시스템 혹은 네트워크 통신이 많은 로직은 I/O bound라고 한다.
CPU bound 프로세스
- CPU 버스트가 많은 프로세스 동영상 편집 프로그램, 머신러닝 프로그램
IO bound 프로세스
- (일반적인) 백엔드 API 서버
퀴즈1
Goetz의 추천으로 CPU bound 프로그램에서 적절한 스레드 수는 number of CPU + 1이 적당하다고 한다. 이유는 앞서서 배운 스레드를 여러가 만들게되면 컨텍스트 스위칭이라는 CPU를 낭비하는 비용이 들기때문에, 위에와 같은 결론이 나온다고 한다.
컨텍스트 스위칭 : CPU가 현재 작업 중인 프로세스에서 다른 프로세스로 넘어갈 때 지금까지의 프로세스의 상태를 저장하고, 새 프로세스의 저장된 상태를 다시 적재하는 작업을 Context Switch(문맥 교환)이라 한다. 이때 CPU는 놀게된다...
퀴즈2
백엔드 개발자는 여러 상황을 고려하여 적절한 스레드수를 찾아야된다.
출처 : https://www.youtube.com/watch?v=qnVKEwjG_gM&list=PLcXyemr8ZeoQOtSUjwaer0VMJSMfa-9G-&index=3
'OS' 카테고리의 다른 글
동기화(synchronization) (0) | 2023.01.14 |
---|---|
Context Switching (0) | 2023.01.12 |
스레드 정리 (0) | 2023.01.03 |
운영체제 정리 1탄 (0) | 2023.01.02 |