답변:
까다로운 하나! 데이터는 실제로 CPU 자체를 거치지 않습니다.
데이터와 중요 1과 0은 칩셋 또는 전용 I / O 칩과 메모리를 거치지 만 파일을 복사 할 때는 복사 명령이 프로세서에 의해 실행됩니다.
당신 (데이터), 팔 (칩셋 / I / O 칩), 뇌 (CPU) 앞에 물체가 있다고 상상해보십시오. 당신은 실제로 뇌를 사용하여 물체를 움직이지 않으며, 뇌는 "명령"을 팔로 움직여 물체를 움직입니다.
interrupt
IO 명령 block device
이 완료 될 때마다 CPU에 CPU를 제공하여 도움을줍니다 . 그런 다음 CPU는 복사를 계속 실행합니다. 실제로 CPU가하는 일은 커널 ioctl
드라이버를 실행하는 커널 코드를 실행 하여 장치 드라이버와 인터페이스하여 chunks
(실제 이름) 을 복사 하는 것 DMA
입니다. CPU는 또한 커널 코드 실행 관점 asynchronous IO
과 처리 하고 sync IO
약간 다릅니다.
지능형 채널이있는 메인 프레임에서 CPU는 채널에 복사를 수행하도록 지시합니다. 매우 효율적이며 CPU 오버 헤드가 거의없는 빠른 대용량 백업이 가능합니다.
불행히도, 인텔리전트 채널이 없으므로 CPU는 다음과 비슷한 루프로 끝납니다.
각 파일마다 (dev1); 해야 할 것 createfile (dev2); copyfilecontent (dev1, dev2); 종료;
동일한 디렉토리에 많은 작은 파일, 특히 많은 파일이 없으면 CPU 오버 헤드는 그리 크지 않습니다. 파일 작성 조작은 일반적으로 가장 높은 오버 헤드를 갖습니다. 디스크 대 디스크 복사는 각 디스크를 기존 파일로 취급합니다.