2023년도 국가공무원 5급(과학기술) 공개경쟁채용 제2차시험 (240705)
운영체제론
제 2 문. 디스크 입출력에 관한 물음에 답하시오. (총 20점)
1) 디스크의 탐색 시간과 회전 지연 시간
디스크 드라이브가 작동할 때, 디스크는 일정 속도로 회전한다. 데이터 읽기/쓰기 시 소요되는 시간은 크게 접근시간(access time)과 전송시간(transfer time)으로 구분되며, 접근시간은 탐색시간(seek time)과 회전지연시간(rotational delay time)으로 구분된다. 탐색시간과 회전지연시간에 대해 각각 설명하시오. (6점)
내 풀이)
디스크 드라이브가 데이터를 읽거나 쓸 때 소요되는 시간은 탐색 시간과 회전 지연 시간을 더한 접근 시간과 실제로 데이터를 전송하는 데 걸리는 전송시간의 합으로 구할 수 있다.
탐색 시간은 여러 개의 동심원 모양 트랙으로 구성된 디스크 플래터에서 헤드를 원하는 데이터가 포함된 트랙으로 이동할 때 걸리는 시간을 의미한다. 탐색 시간은 가속 시간, 이동 시간, 감속 시간, 정밀 조정 시간으로 이루어진다. 가속시간은 헤드가 현재 위치에서 정지된 상태에서 목표하는 트랙으로 이동하기 위해 가속하는 시간으로 목적지 트랙 방향으로 가속된다. 이동 시간은 헤드가 목적지 트랙에 도달하는 시간으로 가속해서 도달된 최고 속도로 이동한다. 이동 거리가 멀수록 이동 시간은 길어진다. 감속 시간은 목적지 트랙에 가까워질 때 정확한 위치에 도달하기 위해 속도를 줄이는 시간이며 정밀 조정 시간은 목적지 트랙에 정확히 위치하기 위해 필요한 시간이다.
회전 지연 시간은 디스크의 플래터가 회전해서 원하는 데이터가 헤드 아래 위치하는 데 걸리는 시간을 의미한다. 회전 지연 시간을 결정하는 요소 중 하나는 회전 속도로 디스크 플래터의 회전 속도는 분당 회전수인 RPM으로 측정한다. RPM 값을 통해 한 바퀴 도는 데 걸리는 시간도 구할 수 있다. 예를 들어 600RPM이면 분당 600회 회전하는 것이고 초당 10회 회전하는 것이므로 1초를 10으로 나눈 0.1초 즉 0.1s * 1000 ms/s = 100ms는 한 바퀴를 도는 시간이다.
탐색 시간과 회전 지연 시간 모두 디스크 성능을 결정하는 중요한 요소이다.
2) 디스크의 상태와 세부 조건에 대한 물음
2-1) 트랙 순차적 읽기 시간, 디스크 전체 순차적 읽기 시간
해당 파일은 순차적으로 구성되어, 디스크에 가능한 조밀하게(compact) 저장되어 있다고 가정한다. 즉, 이 파일은 인접한 다섯 개 트랙의 모든 섹터들을 차지하고 있다. 이 경우 첫 번째 트랙을 읽는데 소요되는 시간과 전체 파일을 읽는데 소요되는 시간을 계산하시오. (단, 잔여 트랙들은 탐색시간 없이 읽을 수 있고, 입출력 연산 속도는 디스크의 데이터 생산 속도와 같다고 가정한다) (7점)
내 풀이)
첫 번째 트랙을 읽는 데 소요되는 시간은 탐색 시간과 회전 지연 시간, 데이터 전송 시간의 합으로 계산되며 해당 문제에서 탐색 시간은 제시된 4ms이다. 회전 지연 시간은 7500RPM인 디스크가 한 바퀴 도는 시간은 60s / 7500 RPM = 0.008s = 8ms이다. 평균 회전 지연 시간은 디스크가 완전히 한 바퀴 돌 때까지 기다리는 것보다 평균적으로 절반만 회전해도 데이터가 위치한 트랙을 찾을 수 있기 때문에 한 바퀴 돌 때 걸리는 시간의 절반인 4ms가 회전 지연 시간이다. 디스크의 트랙당 섹터 수는 500개이고 섹터의 크기는 512바이트이므로 첫 번째 트랙의 데이터 크기는 500 * 512 = 256KB이다. 따라서 전송 시간은 ( 256KB * 1024bytes ) / { (7500RPM/60s) * 500bytes} = 4.19ms 이다.
모두 더하면 4 + 4 + 4.19 = 12.19ms이다.
전체 파일을 읽을 때 소요되는 시간은 첫 번째 트랙 이후 탐색 시간이 필요하지 않기 때문에 첫번째 트랙을 읽는 시간에 전체 데이터를 읽는 시간을 더하면 된다. 데이터 전송 시간은 1280KB / { (7500RPM/60s) *500} = 20.97ms 이므로 12.19ms + 20.97ms = 33.16ms 이다.
2-2) 섹터 랜덤 읽기, 디스크 전체 랜덤 읽기
동일한 데이터를 순차적 접근방식이 아닌 무작위 접근방식을 사용하여 읽을 경우, 하나의 섹터를 읽는데 소요되는 시간과 전체 파일을 읽는데 소요되는 시간을 계산하시오. (단, 디스크 상의 섹터들을 읽을 확률은 모두 동일한 것으로 가정한다) (7점)
내 풀이 )
하나의 섹터를 찾는 데 걸리는 탐색 시간은 4ms이고 평균 회전 지연 시간은 4ms이며 하나의 섹터 데이터 크기는 512 바이트이기 때문에 하나의 섹터를 전송하는 데 걸리는 시간은 512바이트 / (125RPS* 512 바이트) = 1 / 125RPS = 0.008s = 8ms이다. 하나의 섹터를 읽는 데 소요되는 시간은 탐색 시간과 회전 지연 시간, 전송 시간을 모두 합한 4 + 4 + 8 = 16ms이다.
전체 파일을 읽는 데 걸리는 시간은 2500섹터로 구성된 파일이므로 한 섹터를 읽는 데 걸리는 16ms를 2500번 곱한 시간과 같아서 16 * 2500 = 40000ms = 40s 이다.
'[ Laboratory ] > Advanced Operating System' 카테고리의 다른 글
[Linux Kernel] 리눅스 커널 버전 변경 빌드 (3) | 2024.10.19 |
---|---|
[5급 전산직/운영체제론] 2024년 2차 운영체제론 제4문 (0) | 2024.07.28 |