рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Розробити програму, яка дозволяє користувачу тестувати накопичувач на гнучкому магнітному диску

Розробити програму, яка дозволяє користувачу тестувати накопичувач на гнучкому магнітному диску - раздел Образование, Завдання. Розробити Програ...

Завдання.

Розробити програму, яка дозволяє користувачу тестувати накопичувач на гнучкому магнітному диску.

Метод доступу до сектора – “Метелик”. Вимірювати час доступу до сектора.

Використовується DOS, переривання INT 13h, функція 08h та функція 04h.

Вимоги до функціональних характеристик.

Розроблена програма повинна забезпечувати виконання наступних функцій:

- достовірну інформацію;

- алгоритм програми має бути якомога оптимальнішим;

- зручний програмний інтерфейс.

 

Опис об’єкта діагностики

Кількість інформації (щільність) на одній поверхні диска залежить від числа доріжок та числа секторів на одній доріжці. Щільність може суттєво… Таким чином, мінімально-адресуємою на фізичному рівні (рівень команд… Одноіменні доріжки на різних поверхнях диска утворюють ци­ліндр. З кожною поверхнею диска пов’язана своя головка…

Опис методу діагностики та його алгоритм

Для програмної реалізації цього алгоритму організовуємо ввід початкового та кінцевого номерів діапазону перевірки секторів. Після цього у циклі по…  

Проектування тестової програми

Опис системних функцій, що використовуються у програмі

В даній програмі використовується функція 04h переривання 13h, яка дозволяє перевірити сектори. Функція перевіряє CRC для вказаних секторів на… Вхід: DL = номер диска;

Схема алгоритму

Програма тестування НГМД складається з двох процедур та головної програми.

Процедура Verif(Ngol,Ndor,Nsek:byte) виконує верифікацію дискети, використовуючи системну функцію 04h переривання 13h, яка була описана вище. Функція Verif реалізована за наступним алгоритмом:

- запис у регістри cl,ch та dh номера сектора, доріжки та голівки відповідно;

……..

reg.cl:=Nsek;

reg.ch:=Ndor;

reg.dh:=Ngol;

….

- посилання у регістр ah номера функції ($04);

reg.ah:=$04;

….

- у регістр dl – номер диска ($00 – диск А) та виклик 13 переривання;

reg.dl:=$00;

intr($13,reg);

- перевірка регістра ah: якщо 1 – то помилка.

Процедура Geom виводить на екран геометрію диска, використовуючи описану вище системну функцію 08h переривання 13h. Алгоритм функції Geom описано нижче:

- у регістр ah – номер системної функції ($08);

reg.ah:=$08;

- у регістр dl – номер диска ($00 – диск А);

reg.dl:=$00;

- виклик 13 переривання;

intr($13,reg);

- вивід на екран кількості голівок, циліндрів та секторів, для цього до значення регістрів dh та ch (які містять інформацію про кількість голівок та циліндрів) додаємо 1, оскільки циліндри та голівки починають рахуватися з 0;

Heads:=reg.dh+1;

Cyls:=reg.ch+1;

Sectors:=reg.cl;

 

- розрахунок об’єму диска шляхом знаходження добутка між кількістю секторів, доріжок, голівок та розміром сектору (512), та вивід його на екран;

V:=(Heads*Cyls*Sectors*t)/1024;

writeln('объём диска: ',V:11,'Mb');

 

У головній програмі спочатку викликається функція Geomдля отримання інормації про кількість секторів, циліндрів та голівок на диску, після чого вводяться початкові та кінцеві номери діапозону тих голівок, доріжок та секторів, які необхідно перевірити. Далі організовано три цикла: перший для голівок, другий для циліндрів і третій для секторів. Для останнього циклу підраховується кількість проходів шляхом ділення без залишку різниці між кінцевим та початковим номерами діапазону секторів. В ціх циклах викликається процедура Verif за алгоритмом “Метелика”, який був описаний вище.

Перед викликом процедури Verif та після нього викликається функція GetTime(h,m,s,s100), за допомогою якої визначаємо час доступу до сектора.

....

for i:=NgBeg to NgFin do

for j:=NdBeg to NdFin do

begin

k:=((nsfin-nsbeg) div 2)+1;

while k<>0 do

begin

GetTime(h,m,s,s100);

Verif(i,j,nsbeg);

GetTime(hk,mk,sk,s100k);

Verif(i,j,nsfin);

nsbeg:=nsbeg+1;

nsfin:=nsfin-1;

k:=k-1;

end;

end;

writeln('Time: ',sk-s,' sec ',s100k-s100,' Sec/100'); readkey;

End.

 

ТЕКСТ ПРОГРАМИ.

program testFD;

uses crt,dos;

var

reg:REGISTERS;

NgBeg,NgFin:byte;

NdBeg,NdFin:byte;

NsBeg,NsFin:byte;

i,j,k:integer;

h,m,s,s100,hk,mk,sk,s100k:word;

{процедура перевірки диска}

Procedure Verif(Ngol,Ndor,Nsek:byte);

begin

reg.cl:=Nsek; {отримання номера сектора}

reg.ch:=Ndor; {отримання номера доріжки}

reg.dh:=Ngol; {отримання номера голівки}

reg.ah:=$04; {виклик функції 04h }

reg.dl:=$00; {00 – диск А (01 – В, 80 – С )}

intr($13,reg); {виклик переривання 13h}

{перевірка на помилку}

if reg.ah=1 then writeln('Error ',' Nsek= ',Nsek)

else

writeln('Nsek= ',Nsek,' Ndor= ',Ndor,' Ngol= ',Ngol,' OK' );

end;

{Геометрія диска}

Procedure Geom;

var v,t:real;

Heads:byte;

Cyls:byte;

Sectors:byte;

begin

reg.ah:=$08; {виклик функції 08h}

reg.dl:=$00; {диск А}

intr($13,reg); {виклик переривання 13h}

Heads:=reg.dh+1; {кількість голівок}

Cyls:=reg.ch+1; {кількість циліндрів}

Sectors:=reg.cl; {кількість секторів}

writeln('Heads: ',Heads); {вивід кількості голівок}

writeln('Cyls: ',Cyls); {вивід кількості циліндрів}

writeln('Sectors: ',Sectors); {кількість циліндрів}

t:=512;

V:=(Heads*Cyls*Sectors*t)/1024; {розрахунок об’єму диска } writeln('объём диска: ',V:11,'Mb'); {вивід об’єму диска }

end;

{головна програма}

Begin

ClrScr;

Geom;

readkey;

 

{вводимо параметри діапазону}

 

writeln('Введите начальный номер головки');

readln(NgBeg);

writeln('Введите конечный номер головки');

readln(NgFin);

writeln('Введите начальный номер цилиндра');

readln(NdBeg);

writeln('Введите конечный номер цилиндра');

readln(NdFin);

writeln('Введите начальный номер сектора');

readln(NsBeg);

writeln('Введите конечный номер сектора');

readln(NsFin);

 

for i:=NgBeg to NgFin do {цикл для голівок}

for j:=NdBeg to NdFin do {цикл для доріжок}

begin

k:=((nsfin-nsbeg) div 2)+1; {кількість проходів}

for t:=0 to k-1 do {цикл для сеторів}

begin

GetTime(h,m,s,s100); {отримуємо значення часу}

Verif(i,j,nsbeg+t);

GetTime(hk,mk,sk,s100k);

Verif(i,j,NsFin-t);

end;

end;

{визначаємо час доступу до сектора}

 

writeln('Timeb: ',m,' min ',s,' sec ',s100,' Sec/100');

writeln('Timef: ',mk,' min ',sk,' sec ',s100k,' Sec/100');

readkey;

End.

 

Результати роботи програми:

Запустимо програму для визначення часу доступу до сектора на одній доріжці

Отримали результат:

 

Heads: 2

Cyls: 80

Sectors: 18

объём диска: 1.44E+0003Mb

Введите начальный номер головки

Введите конечный номер головки

Введите начальный номер цилиндра

Введите конечный номер цилиндра

Введите начальный номер сектора

Введите конечный номер сектора

Nsek= 3 Ndor= 4 Ngol= 1 OK

Nsek= 6 Ndor= 4 Ngol= 1 OK

Nsek= 4 Ndor= 4 Ngol= 1 OK

Nsek= 5 Ndor= 4 Ngol= 1 OK

Timebeg: 15 min 38 sec 12 Sec/100

Timefin: 15 min 38 sec 29 Sec/100

 

Тобто бачимо що час доступу складає 17 Sec/100

Також видно що сектори перевіряються за алгоритмом “Метелика”.

 

Визначимо час доступу до секторів різних доріжок:

Результат:

 

Введите начальный номер головки

Введите конечный номер головки

Введите начальный номер цилиндра

Введите конечный номер цилиндра

Введите начальный номер сектора

Введите конечный номер сектора

Nsek= 4 Ndor= 2 Ngol= 1 OK

Nsek= 5 Ndor= 2 Ngol= 1 OK

Nsek= 4 Ndor= 3 Ngol= 1 OK

Nsek= 5 Ndor= 3 Ngol= 1 OK

Timebeg: 22 min 59 sec 83 Sec/100

Timefin: 23 min 0 sec 5 Sec/100

 

Тобто час доступу дорівнює 22 Sec/100.

Визначимо час доступу до секторів різних доріжок

Результат:

 

Введите начальный номер головки

Введите конечный номер головки

Введите начальный номер цилиндра

Введите конечный номер цилиндра

Введите начальный номер сектора

Введите конечный номер сектора

Nsek= 7 Ndor= 2 Ngol= 0 OK

Nsek= 8 Ndor= 2 Ngol= 0 OK

Nsek= 7 Ndor= 3 Ngol= 0 OK

Nsek= 8 Ndor= 3 Ngol= 0 OK

Nsek= 7 Ndor= 2 Ngol= 1 OK

Nsek= 8 Ndor= 2 Ngol= 1 OK

Nsek= 7 Ndor= 3 Ngol= 1 OK

Nsek= 8 Ndor= 3 Ngol= 1 OK

Timebeg: 24 min 37 sec 22 Sec/100

Timefin: 24 min 37 sec 44 Sec/100

 

Бачимо, що час доступу – 22 Sec/100.

 

Одже, виходячи з отриманих результатів роботи програми, можна зробити висновок, що час доступу до сектора на одній доріжці меньший ніж час доступу до сектора на різних доріжках або голівках.

 

– Конец работы –

Используемые теги: Розробити, програму, яка, дозволяє, користувачу, тестувати, накопичувач, гнучкому, магнітному, диску0.135

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Розробити програму, яка дозволяє користувачу тестувати накопичувач на гнучкому магнітному диску

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Яка чисельність населення україни? Яке місце за кількістю населення в Європі займає Україна
Яка чисельність населення україни Яке місце за кількістю населення в Європі займає Україна... Станом на р населення України становить млн осіб Займає... Назвіть причини депопуляції населення...

Короткий конспект лекцій/ Програма навчальної дисципліни Змістовий модуль 1._Поняття, види, особливості здійснення комерційних операцій на світовому ринку Тема1. Основні поняття ЗЕД
ЛЬВІВСЬКИЙ ІНСТИТУТ МЕНЕДЖМЕНТУ... Кафедра менеджменту т міжнародного бізнесу...

РОБОЧА ПРОГРАМА
ТА МЕТОДИЧНІ ВКАЗІВКИ... до виконання практичних завдань самостійної роботи та ОДЗ... з курсу Інтелектуальна власність...

РОБОЧА ПРОГРАМА ВИРОБНИЧА ПРАКТИКА для студентів 3 курсу галузі знань 0305 «Економіка та підприємництво» напрям підготовки 6.030508 «Фінанси і кредит» денна форма навчання
МІНІСТЕРСТВО ОСВІТИ І НАУКИ МОЛОДІ ТА СПОРТУ... АВТОНОМНОЇ РЕСПУБЛІКИ КРИМ... РЕСПУБЛІКАНСЬКИЙ ВИЩІЙ НАВЧАЛЬНИЙ ЗАКЛАД...

Кузнецова Г.П Робоча навчальна програма
Глухівський національний педагогічний університет... Мені Олександра Довженка...

РОБОЧА ПРОГРАМА НАВЧАЛЬНОЇ ДИСЦИПЛІНИ КРИМІНАЛЬНЕ ПРАВО УКРАЇНИ. ОСОБЛИВА ЧАСТИНА
Харківський національний університет імені В Н Каразіна... Кафедра кримінально правових дисциплін юридичного факультету...

РОБОЧА ПРОГРАМА НАВЧАЛЬНОЇ ДИСЦИПЛІНИ ТАКТИКО-СПЕЦІАЛЬНА ПІДГОТОВКА
ВНУТРІШНІХ СПРАВ... ФАКУЛЬТЕТ ПІДГОТОВКИ ФАХІВЦІВ ДЛЯ ПІДРОЗДІЛІВ... МІЛІЦІЇ ГРОМАДСЬКОЇ БЕЗПЕКИ...

З використанням програми MS ACCESS
До виконання лабораторних робіт... З використанням програми MS ACCESS...

Лекція 6 Розбиття програм на множину потоків
На сайте allrefs.net читайте: Лекція_6.

ПРОГРАМА РОБОТИ ГУРТКА ЮНИЙ ФІНАНСИСТ
ПРОГРАМА РОБОТИ ГУРТКА ЮНИЙ ФІНАНСИСТ ПЕРЕЛІК ТЕМ ЗАНЯТЬ У ГУРТКУ ЮНИЙ ФІНАНСИСТ Сутність і сфери застосування фінансів...

0.029
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам