Построить FAT – таблицу для заданных файлов в соответствии с параметрами учебного диска.
2. Рассчитать общее время считывания файлов с учетом следующих допущений:
- временем передачи сигналов по шинам пренебречь;
- время перехода головки записи/считывания определить как Т1 (количество пересекаемых дорожек).
3. Дефрагментировать диск и рассчитать общее время считывания всех файлов после дефрагментации
Число дорожек Nдор. Число секторов на дорожке Nсек. Число секторов в кластере Nкл. Время перемещения головки на 1 дорожку Т1, мс Скорость вращения диска Nоб., об/мин
5 24 4 2 3800
Для всех вариантов исходных данных при решении задачи следует учесть, что число поверхностей на учебном диске равно 1, объем сектора на диске равен 0,5 Кб, на диске записаны файлы A,B,C,D и E параметры которых указаны ниже
Имя файла
Объем файла(байт)
Точка входа
А 9500
12
B 10500 5
C 7000 6
D 6500 1
E 4500 10
Решение
Определим объем файлов в кластерах
Vcl=Vsect*Nscl=512*4=2048 байт
Чтобы определить объем файлов в кластерах нужно взять объём файла и поделить на объём кластера с округлением в положительную сторону плюс один.
Имя файла
Промежуточный
Конечный
А 4,638671875 6
B 5,126953125 7
C 3,41796875 5
D 3,173828125 5
E 2,197265625 4
Общее количество позиций в таблице расположения файлов (FAT) определяется емкостью диска в кластерах. Для решаемой задачи это значение можно рассчитать как
Ndcl=Ntrk*NsectNscl=5*244=30
Построим таблицу и цепочку кластеров
№ кл 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
№ сс 2 3 4 24 7 20 8 9 11 25 18 13 14 15 16 17 EOF 19
№ кл 19 20 21 22 23 24 25 26 27 28 29 30
№ сс EOF 21 22 23 EOF EOF 26 27 EOF 0 0 0
А[6]=12-13-14-15-16-17
B[7]=5-7-8-9-11-18-19
С[5]=6-20-21-22-23
D[5]=1-2-3-4-24
E[4]=10-25-26-27
Следующим этапом решения поставленной задачи является построение карты диска, которая отражает расположение кластеров по дорожкам диска. Количество дорожек задано и равно 5, общий объем диска в кластерах равен 30, следовательно, на каждой дорожке диска расположено 6 кластеров.
Карта диска будет иметь следующий вид.
№ дорожки Кластеры
1 1 D1 2 D2 3 D3 4 D4 5 B1 6 C1
2 7 B2 8 B3 9 B4 10 E1 11 B5 12 A1
3 13 A2 14 A3 15 A4 16 A5 17 A6 18 B6
4 19 B7 20 C2 21 C3 22 C4 23 C5 24 D5
5 25 E2 26 E3 27 E4 28 0 29 0 30 0
Каждая клетка карты диска содержит номер кластера диска (число в левой части клетки) и обозначение входящего в состав файла кластера с указанием его номера.
Определим время, за которое диск делает один оборот
Tob=60*1000Nob=60*10003800=15,8 мс
За это время под головкой считывания/записи диска проходят все кластеры одной дорожки, для нашего случая – это 6 кластеров, следовательно, время считывания одного кластера составит
Tcl=Tob6=15,86=2,63 мс
Для считывания первого кластера файла головка должна быть установлена на дорожку, где расположен этот кластер
. Номер дорожки определяется по карте диска. Время перемещения головки на одну дорожку задано, значит, легко можно определить время позиционирования головки на дорожку как:
Tpoz=T1*N=2*N мс
N - число переходов с дорожки на дорожку при перемещении головки считывания/записи.
Когда головка установится на нужной дорожке, необходимо потратить какое-то время на ожидание появления под головкой нужного кластер. Поскольку этот процесс случайный, то, предполагая равномерный закон распределения вероятностей значений времени ожидания, можно принять за время ожидания величину полуоборота диска, то есть:
Toj=Tob2=15,82=7,9 мс
В общем случае, время считывания любого кластера определится как сумма
Tocl=Tpoz+Toj+Tcl
Общее время считывания файла будет представлять собой сумму значений считывания кластеров, которые входят в состав файла