나는 이렇게 학습한다/CS

CPU 바운드와 I/O 바운드

daco2020 2022. 1. 15. 14:05
반응형

CPU 바운드

  • 연산을 많이 해서 cpu가 막는 행위
  • 프로그램이 실행될 때 실행 속도가 cpu 속도에 의해 제한됨을 의미함
  • 정말 복잡한 수학 수식을 계산하는 경우에 컴퓨터의 실행속도가 느려진다

 

 

I/O 바운드

  • I는 인풋, O는 아웃풋
  • 프로그램이 실행될 때 실행 속도가 I/O에 의해 제한됨을 의미함
  • 사용자가 입력을 해야 다음 단계가 진행되는 경우
  • 네트워크 I/O : 컴퓨터와 컴퓨터끼리 통신을 할 때
  • 블로킹 : 바운드에 의해 코드가 멈추게 되는 현상
# 실습 코드 : 구글에 요청을 반복한다면?

# pip3 install requests

import requests

def func():
	result = requests.get("<https://google.com>")
	return result

for i in range(10):
	result = func()

print(result)

'''
요청과 응답을 기다리는 과정에서
코드가 멈추게 되는 현상을 바운드라고 한다
위의 코드는 짧긴 하지만 블로킹 10회가 일어난 것이다
'''

 

반응형

'나는 이렇게 학습한다 > CS' 카테고리의 다른 글

TCP와 UDP 비교  (0) 2022.03.20
메모리 단편화를 해결하는 세 가지 방법  (0) 2022.02.09
동시성(병행성) vs 병렬성  (0) 2022.01.16
컴퓨터 구조와 운영체제 기본  (2) 2022.01.16
동기 vs 비동기  (0) 2022.01.15