하드 디스크 읽기 시간 계산

하드 디스크 읽기 시간 계산

시험 공부를 하고 있는데 다음 문제에 봉착했습니다.

하나의 디스크에는 20000개의 트랙, 7200RPM의 속도, 1ms의 검색 시간이 있습니다. 이 질문은 디스크의 모든 트랙을 읽는 데 필요한 총 시간을 계산하도록 요청합니다. 이는 우리에게 한 가지 힌트를 줍니다. 트랙의 전송 시간은 디스크 헤드 아래에서 전체 라운드를 수행하는 데 필요한 시간입니다.

먼저 환승 시간을 찾아보았지만 맞는지 모르겠습니다. 7200/3600을 얻습니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

시험 문제처럼 묻는다면 문제는 실제로 컴퓨터나 하드 디스크에 관한 것이 아니라고 생각합니다. 기본에 관한 것입니다.

  • RPM이 7200이면 디스크가 (7200/60) = 120초당 몇 번 회전한다는 의미입니다.
  • 디스크가 전체 회전을 수행할 때마다 이론적으로 1개의 완전한 트랙을 읽을 수 있습니다. 즉, 1트랙을 읽는 데 시간이 걸린다는 의미입니다.(1/120)s

이제 1ms 탐색 시간에 대한 질문이 있습니다.

  • 연속 읽기를 수행할 수 있는 경우 검색 시간을 한 번만 추가해야 합니다. 따라서 (1/120)s각 트랙에 대해 검색 시간을 일회성으로 추가할 수 있습니다. 이는 지나치게 단순화된 것 같습니다.
  • 보다 현실적으로: 질문이 한 트랙에서 다음 트랙으로 전환하기 위해 추가가 필요하다는 것을 의미한다고 가정하면 1ms (1/1000)s회전만으로는 제안하는 것처럼 초당 120개의 트랙을 읽을 수 없습니다.
  • 회전과 탐색 시간을 고려하면 각 트랙을 (1/1000 + 1/120)s읽는 데 시간이 걸립니다.

메모:

@sawdust가 의견에서 올바르게 지적했듯이 이 답변은 여러 단순화를 사용합니다. 이는 질문에 더 이상 정보가 제공되지 않았고 기본 사항을 다루려고 노력했기 때문입니다. 문제가 더 복잡한 경우(또는 시험 문제가 아닌 실제 하드웨어를 다루는 경우) 다음 요소를 고려해야 합니다.

  • 디스크에는 여러 개의 N플래터(예: )가 있을 수 있으므로 20000개의 트랙을 N플래터에 배포할 수 있습니다. 일반적으로 플래터는 양면에서 사용할 수 있습니다.[1] 따라서 드라이브의 각 2N읽기/쓰기 헤드 트랙 20000개는 20000개의 실린더가 아니라 20000/(2N)실린더입니다. 2N동시에 트랙을 읽을 수도 있습니다 . 그런 다음 2N트랙을 읽는 데는 (1/120)s.
  • 탐색 시간을 로 고정하면 안 됩니다 1ms. 일반적으로 다음의 조합입니다.헤드 탐색 시간, 헤드가 올바른 실린더로 이동하는 위치(드라이브 위치에 따라 항상 일정하지 않을 수 있음),을 더한회전 대기 시간은 헤드가 올바른 섹터 위에 올 때까지 디스크 자체가 회전해야 함을 의미합니다. 평균적으로 회전 대기 시간은 디스크가 전체 회전을 1회 수행하는 데 걸리는 시간의 절반으로 단순화될 수 있습니다. 따라서 (1/240)s새로운 실린더마다 회전 대기 시간이 있을 수 있습니다 .
  • 실제 드라이브에서는 데이터를 올바르게 읽는 데 문제가 있을 때 특정 대기 시간 문제가 발생할 수 있습니다. 이는 블록이 손상되었거나 읽기 어려운 경우에 발생하며 드라이브는 데이터 검색 가능성을 높이기 위해 다른 헤드 위치 및 매개변수를 사용하여 섹터를 읽으려고 시도합니다. 이로 인해 발생하는 지연 시간은 새 소매 드라이브에서도 관찰될 수 있으며 시기적절한 디스크 읽기에 의존하는 실제 시스템을 계획할 때 이를 고려해야 합니다. 따라서 1회전 후에 트랙이 완전히 읽힐 것이라고 항상 가정할 수는 없습니다. 문제가 매우 심각해질 수 있으므로 섹터 읽기를 다시 시도하는 데 허용되는 시간을 제한하는 TLER와 같은 기능을 제공하는 기업용 드라이브가 늘어나고 있습니다.[2]

[1]:위키피디아: 실린더 헤드 섹터
[2]:Western Digital: 데스크탑 에디션(WD Blue, WD Green 및 WD Black)과 RAID(Enterprise) 에디션 드라이브의 차이점

관련 정보