I/O와 CPU 클럭의 관계
- CPU 클럭이 높으면 높은 성능을 보여주고 그에 따라 I/O도 일반적으로 빠름
- 하지만 I/O는 CPU 클럭 보다는 Bus 클럭에 의존적임
- 시스템 클럭이 I/O에 미치는 영향
- 클럭이 다른 두 시스템이 목적지에 I/O를 해주는 상황
-> 100 클럭 시스템은 1초에 100번의 연산을 하고 200클럭 시스템은 2배인 200번의 연산을 함
-> I/O(File이나 Network 등)를 하면 버퍼링을 하게 됨(버퍼를 통해 모아서 데이터를 보냄)
-> 데이터를 버퍼에 모아서 보내게 되면 훨씬 빠른 시간에 많은 데이터를 보낼 수 있음
-> 100클럭 시스템은 버퍼가 1초에 10번 비워지고 200클럭 시스템은 20번 비워짐
-> 데이터를 만들어내는 속도가 같다고 할 때 100클럭 시스템과 200클럭 시스템의 버퍼에 쌓이는 데이터의 양이 다르게 됨
-> 100클럭 시스템은 보다 많은 데이터를 묶어 보낼 수 있기 때문에 시스템과 목적지 간에 통신 프로토콜(보내고 검증받고) cycle을 적게 사용하지만 200클럭 시스템은 더 많은 cycle을 사용함
-> Network I/O의 경우 CPU 보다 훨씬 느리기때문에 CPU 클럭이 높다해도 두 시스템이 데이터를 주고받는 속도는 줄일 수 없기 때문에 클럭이 높더라도 클럭 수가 낮은 시스템이 더 속도가 높을 수 있음
- 이렇기 때문에 I/O 연산은 CPU 클럭이 차지하는 영향은 미비할 수 있음
- 버퍼를 비우는 정책은 중요
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 - 19. 비동기 I/O와 APC(3) (0) | 2020.08.22 |
---|---|
윈도우즈 시스템 프로그래밍 - 19. 비동기 I/O와 APC(2) (0) | 2020.08.19 |
윈도우즈 시스템 프로그래밍 - 18. 파일 I/O와 디렉토리 컨트롤(2) (0) | 2020.08.17 |
윈도우즈 시스템 프로그래밍 - 18. 파일 I/O와 디렉토리 컨트롤(1) (0) | 2020.08.17 |
윈도우즈 시스템 프로그래밍 - 17. 구조적 예외처리(SHE) 기법(3) (0) | 2020.08.17 |