개발세발
CPU bound, io bound 본문
프로세스 : 하나의 작업 단위
프로그램 | 프로세스 |
어떤 데이터를 사용하여 어떤 작업을 할지 그 절차를 적어놓은 것 | '실행한다'라고 표현 프로그램으로 작성된 작업 절차를 실제로 실행에 옮긴다는 의미 |
프로세스 : 운영체제 입장에서의 작업 단위
스레드 : CPU 입장에서의 작업 단위
➡️ 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위
CPU (central processing unit)
: 프로세스의 명령어를 해석하고 실행하는 장치
I/O (input / output)
- 파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고 받는 것
- 입출력 장치(ex. 모니터, 마우스 등) 와 데이터를 주거나 받는 것
버스트 (Burst)
: 어떤 현상이 짧은 시간 안에 집중적으로 일어나는 일
CPU 버스트
: 프로세스가 CPU에서 한번에 연속적으로 실행되는 시간
I/O 버스트
: 프로세스가 IO작업을 요청하고 결과를 기다리는 시간
➡️ 프로세스는 CPU버스트와 IO버스트의 연속
CPU bound 프로세스
: IO burst는 많지 않고 CPU burst가 많은 프로세스를 의미
ex. 동영상 편집 프로그램, 머신러닝 프로그램
IO bound 프로세스
: IO burst가 많은 프로세스
ex. 백엔드 API 서버 - 기능에 따라 IObound가 아닐 수 있음
Goetz (2002, 2006) - CPU bound 프로그램에서 적절한 스레드 수는 CPU의 숫자 + 1
https://www.youtube.com/watch?v=qnVKEwjG_gM
https://taes-k.github.io/2021/06/05/cpu-io-bound/
CPU Bound vs I/O Bound
CPU bound, IO bound 개발을 함에 있어서 수행하는 로직이 CPU bound 작업 혹은 I/O bound 작업 이라는 말을 많이 들어보셨을 겁니다. 일반적으로 연산이 많이 필요한 로직은 CPU bound, 로컬 파일 시스템 혹은
taes-k.github.io
https://velog.io/@carrykim/%EB%B6%84%EC%82%B0-%EC%8B%9C%EC%8A%A4%ED%85%9C-2-3.-CPU-Bound-IO-Bound
[분산 시스템] 2-3. CPU Bound & I/O Bound
CPU Bound는 프로세스가 진행될 때, CPU 사용 기간이 I/O Wating 보다 많은 경우다. 주로 행렬 곱이나 고속 연산을 할 때 나타나며 CPU 성능에 의해 작업 속도가 결정된다.반면 I/O Bound는 프로세스가 진행
velog.io
https://applefarm.tistory.com/105
컨텍스트 스위칭이란
멀티프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행되어야 할 때 기존의 프로세스의 상태 또는 레지스터 값(
applefarm.tistory.com
운영체제공부가 아직 제대로 되어 있지 않아서 ...느므 으렵댱, ,,
'코딩공부 > OS' 카테고리의 다른 글
03. 운영체제의 구조 (0) | 2022.12.23 |
---|---|
운영체제의 역사 (0) | 2022.12.22 |
운영체제란 (0) | 2022.12.20 |
URL, URL, URN (정리중) (0) | 2022.06.23 |
포트 port (0) | 2022.06.23 |