728x90
반응형
데이터 전송 연산 시간은 다음과 같이 계산된다.
- 탐구 시간 (seek time) : 헤드를 가지고 있는 암이 해당 실린더에 이동하는 시간
- 헤드 활동 개시 시간(head activation time) : 헤드가 활동을 시작하는 시간
- 회전 지연 시간(rotational latency) : 헤드가 트랙에서 해당 블록까지 가는 시간
- 전송 시간(transfer time) : 블록 안의 섹터 사이를 통과하는데 걸리는 시간
대랑 전송 (Bulk transfer)
대랑 전송은 문자 그대로 여러 블록을 전송한다는 뜻이다.
여기서 탐구 시간과 회전 지연 시간의 경우 첫 블록에 도달할 때만 시간이 걸리고 그 다음 연속된 블록에 도달할 때는 걸리는 시간이 0이다.
그렇기에 연속된 블록을 디스크에 배치시키는 것이 중요하다.
디스크에서 데이터 접근 효율을 높이는 방법
- cpu와 hdd의 속도 차이를 관리한다.
- 데이터를 연속된 블록으로 저장한다.
- 엘리베이터 알고리즘처럼 입출력의 효율성을 늘린다.
- 로그 디스크나 로그 파일을 사용한다.
- ssd 또는 플래시 메모리를 사용하여 ssd 버퍼에 기록하고 업데이트 한다.
Q. 20개의 기록면, 500트랙/면, 0.5KB/섹터, 40섹터/트랙, 갭 0.125KB
분당 회전 속도 : 6000rpm 탐구 시간 : 20ms
(20개의 기록면이라는 것은 양면으로 기록 가능한 디스크 원판이 10개 있다는 뜻이다.)
1. 한 트랙의 총 용량 : 섹터 개수 * (섹터 용량 + 갭 용량) = 40 * (0.5+0.125)KB = 25KB
2. 한 트랙의 유효 용량 : 40 * 0.5KB = 20KB (갭의 용량은 제외한다.)
3. 한 실린더의 총 용량 : 기록면 * 섹터 개수 * (섹터 용량 + 갭 용량) = 20 * 40 *(0.5+0.125)KB = 500KB
4. 한 실린더의 유효 용량 : 20 * 40 * 0.5KB = 400KB (갭의 용량은 제외한다.)
5. 디스크가 한 번 도는데 걸리는 시간 : 6000/1분 = 6000/60초 = 6000/60000msec = 1/10msec 이므로 10msec이다
6. 전송률 (transfer rate) : 한 트랙의 총 용량 / 한 번 도는데 걸리는 시간 = 25KB/10msec = 2.5KB/msec
7. 평균 회전 지연시간(rd) : 한 번 도는데 걸리는 시간은 10msec이다. 평균 회전 지연 시간은 2로 나눈 5msec이다.
8. 블록 전송 시간(btt) : B/tr = 한 블록 유효 용량 / 전송률 = 0.5KB/(2.5KB/msec) = 0.2msec
9. 대량 전송률 (btr) : tr * (B/B+G) = 2.5KB/msec * 0.8 = 2KB/msec
10. 하나의 섹터를 찾아서 읽는 시간 : 탐구 시간(seek time) + 회전 지연시간(rd) + 블록 전송 시간(btt) = 25.2msec
11. 10개의 임의의 섹터를 전송하는 시간 : 임의의 섹터이므로 탐구 시간 회전 지연 시간이 포함된다.
= 10 * (seek time + rd + btt ) = 252msec
12. 10개의 연속된 섹터를 전송하는 시간 : 연속되어 있다면 seek time과 rd는 첫 섹터를 찾을 때만 소요된다.
seek time + rd + 10 * btt = 27msec
더 정확한 시간은 seek time + rd + 10 * (B/btr) = 27.5msec 이다.
728x90
반응형
'공부 > Database' 카테고리의 다른 글
[Database] Sequential Files(Ordered Files)의 정의와 트랜잭션 파일(transaction file) (0) | 2022.11.24 |
---|---|
[Database] 더블 버퍼링 (double buffering) (0) | 2022.11.23 |
[Database] 디스크 안에 파일 레코드를 저장하는 방법 (0) | 2022.11.23 |
[Database] 자기 디스크의 주소법 (0) | 2022.11.21 |
[Database] 2차 저장 장치 구조(자기 디스크) (0) | 2022.11.20 |
댓글