단일 머신에 두 개의 디스크

단일 머신에 두 개의 디스크

내 로컬 컴퓨터에 두 개의 디스크가 있는데 동시에 이 디스크에 쓸 때 변경 사항이 직렬로 기록됩니까, 아니면 병렬로 기록됩니까?

답변1

예를 들어 설명하겠습니다. 이 숫자는 실제가 아니며 단지 시연일 뿐입니다.

데이터 블록을 쓰는 데 10초가 걸리지만(블록 크기 무시) 디스크에 블록을 쓰는 데 1초만 걸리도록 지시한다고 가정해 보겠습니다.

또한 이 간단한 예에서 CPU는 한 번에 하나의 디스크에만 명령을 보낼 수 있다고 가정합니다.

처음 1초 동안 CPU는 디스크 1에 블록을 쓰도록 지시합니다. CPU가 디스크 2에 블록을 쓰도록 지시하는 동안 두 번째 디스크 1에서 쓰기가 시작됩니다. 세 번째 두 번째 디스크 2에 쓰기를 시작합니다.

11초에 디스크 1이 완료되고, 12초에 디스크 2가 완료됩니다. 따라서 이 예에서는 명령이 직렬로 전송되지만 쓰기 작업은최대(약 9초) 병렬로.

약 천 개의 복잡성 레이어를 추가하면 컴퓨터에서 실제로 일어나는 일과 비슷해집니다.

간단히 말해서, 그렇습니다. 시스템은 병렬로 작성하기 위해 최선을 다할 것입니다.

답변2

디스크가 미러링되어 있습니까? 그렇다면 그들은 거의 동시에 글을 쓰고 있었고 우연한 일도 없었습니다. 그렇지 않다면 동일한 컨트롤러에 있습니까? 그렇다면 순차적으로(또는 인터리브 방식으로) 쓰고 있을 수 있습니다. 서로 다른 컨트롤러에 있는 경우 쓰기 작업의 프로필과 시스템에서 캐시가 구성되는 방식과 같은 기타 여러 요인에 따라 동시에 또는 순차적으로 기록될 수 있습니다.

답변3

예, 쓰기는 비동기식입니다sync에서 블록 장치의 옵션을 지정 하지 않는 한 /etc/fstab.

SCSI/IDE 컨트롤러는 동시에 여러 장치 구동을 지원하므로 동일한 시스템 버스를 공유하는 블록 장치도 비동기적으로 작동할 수 있습니다.

관련 정보