serversim
학습시뮬레이터템플릿가격
…
…
메뉴 열기
학습↗시뮬레이터↗템플릿↗가격↗
내 Documents문서
전체 목차/6장/6.236 / 40

6.2 · 입출력과 장치

디스크 입출력 중 CPU는 무엇을 할까?

디스크의 모든 바이트를 CPU가 직접 RAM으로 옮겨야 할까요?

CPU는 장치 제어기에 작업을 설정하고 DMA가 장치와 RAM 사이의 큰 데이터 복사를 맡게 할 수 있습니다.

먼저 생활 비유

이사 지시와 이삿짐 트럭

집주인은 출발지와 목적지만 알려주고, 상자를 하나씩 직접 나르지 않습니다. 트럭이 끝내면 연락합니다.

컴퓨터 예제로 바꾸기

파일 블록 읽기

read disk block 42 → RAM buffer

CPU가 디스크 제어기에 블록 번호와 RAM 주소를 설정하고 다른 코드를 실행하는 동안 DMA가 전송합니다.

직접 움직여 보기1 / 5

지금 일어나는 변화

CPU가 명령 설정

장치, 블록 번호, RAM 목적지 주소를 제어기에 씁니다.

CPU · 커널 · 장치사용자 코드 · CPU운영 체제 · 커널장치 · 네트워크 · 디스크CPU가 명령 설정단계 1디스크 제어기단계 2DMA 전송단계 3RAM 버퍼단계 4완료 인터럽트단계 54KB 블록현재: CPU가 명령 설정

이 그림에서 기억할 한 문장

DMA는 CPU를 없애는 것이 아니라 큰 복사 작업에서 CPU가 매 바이트를 직접 중계하지 않게 합니다.

현재 상태

이동하는 것
4KB 블록
현재 위치
CPU가 명령 설정
다음 위치
디스크 제어기

30초 확인 문제

DMA 전송 중 CPU가 할 수 있는 일은?

처음 보는 용어 두 개

장치 제어기
CPU 명령을 받아 실제 장치 동작을 관리하는 하드웨어
DMA
장치와 메모리 사이 데이터를 CPU 개입 없이 대량 전송하는 기능

이 절을 다 읽었다면

DMA는 CPU를 없애는 것이 아니라 큰 복사 작업에서 CPU가 매 바이트를 직접 중계하지 않게 합니다.

← 이전 절

6.1 CPU는 입출력 장치와 어떻게 대화할까?

다음 절 →

6.3 read 함수로 파일을 읽으면 내부에서 무슨 일이 생길까?