43313

Розробка програмного забезпечення для визначення інформації про жорсткий диск за допомогою інтерфейсу IDE/ATAPI

Курсовая

Информатика, кибернетика и программирование

Програми мовою асемблера дуже точні. Оскільки ця мова дозволяє програмістові безпосередньо працювати з усім апаратним забезпеченням, програми на асемблері можуть робити те, що недоступно ніякій іншій програмі. Безсумнівно, що в програмуванні пристроїв де потрібен контроль над окремими розрядами регістрів пристрою, програмування мовою асемблера - єдиний підходящий вибір. І остання причина для написання програми на мові асемблера. Тільки через написання програм на цьому рівні деталізації можна зрозуміти, як працює машина на самому нижньому рівні.

Украинкский

2013-11-04

710.5 KB

4 чел.

Вступ

На сьогоднішній день інтерфейс IDE/ATAPI самий популярний для підключення жорстких дисків. Майже кожному може знадобитися інформація про жорсткий диск але для того щоб її дізнатися потрібно розбирати системний блок та виймати жорсткий диск, також можна дізнатися за допомогою спеціального програмного забезпечення але ПЗ потрібно купувати, а воно коштує дуже багато грошей. Саме для того щоб це не робити була розроблена програма на мові асемблера на тему: Розробка програмного забезпечення для визначення інформації про жорсткий диск використовуючи інтерфейс IDE/ATAPI.

Сьогодні всюди використаються такі мови високого рівня як Бейсік, Фортран і Паскаль. Очевидно, навіть маючи у своєму розпорядженні сучасні могутні мови, ми все ще маєте потребу в асемблері через його ефективність і точність.

Мова асемблера - це символічне подання машинної мови. Всі процеси в машині на найнижчому, апаратному рівні приводяться в дію тільки командами (інструкціями) машинної мови.

Програми мовою асемблера дуже точні. Оскільки ця мова дозволяє програмістові безпосередньо працювати з усім апаратним забезпеченням, програми на асемблері можуть робити те, що недоступно ніякій іншій програмі. Безсумнівно, що в програмуванні пристроїв де потрібен контроль над окремими розрядами регістрів пристрою, програмування мовою асемблера - єдиний підходящий вибір. І остання причина для написання програми на мові асемблера. Тільки через написання програм на цьому рівні деталізації можна зрозуміти, як працює машина на самому нижньому рівні.

Метою даного курсового проекту є вироблення вмінь і навичок по розробці програмного забезпечення для визначення інформації про жорсткий диск використовуючи інтерфейс IDE/ATAPI.


Розділ І.
Теоритична частина

1.1. Будова жорсткого диску

Основним пристроєм зберігання інформації у комп'ютерній системі є жорсткий диск. Великий обсяг і енергонезалежність зробили його найбільш придатним для зберігання програм і даних.

Повна назва жорсткого диска — НЖМД — накопичувач на жорстких магнітних дисках. Іноді його ще називають вінчестером. Існує легенда, яка пояснює, чому за жорсткими дисками закріпилася така вигадлива назва. Перший жорсткий диск, випущений в Америці на початку 70-х років, мав об'єм на ЗО МБ інформації на кожній робочій поверхні. У ті самі часи широко відома знову ж таки в Америці магазинна гвинтівка О. Ф. Вінчестера мала калібр — 0.30. Напевно, перший вінчестер гуркотів під час роботи, як автомат, або порохом від нього пахло, але з того часу жорсткі диски почали називати вінчестерами.

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

Усередині корпуса знаходяться всі механізми і деякі електронні вузли.

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

Диск —це кругла металева пластина з дуже рівною поверхнею, вкрита тонким феромагнітним шаром. У багатьох накопичувачах використовується шар оксиду заліза (яким вкривається звичайна магнітна стрічка), але новітні моделі жорстких дисків працюють із шаром кобальту завтовшки приблизно в десять мікронів. Таке покриття більш міцне і, крім того, дозволяє значно збільшити Щільність запису. Технологія його нанесення близька до тієї, що використовується при виробництві інтегральних мікросхем.

Кількість дисків може бути різною — від одного до п'яти, кількість робочих поверхонь, відповідно, удвічі більшою (по дві на кожному диску). Останнє (як і матеріал, використаний для магнітного покриття) визначає об’єм жорсткого диска. Іноді зовнішні поверхні крайніх дисків (або одного з них) не використовуються, що дозволяє зменшити висоту накопичувача, але при цьому кількість робочих поверхонь зменшується й може виявитися непарною.

Магнітні головки зчитують і записують інформацію на диски. Принцип запису загалом схожий на той, що використовується у звичайному магнітофоні. Цифрова інформація перетворюється на змінний електричний струм, що надходить на магнітну головку, а потім передається на магнітний диск, але вже у вигляді магнітного поля, яке диск може сприйняти і «запам'ятати».

Магнітне покриття диска являє собою безліч дрібних областей довільної (спонтанної) намагніченості. Для наочності уявіть собі, що диск вкритий шаром дуже маленьких стрілок від компаса, спрямованих у різні сторони. Такі частинки-стрілки називаються доменами. Під впливом зовнішнього магнітного поля власні магнітні поля доменів орієнтуються відповідно до його напрямку. \ Після припинення дії зовнішнього поля на поверхні диска утворюються зони 1 залишкової намагніченості. У такий спосіб зберігається записана на диск інформація. Ділянки залишкової намагніченості, опинившись при обертанні диска І напроти зазору магнітної головки, викликають у ній електрорушійну силу, яка змінюється в залежності від величини намагніченості. Пакет дисків, змонтований на осі-шпинделі, рухається спеціальним двигуном, компактно розташованим під ним. Швидкість обертання дисків, як правило, складає 5400 об/хв, хоча існують диски і зі швидкістю обертання 7200, 10000 і навіть 15000 об/хв. Для того щоб скоротити час виходу накопичувача в робочий стан, двигун при вмиканні якийсь час працює у форсованому режимі. Тому джерело живлення комп'ютера повинно мати запас пікової потужності.

Тепер про роботу головок. Вони переміщаються за допомогою прецизійного крокового двигуна і ніби «пливуть» на відстані в частки мікрона від поверхні диска, не торкаючись його. На поверхні дисків у результаті запису інформації утворюються намагнічені ділянки, у формі концентричних кіл. Вони називаються магнітними доріжками. Переміщаючись, головки зупиняються над кожною наступною доріжкою. Сукупність доріжок, розташованих одна під одною на всіх поверхнях, називають циліндром. Усі головки накопичувача перемішаються одночасно, здійснюючи доступ до однойменних циліндрів з однаковими номерами.

Рисунок 1 -

Рисунок 2 -


Основні компоненти вінчестера:

1 - Алюмінієва пластина - серце вінчестера. Саме тут зберігаються всі дані, причому не тільки користувальницькі, але й службові. порошина, що потрапила на неї, або відбиток пальця зроблять вінчестер непрацездатним.

2 - Герметично, що закривається кришка, захищає механізм жорсткого диска від влучення пилу й бруду, однак вакууму, як багато хто думають, усередині вінчестера немає!

3 - Притискна шайба забезпечує точне кріплення пластин на шпинделі. Важлива деталь, якщо врахувати швидкість обертання.

4 - Невелика шайба одягається на шпиндельний двигун і служить прокладкою між пластинами. Всі деталі ретельно підігнані по розмірах, тому шайба максимально точно співпадає діаметру шпинделя.

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

6 - Це двигун вінчестера, на шпиндель якого кріпляться  пластини. Живлення й керування виконується через контакти, до них примикає плата, що пригвинчується з іншої сторони корпуса вінчестера.

7 - Магнітний елемент котушки актуатора, що має додаткову функцію паркування головок жорсткого диска.

8 - Основа корпуса вінчестера, до якої кріпляться всі комплектуючі.

9 - Невелика поролонова прокладка повторює контури корпуса вінчестера й рятує плату від замикань і ушкоджень. У деяких моделях вона теплопровідна й виконує роль термопасти для чипів контролера.

10 - Мозок жорсткого диска розташований саме на цій невеликій платі, названої контролером.
1.1.1 Інтерфейси

Для того щоб обмінюватися даними з комп'ютером, жорсткий диск підключений кабелями управління, за допомогою яких передаються команди диску й дані. Розглянемо різні інтерфейси підключення жорстких дисків.

IDE/ATA

IDE (Integrated Drive Electronics) — це назва типу жорстких дисків, шо мають інтерфейс ATA (AT Attachment). Дешева електроніка IDE у поєднанні з паралельною передачею даних АТА дозволяє виробляти жорсткі диски, ціна яких не надто висока. Проте не слід забувати, що АТА не призначений для зовнішніх підключень і не підтримує кабелів завдовжки більше 60 см.

Один канал АТА може підтримувати до двох дисків, первинний — master

вторинний — slave. Дуже часто ставлять на один канал жорсткий диск як master й інший, повільніший пристрій, типу CD-ROM, як slave. Але оскільки IDE може звертатися тільки до одного пристрою на каналі одночасно, то знижується продуктивність системи загалом. Так що краще не мати slave-пристроїв у принципі. Тим більше, що зараз усі материнські плати мають два інтегровані канали IDE, а деякі три і навіть чотири. Якщо є можливість, то краше підключати жорсткий диск як master на перший канал, a DVD або CD-ROM — як master на другий канал.

Сьогодні на ринку присутні чотири основні стандарти IDE-дисків: АТА/33, АТА/66, АТА/100. У цьому випадку число показує максимальну пропускну здатність у мегабайтах у секунду. Для АТА/66 і АТА/100 потрібен спеціальний gO-контактний кабель, а зі стандартним 40-контактним АТА/66/100 диск буде працювати, як АТА/33. Як правило, такий кабель іде в комплекті з усіма материнськими платами, що підтримують АТА/66/100. Ці три стандарти називають одним словом — UDMA. Хоча іноді й вживають UDMA, АТА і IDE як взаємозамінні поняття, але це неправильно.

Усі IDE-диски повинні працювати з усіма варіантами АТА. Диск АТА/100 повинен прекрасно функціонувати з контролером АТА/33, а диск АТА/33 повинен так само прекрасно працювати з контролером АТА/100. Але працювати вінчестер буде на швидкості найповільнішого компонента. В обох наведених випадках це буде швидкість АТА/33, тобто максимальна пропускна здатність дорівнюватиме 33 МБ/с. Іноді можуть виникнути певні несумісності, наприклад, коли конкретний диск не бажає працювати з конкретним кабелем або два диски від різних виробників не бажають співіснувати на одному каналі контролера.

Насправді різниця в продуктивності між АТА/33,66 і 100 не така вже й велика, тому що йдеться про пікову пропускну здатність, яка під час реальної роботи досягається дуже рідко Поки не існує дисків АТА/100, що забезпечують передачу даних навіть у 66 МБ/с, і лише деякі моделі досягли планки в 33 МБ/с. Тільки кеш-пам'ять жорсткого диска може скористатися перевагами підвищеної пропускної здатності. Але для цього розмір кеша повинен бути досить великим. А більшість IDE-дисків має всього 512 КБ кеш-пам'яті, і тільки деякі, найдорожчі, можуть похвалитися кешем у 2 або навіть 4 МБ.

Так що головним недоліком IDE, як і раніше, залишається мала швидкість. Звичайно, сучасні IDE-диски наздогнали за швидкісними характеристиками старі моделі SCSI-дисків, але з новими SCSI-вінчестерами їм все одно не зрівнятися. Можна придбати досить швидкий IDE-диск зі швидкістю обертання 7200 обертів на хвилину (грт), але можна купити і SCSI-привод зі швидкістю 15, 000 rpm, який буде більш швидким. Крім того, час напрацювання на відмову, що заявляється виробниками, у IDE-дисків набагато менший, ніж у SCSI-дисків. Можливо, це просто маркетингові заходи, але розповсюджена думка, що SCSI-пристрої надійніші, ніж IDE.

Майбутнє АТА, найімовірніше, належить стандарту Serial ATA. Serial ATA матиме кабель усього з двома контактами (один на прийом, один на передачу) і повинен забезпечити IDE пропускну здатність до 1.5 ГБ/с, а можливо, і більше. Це вдвічі перекриває пропускну здатність АТА/100, у якого контактів у 40 разів більше. Єдиною негативною стороною Serial ATA є те, що на одному каналі може бути тільки один пристрій, але при наявності контролера з декількома каналами це не проблема.

SCSI

SCSI давно став стандартним інтерфейсом для діючих станцій і серверів І хоча за ціною SCSI обходиться значно дорожче IDE, за ці гроші ми одержуємо набагато більшу пропускну здатність, підтримку більшої кількості пристроїв на одному каналі, набагато більшу довжину кабелів (до 12 м), підтримку зовнішніх пристроїв і багатозадачність.

Звичайна (іноді говорять «вузька») шина SCSI може нести на собі до 8 при строїв, а широка (wide) — до 16. Сам SCSI-контролер займає одну адресу, а інші 15 залишає для пристроїв, що підключаються (відповідно на вузькій шині для пристроїв залишається 7 адрес). Старші адреси SCSI мають більший пріоритет Це трохи ускладнює установку SCSI. Зазвичай краше надати пріоритет повшь ним пристроям, типу CD-ROM, а не жорстким дискам.

Існує безліч різних варіантів SCSI. З доступних зараз пристроїв можна назвати Ultra, Ultra2 і UltragО SCSI Ultra SCSI дозволяє передачу 20 МБ/с і має 8 адрес. Широка (wide) версія Ultra SCSI піднімає пропускну здатність удвічі, тобто до 40 МБ/с. Ultra2 SCSI, відомий також як LVD (Low Voltage Differential) SCSI, має пропускну здатність 40 МБ/с, і, відповідно, wide-версія його дає нам 80 МБ/с. Ultral60 SCSI продовжує традицію подвоєння пропускної здатності, але буває тільки у варіанті wide, що дає нам 16 пристроїв на каналі й 160 МБ/с SCSI-пристрої, як правило, мають сумісність зверху вниз. Правда, цього ніхто не гарантує, але в більшості випадків, наприклад, пристрій SCSI-2 буде прекрасно себе почувати на контролері Ultra2Wide SCSI. Однак при цьому буває, що за наявності на одній шині швидкого і повільного пристроїв обидва починають працювати з максимальною швидкістю повільного. Але насправді те, як будуть поводитися різні SCSI-пристрої, підвішені поруч, залежить в основному від контролера.

Із SCSI часто виникають проблеми, що стосуються установки і першого настроювання, особливо в тих, хто робить це вперше Одночасно усі ці проблеми з лихвою окупаються надійністю цього інтерфейсу. А поява активних терміна торів (тобто пристроїв, які обов'язково повинні завершувати ланцюжок SCSI пристроїв) помітно спростила установку SCSI- пристроїв

Головна перевага SCSI виражається терміном high-end, тобто більш швидкі, найбільш об'ємні жорсткі диски мають інтерфейс SCSI Наприклад, Seagate Cheetah з 15 000 обертів на шпинделі у варіанті IDE ніколи не вироблявся і навряд чи буде вироблятися. Натомість здатність підтримувати до 15 пристроїв на одному каналі говорить про чудове масштабування, що для повних цілей теж дуже важливо.

Майбутнє SCSI уже розписане як по нотах З'являються перші пристрої Ultra 320. і наступним кроком буде Ultra 640. Сам стандарт SCSI напочатку передбачав масштабування і став масштабований настільки, що навряд чи щось може з ним у цьому зрівнятися.

Fibre channel (оптоволоконний канал)

Fibre channel — це інтерфейс, шо докорінно відрізняється від SCSI і IDE Узагалі він ближчий до Ethernet і InfiniBand. Коротко кажучи, цей інтерфейс призначений не тільки для того, щоб приєднувати жорсткі диски й іншу периферію до системи, а насамперед для організації мереж, об'єднання віддалений один від одного масивів жорстких дисків й інших операцій, що вимагають високої пропускної здатності в поєднанні з великими відстанями. Fibre channel часто використовується для з'єднання SCSI RAID- масивів із мережею робочої групи або сервером.

Існуючі технології дозволяють пропускну здатність Fibre channel у 100 МБ/с, а теоретична межа цієї технології лежить десь у районі 1.06 ГБ/с. При цьому вже зараз ряд компаній зайнятий розробкою пристроїв із пропускною здатністю до 2.12 ГБ/с, але це вже наступне покоління інтерфейсу Fibre channel. На сьогоднішньому ринку також присутні рішення, коли для досягнення надвисокої пропускної здатності використовується цілий ряд каналів Fibre channel одночасно.

На відміну від SCSI, Fibre channel має набагато більшу гнучкість. Якщо SCSI обмежується всього 12 м, то Fibre channel дозволяє з'єднання завдовжки до 10 км при використанні оптичного кабелю і трохи менше при використанні порівняно недорогих мідних сполук.

IEEE 1394

IEEE 1394, він же FireWire (як його назвала Apple), він же iLink (як його назвала Sony), реально стає стандартом для передачі цифрового відео, але також може використовуватися для підключення жорстких дисків, сканерів, мережного устаткування, цифрових камер і всього, що вимагає високої пропускної здатності Сьогодні FireWire залишається досить дорогим рішенням (принаймні, для рядового користувача), але стандарт дедалі більше проникає в усі сфери комп'ютерної периферії і постійно дешевшає.

FireWire здатний підтримувати до 63 пристроїв на одному каналі 400 МБ/с. A IEEE 1394b, перша спроба серйозного перегляду FireWire, підтримуватиме пропускну здатність у 800 МБ/с на канал. FireWire забезпечує велику продуктивність, але зовнішні пристрої з цим інтерфейсом потребують окремого зовнішнього джерела живлення.

Перші жорсткі диски FireWire уже починають з'являтися, і вже досить давно існують моделі, які використовують транслятор IDE/FireWire. А от для відеокамер, сканерів і принтерів цей інтерфейс використовується вже дуже широко. Також на базі FireWire можна будувати продуктивні локальні мережі. Багато моделей комп'ютерів Apple мають один або два FireWire-порти, однак на PC пей стандарт поки такого визнання не одержав.

Найприємнішою особливістю FireWire є можливість «гарячого» підключення. Тобто можна підключати й відключати FireWire-пристрої, не вимикаючи комп'ютер. Але якщо таким пристроєм є жорсткий диск, то операційна система повинна вміти монтувати нові жорсткі диски «на льоту».

Майбутнє IEEE 1394 виглядає досить оптимістично, з огляду на молодість Цього стандарту і вже майже готову специфікацію 1394b, що дозволяє подвоїти пропускну здатність. А визнання цього стандарту — справа недалекого майбутнього, популярність його зростає з кожним днем, а ціни, відповідно, падають.

USB

USB (Universal Serial Bus — універсальна послідовна шина) — стандарт, що одержав за останні кілька років дуже широке поширення. Складно знайти комп'ютер, на якому б не було підтримки USB. Цей інтерфейс має два швидкісні 1 режими. Перший — «високошвидкісний» — забезпечує пропускну здатність у 1 12 МБ/с і довжину з'єднувальних кабелів до 5 м. Другий — низькошвидкісний — J пропускну здатність 1.5 МБ/с і довжину кабелів до 3 м. Зрозуміло, що для і жорстких дисків цей стандарт непридатний через свою повільність, а от для І усіляких пристроїв резервного копіювання, CD-R, сканерів, мережних пристроїв 1 і пристроїв введення цілком підходить.

На одному каналі USB може бути до 127 пристроїв, для чого можуть використовуватися-пристрої, що пропускають через себе сигнал, або USB-концентра- і тори. USB має так званий майстер-контролер, так що будь-який сигнал, переданий, скажімо, від USB- жорсткого диска до USB CDR, повинен пройти через контролер, а вже потім надійти до необхідного пристрою. Це дуже знижує пропускну здатність при використанні декількох USB-пристроїв. Крім того, USB-пристрої не можуть використовуватися кількома комп'ютерами одночасно (у і мережі, наприклад), хоча два комп'ютери можна з'єднати між собою USB-мережею через USB-міст.

Зате при усіх своїх мінусах USB дозволяє «гаряче» підключення. Правда, І операційна система все одно зажадає від вас драйвер нового пристрою, але пере-завантажувати комп'ютер не доведеться.

Сьогодні великого поширення набуває стандарт USB 2.O. Він піднімає планку пропускної здатності з 12 до 480 МБ/с. Це дозволяє використовувати USB 2.0 для підключення зовнішніх жорстких дисків, і такі диски вже з'явилися.

Який інтерфейс вибрати

Насправді вибір уже визначений вашою метою. Якщо ви збираєте домашній комп'ютер для ігор або для офісної роботи, то IDE-диск дасть вам найкращу комбінацію ціна/продуктивність. USB добре підійде для зовнішнього CDR або стрічкового накопичувача для резервного копіювання (якщо копіювати не занадто багато). Якщо вам потрібен швидкий зовнішній диск для підключення до ноутбука або для регулярного перенесення між декількома комп'ютерами і основною вимогою, крім мобільності, є продуктивність, то ваш вибір — IEEE 1394. Якщо йдеться про оснащення серйозної робочої станції або сервера, де критичними є надійність і продуктивність, то кращий вибір — SCSI, особливо у формі RAID, хоча це й коштує досить дорого. Якщо ви формуєте кластер автоматизованих робочих місць, яким необхідний високошвидкісний доступ до великого масиву даних, то Fibre channel забезпечить вам швидкість; віддаленість робочих місць від масиву інформації практично не має значення. Інша можливість полягає в створенні мережі Gigabit Ethernet, а для сервера, як правило, вибирають рішення RAID SCSI; для некритичних серверів — IDE RAID.

RAID

RAID розшифровується як Redundant Array of Inexpensive Disks, або по-українськи — надлишковий масив недорогих дисків. RAID переслідує дві основні мети: підвищити швидкість і/або надійність. Існує досить багато типів RAID, але основні — це RAID 0, 1 і 0+1. RAID 0 дозволяє об'єднати обсяг двох дисків у єдине ціле, так що операційна система буде бачити їх і використовувати як один фізичний диск RAID 1 дозволяє створювати «дзеркало», тобто інформація пишеться відразу як на один, так і на другий диск, і у випадку, якщо перший, основний, диск вийде з ладу, то всі дані на другому будуть збережені повністю. Ну і, нарешті, RAID 0+1 використовує одночасно два описані вище режими (не забувайте, що при цьому потрібно, як мінімум, чотири жорсткі диски, два зливаються в масив і два використовуються для «дзеркала»). Є ще інші варіанти RAID для підвищення надійності зберігання інформації, типу парності, для перевірки цілісності даних


1.1.2 Головний завантажувальний запис

MBR є основним засобом завантаження з жорсткого диска, що підтримується BIOS Тільки один із розділів диска мас право бути позначеним як активний, Що означатиме, що програма завантаження повинна завантажити в пам'ять перший сектор саме цього розділу і передати туди управління. Програма завантаження переглядає таблицю розділів, вибирає з них активний, завантажує перший блок цього розділу і передає туди управління

Розглянемо, як операційні системи класу MS-DOS і Windows 9x оперують із розділами. ОС забирає у своє користування два з чотирьох розділів: Primary DOS partition, Extended DOS partition. Перший з них (primary) одержує букву С Другий — це контейнер логічних дисків. Вони усі знаходяться там у вигляді ланцюжка підрозділів, які так і іменуються: D:, Е: і т. д. Логічні диски можуть мати і сторонні файлові системи, відмінні від файлової системи FAT. яка застосовується в DOS/Windows 9x. Однак, я-к правило, сторонність файлової системи пов'язана з присутністю ще однієї операційної системи, яку, узагалі кажучи, варто було б помістити у свій власний розділ (не extended DOS), але для таких дій часто виявляється занадто маленькою таблиця розділів.

Відзначимо ще одну важливу обставину. Коли на чистий жорсткий диск установлюється DOS/Windows 9х, то при завантаженні немає ніяких альтернатив v виборі операційних систем. Тому завантажувач виглядає досить примітивно, йому не треба запитувати в користувача, яку систему той хоче завантажити. З бажанням мати відразу кілька систем виникає необхідність заводити програму, яка дозволяє вибирати систему для завантаження.

В операційних системах Windows NT/2000/XP завантажувач міститься в зaвантажувальному записі активного розділу. У завантажувачі передбачена можливість вибору як завантажувальної операційної системи, так і розділу, де вона знаходиться. За розділами в операційній системі також закріплюються певні букви, однак вони можуть бути змінені користувачем.


1.2. Характеристика жорсткого диску

Обсяг

Об'єм вінчестера є його найважливішою характеристикою для більшості користувачів. Він залежить як від кількості пластин в корпусі жорсткого диска, так і від щільності запису інформації з розрахунку на одну пластину. Так як кількість пластин не може бути нескінченним і при їх великому числі збільшується навантаження на мотор, погіршуються температурні і шумові характеристики диска, важче забезпечується надійність, то збільшення щільності запису на пластину технологічно перспективніший варіант. Саме цей підхід дозволив істотно здешевити виробництво жорстких дисків і значно понизити їх ціну. Сучасні пластини виготовляються з алюмінію або навіть зі скла (деякі моделі IBM), а щільність запису знаходиться в межах 20 ... 60 Гбайт на пластину.

Швидкість

Другий найважливіший параметр вінчестерів - швидкість читання / запису інформації (Transfer Rate). Він залежить в першу чергу від швидкості обертання пластин диска, яка на сьогодні становить 5400 ... 7200 оборотів в хвилину (RPM) для бюджетних моделей, і до 15000 - для дорогих дисків (зазвичай у SCSI-пристроїв). На збільшення швидкості зчитування впливає також і розглянуте вище збільшення щільності запису інформації.

Час доступу

Не менш важлива характеристика продуктивності вінчестера - загальний час доступу до інформації (Access Time), яке визначається часом пошуку потрібної доріжки на диску і часом позиціонування всередині цієї доріжки. Воно залежить в основному від швидкості обертання диска.

Інтерфейси

Розвиток інтерфейсів вінчестерів йшло двома паралельними шляхами: дешевим і дорогим. Дороге рішення полягало у створенні на платі самого вінчестера окремого інтелектуального контролера, який би брав на себе значну частину роботи по взаємодії з вінчестером. Результатом цього підходу з'явився інтерфейс SCSI, який швидко завоював популярність на ринку серверів. Однією з переваг цього підходу була можливість підключення до комп'ютера значної кількості пристроїв, що вимагають для своєї роботи широкого каналу передачі даних. Результатом втілення в життя "дешевого" підходу з'явився широко розповсюджений інтерфейс IDE. Він повністю витіснив інші інтерфейси з ринку дешевих і недорогих систем, поступово розвивався, ставши більш "інтелектуальним", а з часом з'явилися стандарти UDMA, істотно прискорюють роботу вінчестерів. Пропускна швидкість SCSI вище IDE, цілих 160 Мб / с. А IDE працює зі швидкістю 33, 66, 100 і 133 Мб / с, а відповідні стандарти називаються ATA/33, ATA/66, ATA/100 і ATA/133.

У недалекому майбутньому нам пророкують заміну сьогоднішнього Parallel ATA на Serial ATA Пропускна здатність інтерфейсу складе 1,5 Гбіт / с, напруга живлення знизиться з 5 до 3,3 В, число провідників у шлейфі зменшиться до двох (плюс шість на харчування і заземлення), а його довжина збільшиться до 1 метра. Також кане в лету і послідовний спосіб підключення пристроїв, при якому кожне або Master, або Slave. Програмне забезпечення вважатиме обидва пристрої головними, "сидячими" на різних портах.

Зовнішні (переносні) жорсткі диски

В даний час існує декілька рішень для підключення зовнішніх пристроїв. По-перше, є вінчестери, що підключаються до USB-порту. Вони використовуються в основному для обміну даними з цифровими камерами та іншими мобільними пристроями. У силу невисокої пропускної спроможності цієї шини подібні диски, звичайно, не зможуть зрівнятися в продуктивності з внутрішніми пристроями. По-друге, вінчестери з інтерфейсом IEEE1394, який може використовуватися не тільки для підключення жорстких дисків, але й інших пристроїв, що працюють з великими масивами даних, наприклад, відеокамер. Заявлена пропускна спроможність інтерфейсу досягає 50 Мб / с.

Купуючи зовнішні вінчестери, слід особливо звернути увагу на ударостійкість.

RAID-масиви

RAID - це стандарт на об'єднання декількох дисків у масив, видимий системою, як один диск. Це дозволяє підвищити як продуктивність, так і надійність дискової системи. Для збільшення швидкості роботи з інформацією контролер RAID забезпечує паралельне читання / запис інформації одночасно на декілька дисків. Для збільшення надійності інформація може дублюватися на декількох дисках, що підвищує надійність дискової системи, правда, на шкоду ємності. Швидкісні показники при цьому практично не змінюються.

Не забудьте про те, що в RAID-масиви укладаються тільки диски однаковою ємності.

Гучність і ударостійкість

Зараз всі виробники з гордістю говорять про децибелах. Галасливість визначається двома параметрами: шумом обертання дисків вінчестера і шумом руху голівки. Цей параметр багатьом здасться несуттєвим. Проте вночі постійний шум може діяти дратівливо, а при роботі в офісах кілька поруч розташованих комп'ютерів можуть створювати помітне звуковий супровід розумовим процесам. Найефективніший спосіб зменшення шуму - уповільнення швидкості пересування голівки, що зчитує, але це неминуче призводить до втрати продуктивності. Так що якщо ви виявили дуже тихий вінчестер, то уважніше придивіться до його часу пошуку. Втім, сучасні вінчестери дозволяють за допомогою спеціальних програм регулювати швидкість (гучність) роботи диска в залежності від потреб користувачів.

Інший модний показник - ударостійкість. Він характеризується кількістю G, (рівному 9,8 м/с2) при ударі, яку може витримати вінчестер в працюючому і непрацюючому стані. Цей параметр важливий, якщо ви плануєте активно перевозити вінчестер з комп'ютера на комп'ютер.


Розділ ІІ. Алгоритмізація та програмування

2.1. Формалізація задачі

При написанні програми будуть використовуватися наступні команди та директиви:

  •  .model – директива, яка визначає модель пам’яті, яка буде використовуватись (в даному випадку модель пам’яті “small” – код розміщений в одному сегменті, дані та стек – в другому)
  •  .586 – директива, яка дозволяє використовувати команди, які не підтримувались процесором 8086
  •  .stack – директива, яка описує сегмент стеку
  •  .data – директива, яка описує сегмент даних
  •  .code – директива, яка описує сегмент коду
  •  mov – копіює вміст джерела у приймач
  •  push –переміщює вміст джерела у стек 
  •  add –виконує додавання приймача та джерела, результат – в приймач
  •  sub – віднімає джерело від приймача, різниця – в приймач
  •  dec – зменшує приймач на 1
  •  mul – множить джерело на вміст регістру AX, результат – в регістр AX
  •  finit – ініціалізує математичний співпроцесор (FPU)
  •  fild – завантажує ціле число з джерела у стек співпроцесора
  •  faddp – якщо без операндів, додає st(0) до st(1), результат – в st(0)
  •  loop – зменшує cx на 1 та переходить на мітку, якщо cx не дорівнює нулю
  •  int – викликає переривання (в даному випадку – завершує виконання програми та повертає керування DOS


2.2. Алгоритмізація

                              


2.3. Розробка програми на Assembler

Лістинг програми:

.model small

.586

stk segment stack use16

db 1024 dup (?)

stk ends

base equ 1f0h

Base_Port       equ     1f0h

HD              equ      0        ; Hard Disk number

.data

;----parametrs----

Fname           db       'hdd_id.dat', 0

Buffer          db       100h dup ('*')

bas  dw ?

vvt  dw ?

cursor   dw ?

colorF  db ?

colorSC  db ?

colorSC1 db ?

hdd  db ?

string1  db ?

large_MB dq 10 dup (0)

;---help---

help   db '*****************************help*******************************','$'

 hp1   db 'Дана программа призначена для визначення та виведення на екран монiтору, для подальшого використання, таких параметрiв жорстких дискiв, як: ','$'

hp2   db '1) Визначення ємностi НЖМД - HDD_LARGE .','$'

hp3   db '2) Визначення марки жорсткого диску - HDD_ID.','$'

hp4    db 'Програма має дуже простий та зручний користувацький iнтерфейс, проста у ви-користаннi, так-як має лише чотири головнi управляючi клавiшi!!!'

hp5   db ' З допомогою даних клавiш викликається довiдка по програмi, основнi функцiї, та виконується вихiд з програми. Цими дiючими клавiшами є : F1, F3, F4 та ESC.'

hp6   db 'Їхнє призначення вказане у дiалоговому вiкнi програми тестування. Тобто навпроти кожної функцiї виконавчої знаходиться вiдповiдне позначення їй функцiональної клавiшi.'

hp7   db ' Щодо iнших питань якi можуть виникнути пiд час роботи з програмою, просимо звертатися до вiддiлу технiчної пiдтримки продукцiї madebombaster!!!'

hp8   db '                                                                                   тел. 444-55-66      ;););)','$'

;---produced by---

avt   db ' madebombaster ','$'

avtor   db Зінченко Є.П.','$'

Grupa   db 'K-558-43','$'

corp    db 'Produced by  madebombaster ','$'

minister   db 'Мiнiстерство освiти i науки України','$'

krmt   db 'Київський радiомеханiчний коледж','$'

KP  db '***Курсовий проект з предмету СП***','$'

TEMA  db 'Iнформацiя про HDD:','$'

ZAKON  db ' HDD_IDENTIFICATOR ver. 1.0  Produced by  madebombaster      ***Незаконне копiювання та розповсюдження програми переслiдується законодавством України!!!***:)                           Допобачення i бувайте здоровi!!!','$'

PRESS   db '<<<Натиснiть будь-яку клавiшу для продовження...>>>','$'

FUN1   db '1) Визначення ємностi НЖМД (HHD_LARGE)              - F3','$'

FUN2     db '2) Визначення марки НЖМД (HDD_ID)                   - F4','$'

 FUN3     db '3) ??? HELP ???                                     - F1','$'

FUN4   db '4) * * * QUIT * * *                                 - ESC','$'

selectport  db 'Будьласка оберiть тестуємий порт:','$'

pri1    db 'F1- Primary master','$'

pri2   db 'F2- Primary slave','$'

sec1    db 'F3- Secondary master','$'

sec2    db 'F4- Secondary slave','$'

back   db '<<<---ESC','$'

msg0   db "Ємкiсть НЖМД: ",'$'

msg1   db "  Секторiв",'$'

info   db 'Сирiйний номер НЖМД','$'

STRAN1   db 'Країна  :   Китай','$'

STRAN2   db 'Країна  :   USA','$'

STRAN3   db 'Країна  :   Taiwan','$'

STRAN0   db 'Країна  :   unknown','$'

DEVISE1   db 'Виробник:    Maxtor','$'

DEVISE2   db 'Виробник:    Samsung','$'

DEVICE3   db 'Виробник:    Hitachi','$'   

DEVICE0   db 'Виробник:    unknown','$'

Lar1   db '  =38.3 Gb','$'

Lar2   db '  =28.0 Gb','$'

Lar3   db '  =56.2 Gb','$'

Lar0   db '  =0.0  Gb','$'

;-----program-------------------

 .code

Begin:

mov  ax,@data

mov  ds,ax

mov   es,ax

call  MAIN

;-------------------------------

MAIN proc near

FFF: call  clr

mov  colorF,1eh

call  FONN

mov   colorSC,0ah

call  SCRENN

mov  cursor,0206h

call  TEXT

call  TEXT1

call  STAND

START: mov  colorF,1eh

call  FONN

mov   colorSC,0ah

call  SCRENN

mov  cursor,0206h

call  TEXT

mov   colorSC1,3fh

call  screnn1

call  TEXT2

call  OUTCUR

;-------------------------------

HOTKEY: call  CLR

mov  ah,08h

int  21h

 cmp  al,1Bh  ;ESC

je  k_ESC

 cmp  al,3Bh  ;F1

je  k_F1

 cmp   al,3Dh  ;F3

je  k_F3

  cmp  al,3Eh  ;F4

je  k_F4

jmp  short HOTKEY

;------------klavishi-----------

k_ESC:  jmp EXIT

k_F1:   call HELP_TEXT

 call OUTCUR

 call STAND

 jmp START

jmp short HOTKEY

  k_F3:  call HDDID

 call OUTCUR

  call STAND

 jmp START

jmp short HOTKEY

  k_F4: call HDDINF

 call treace

 call OUTCUR

 call STAND

 jmp start

jmp short HOTKEY

;--------------------------------

EXIT: mov  colorF,07h

call  FONN

mov  cursor,1401h

lea  ax,ZAKON

mov  vvt,ax

call  m1

jmp  QUIT

MAIN endp

;--------------------------------

treace proc near

  mov colorSC1,3fh

  call screnn1

  mov cursor,0c17h

  lea ax,info

  mov vvt,ax

  call m1

  mov cursor,0f11h

  call cur

  mov ah,02h

  mov cx,30h

  lea di,buffer + 12h

  int 21h

txthd:  mov dl,[DI]

  int 21h

  inc di

  loop txthd

  call bred2   

  ret

treace endp

;---procedurs---

CLR proc near

sub  ax,ax

sub  bx,bx

sub  cx,cx

sub  dx,dx

ret

clr endp

;-------------------

FONN proc near

mov  ax,0600h    

mov  bh,COLORF            

mov  cx,0000h

mov  dx,184fh

int  10h

ret

FONN endp

;-------------------

SCRENN proc near

mov  ax,0600h

mov  bh,colorSC

mov  cx,0205h

mov  dx,164ah

int  10h

ret

SCRENN endp

;--------------------

SCRENN1 proc near

mov  ax,0600h

mov  bh,colorSC1

mov  cx,0807h

mov  dx,1548h

int  10h

ret

screnn1 endp

;---------------------

TEXT proc near

jmp  M2

  M1:  call  CLR

call  CUR

call  TXT

ret

  M2:  lea  ax,avt

mov  vvt,ax

call  M1

mov  cursor,023fh

lea  ax,avtor

mov  vvt,ax

call  M1

mov  cursor,0341h

lea  ax,GRUPA

mov  vvt,ax

call  M1

mov  cursor,0016h

lea  ax,minister

mov  vvt,ax

call  m1

mov  cursor,0117h

lea  ax,KRMT

mov  vvt,ax

Call  m1

mov  cursor,1736h

lea  ax,corp

mov  vvt,ax

call  m1

mov  cursor,0316h

lea  ax,KP

mov  vvt,ax

       call     m1

       mov      cursor,0614h

       lea      ax,TEMA

       mov      vvt,ax

       call     m1

       ret

;-----------------------

 CUR:  mov      ah,02h

       mov      bh,00h

       mov      dx,cursor

       int      10h

       ret

;------------------------

 TXT:  mov      ah,09h

       mov      dx,vvt

       int      21h

       ret

;-----------------------

TEXT endp

;------------------------

TEXT1 proc near

mov  cursor,0e10h

lea  ax,PRESS

mov  vvt,ax

call  M1

ret

TEXT1 endp

;------------------------

TEXT2 proc near

mov  cursor,0a0ah

lea  ax,FUN1

mov  vvt,ax

call  M1

mov  cursor,0d0ah

lea  ax,FUN2

mov  vvt,ax

call  M1

mov  cursor,100ah

lea  ax,FUN3

mov  vvt,ax

call  M1

mov  cursor,130ah

lea   ax,FUN4

mov   vvt,ax

call  M1

ret

TEXT2 endp

;---------------------

STAND proc near

       call     CLR

       mov      ah,10h

       int      16h

       ret

STAND endp

;---------------------

HELP_TEXT proc near

mov   colorSC1,34h

call  SCRENN1

mov  cursor,0908h

lea  ax,help

mov  vvt,ax

call  m1

;----------------------

call   TEXT1

call   STAND

mov  colorf,13h

call   FONN

;----------------------

mov   cursor,0209h

lea  ax,help

mov   vvt,ax

call  m1

mov  cursor,0505h

lea  ax,hp1

mov   vvt,ax

call  m1

mov  cursor,0807h

lea  ax,hp2

mov  vvt,ax

call  m1

mov  cursor,0907h

lea  ax,hp3

mov  vvt,ax

call  m1

mov  cursor,0b05h

lea  ax,hp4

mov  vvt,ax

call  m1

mov  cursor,1505h

lea  ax,zakon

mov  vvt,ax

call  m1

call  STAND

jmp  START

ret

HELP_TEXT endp

;--------------Read sector------------------------

ByteToStr1       PROC

               xor     ah,ah

WordToStr1:      xor     dx,dx

DWordToStr1:     push    si

               push    di

               mov     si,10

               xor     cx,cx

Next_Digit1:     push    ax

               mov     ax,dx

               xor     dx,dx

               div     si

               mov     bx,ax

               pop     ax

               div     si

               push    dx

               mov     dx,bx

               inc     cx

               or      bx,ax

               jnz     Next_Digit1

               cld

Store_Digit_Loop1:

               pop     ax

               add     al,'0'

               stosb

               loop    Store_Digit_Loop1

               mov     BYTE PTR es:[di],'$'

               pop     di

               pop     si

               ret

ByteToStr1       ENDP

;----------------------------------------------

HDDID proc near

mov  colorSC1,3fh

call  screnn1

mov dx,base+7

m@m1: in   al,dx

test al,80h

jnz  m@m1

mov dx,base+6

mov al,0E0h

out dx,al

mov  dx,base+7

m@m2:

in   al,dx

test al,80h

jnz  m@m2

test al,40h

jz   m@m2

mov dx,base+7

mov al,0ECh

out dx,al

mov  dx,base+206h

m@m3:

in   al,dx

test al,80h

jnz  m@m3

mov  dx,base+7

m@m4:

in   al,dx

test al,08h

jz   m@m4

cld

mov di,offset buffer

mov dx,base

mov cx,256

rep insw

mov  di,offset string1

mov  ax,word ptr [buffer+60*2]

mov  dx,word ptr [buffer+61*2]

call DWordToStr1

;------------------------------

mov cursor,0d1fh

mov ax,offset msg0

mov vvt,ax

call m1

mov cursor,101eh

mov ax,offset string1

mov vvt,ax

call m1

mov cursor,1025h

mov ax,offset msg1

mov vvt,ax

call m1

call bred1

ret

HDDID endp

;-------------------------------------

bred1 proc near

mov cursor,121dh

lea ax,lar1

mov vvt,ax

call m1

ret

bred1 endp

;-------------------------------------

HDDINF proc near

mov  colorSC1,3fh

call  screnn1

@@main:   mov      dx, Base_Port + 6

               mov      al, 10100000b or (HD shl 4)

               out      dx, al

               jmp      $ + 2

               inc      dx

               mov      al, 0ech

               out      dx, al

               jmp      $ + 2

@@Wait:         in       al, dx

               jmp      $ + 2

               test     al, 80h

               jnz      @@Wait

               mov      dx, Base_Port

               lea      di, Buffer

               mov      cx, 100h

@@1:            in       ax, dx

               xchg     ah, al

               stosw

               loop     @@1

               xor      cx, cx

               lea      dx, Fname

               mov      ah, 3ch

               int      21h

               xchg     bx, ax

               lea      dx, Buffer

               mov      cx, 100h

               mov      ah, 40h

               int      21h

               mov      ah, 3eh

               int      21h

               ret

HDDINF endp

;------------------------ 

bred2 proc near

mov cursor,1310h

lea ax,stran1

mov vvt,ax

call m1

mov cursor,1326h

lea ax,devise1

mov vvt,ax

call m1

ret

bred2 endp

;-----------------------

OUTCUR proc near

mov cursor,184fh

call CUR

ret

OUTCUR endp

;----------------------- 

;---end program---

QUIT:  mov ax,4c00h

Int 21h

end begin


2.4. Створення .exe-файлу

Для створення .exe – файлу використовувалась програма-асемблер TASM (Turbo Assembler) та програма-компонувальник TLINK (Turbo Linker).

Розмір файлу program.asm з написаним кодом програми – 2037 байт.

Асемблювання: tasm program.asm

Assembling file: program.ASM

Error messages: None

Warning messages: None

Passes: 1

Remaining memory: 376k

Розмір створеного файлу program.obj –353 байт

Компонування: tlink program.obj

Розмір створеного файлу program.exe –598 байт


Висновок

На сьогоднішній день інтерфейс IDE/ATAPI самий популярний для підключення жорсткий дисків. Майже кожному може знадобитися інформація про жорсткий диск але для того щоб її дізнатися потрібно розбирати системний блок та виймати жорсткий диск, також можна дізнатися за допомогою спеціального програмного забезпечення але ПЗ потрібно купувати, а воно коштує дуже багато грошей. Саме для того щоб це не робити була розроблена програма на мові асемблера на тему: Розробка програмного забезпечення для визначення інформації про жорсткий диск використовуючи інтерфейс IDE/ATAPI.

Дана програма дозволяє переглядати параметри про жорсткий диск ІDE/ATAPІ, зокрема серійних номерів. Працює в DOS/Wіn9x, NT, XP із правами адміністратора.


Лист

Зм

Лист

№ документ.

Підпис

Дата


Початок

читування системних

даних

Ініціалізація даних

Сканування пристрою IDE/ATAPI

Отримання інформації про пристрій

IDE/ATAPI

Вивід інформації про пристрій IDE/ATAPI

Кінець


 

А также другие работы, которые могут Вас заинтересовать

52878. Будемо святкувати. Let’s celebrate 228.5 KB
  Today's topic is «Let’s celebrate». Сьогодні нас запросили на вечірку до ведмедика. You are invited to the teddy bear birthday party. Але шлях до нього далекий і важкий. But this way is long and difficult. Він зачарований. It is magic. Тут ви можете побачити багато метеликів. Here you can see a lot of butterflies. Вони теж непрості, кожен має якесь завдання, яке нам треба виконати, щоб потрапити на свято. They are not simple, everyone has the task for you, which you should do to come to the party. Та вам треба бути дуже уважними. But you should be very attentive.
52880. Школа. School 1.18 MB
  Розробка уроку з англійської мови за темою School 2 клас Тема. Розвивальні цілі: розвивати лексичні навички та навички мовлення; формувати в учнів вміння переключатися на різні види діяльності; розвивати творче та логічне мислення память увагу; розвивати вміння римувати слова Виховні цілі: прищеплювати інтерес до вивчення англійської мови любов до школи Методи: ілюстративний аудіювання гра Засоби навчання: презентаціяілюстрації за темою завдання для виконання вправ під час аудіювання та розрізані...
52881. FOOD. SHOPPING. (3 клас) 51.5 KB
  Equipment: pictures of different kinds of food; texts for jigsaw reading; parts of the “puzzle pictures” in envelopes; a cassette, some sheets of paper with incomplete dialogues for pupils to fill in the gaps; a cap, some money and a basket for role-playing.
52882. Контроль читання з англійської мови у 3 класі за підручником “ New Let’s Learn English” 62 KB
  Hello. My name is Jim. I live in Eastbourne. I am nine. I like reading and playing football. I have got very nice toys. My favourite toys are a spaceship and a kite. I keep them in the cupboard. I also like watching videos. After school I like playing computer games.
52883. Святковий поїзд. Проектна робота 745 KB
  Закріпити вживання ЛО з теми «Місяці. Пори року». Розвивати лексичні, граматичні, мовленнєві навички, пам ять, мислення, фонетичний слух. Перевірити рівень мовної та мовленнєвої компетенції учнів. Тренувати в аудіюванні. Формувати здатність працювати в парі, групі.
52885. Погода взимку. Розваги 502.5 KB
  Winter is the fourth season. December, January and February are winter months. In winter it is cold. Winter is the coldest season of the year. All rivers and ponds are frozen. The ground is covered with snow. Trees and bushes are covered with snowflakes.
52886. Свята та традиції. New Year 1.98 MB
  Objectives: to develop the habits of reading, writing and speaking on the given topic; to practise the structure “there is/are”, asking and answering questions in Present Simple; to enlarge the students’ knowledge about holidays and traditions of the English-speaking countries.