두 개의 디스크가 있는 단일 머신

두 개의 디스크가 있는 단일 머신

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

답변1

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

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

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

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

두 번째 11번에서는 디스크 1이 완료되고 두 번째 12번에서는 디스크 2가 완료됩니다. 따라서 이 예에서는 명령이 직렬로 전송되었지만 쓰기 작업이 수행되었습니다.주로(약 9초 분량) 병렬로 실행됩니다.

약 천 개의 복잡성 레이어를 쌓으면 컴퓨터에서 실제로 일어나는 일에 가까워집니다.

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

답변2

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

답변3

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

SCSI/IDE 컨트롤러가 한 번에 둘 이상의 구동을 지원하므로 동일한 시스템 BUS를 공유하는 블록 장치도 비동기식으로 작동할 수 있습니다.

관련 정보