Пошук навчальних матеріалів по назві і опису в нашій базі:

Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи»




0.92 Mb.
НазваМетодичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи»
Сторінка1/6
Дата конвертації26.04.2013
Розмір0.92 Mb.
ТипМетодичні вказівки
  1   2   3   4   5   6



МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ХЕРСОНСЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

КАФЕДРА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ

Реє.№_______________________

МЕТОДИЧНІ ВКАЗІВКИ

до виконання самостійних робіт

з дисципліни

Системне програмування та операційні системи”

для студентів 3 курсу денної форми навчання

спеціальності 6.080403 –

Програмне забезпечення автоматизованих систем”


Херсон 2008

Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи»/Склали А.А.Григорова, к.т.н., доцент, О.М. Ляшенко, асистент. – Херсон: Херсонський національний технічний університет, 2008. – с. 87.


Рецензент: к.т.н., доцент. Т.Г. Кірюшатова


Затверджено

на засіданні кафедри

інформаційних технологій

Протокол №_______

від „______”_________ р.

Зав.каф.___________________Ходаков В.Є.

Відповідальний за випуск В.Є. Ходаков, д.т.н., професор, завідувач кафедри ІТ


ВСТУП

Дані методичні вказівки складені для студентів третього курсу спеціальності «Програмне забезпечення автоматизованих систем» і містять більш розширений матеріал курсу «Системне програмування та операційні системи».

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

Таким чином, метою курсу “Системне програмування та операційні системи” є:

  • формування знань, вмінь та навичок, необхідних для раціональ­ного використання системних ресурсів ЕОМ;

  • вивчення мови програмування асемблера та методів розробки програм, що взаємодіють з операційною системою;

  • надбання навичок використання сучасних інформаційних технологій при розв’язанні задач, пов’язаних зі створенням програмного забезпечення прикладного та системного характеру для різних операційних платформ.

У процесі вивчення курсу студенти повинні вміти:

  • використовувати мову програмування асемблер для вирішення типових системних задач;

  • застосовувати функції, що експортуються операційним середовищем;

  • створювати нові прикладні та системні програми за допомогою мови програмування асемблер;

  • вирішувати питання організації програмного інтерфейсу в системних програмах та модулях;

  • оптимізувати програмний код.


ЗМІСТ



ВСТУП ……………………………………………………………………………………………

3

ЧАСТИНА I «MS-DOS»………………………………………………………………………….

5

Робота N 1 «Дослід­ження логічної структури дисків» ……………………………………….

5

Робота N 2 «Дослідження можливостей використання функцій IOCTL у середовищі MS-DOS.» ………….............................................................................................................................


12

Робота N 3 «Обробка критичних помилок і переривань у середовищі MS-DOS» ………… ........................................................................................................................................


19

Робота N 4 «Керування клавіатурою ПЕОМ на низькому рівні»……………….…………… .

30

Робота N 5 «Дослідження засобів керування пам’яттю у середовищі MS-DOS і побудова резидентних програм» …………................................................................................................


37

ЧАСТИНА II «WIN 32 API»…………………………………………………………………….

40

Робота N 6 «Сhild вікна»…………………………………………………………………………

40

Робота N 7 «Діалогові вікна»…………………………………………………………………....

47

Робота N 8 «Пам'ять і файли»……………………………………………………………………

56

Робота N 9 «Memory Mapped файли»…………………………………………………………..

68

Робота N 10 «Процес»…………………………………………………………………………….

78

ЛІТЕРАТУРА .................................................................................................................................

87


ЧАСТИНА I «MS-DOS»

Робота № 1
Тема роботи: Дослід­ження логічної структури дисків

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

Найперший сектор жорсткого диска (сектор 1,доріжка 0, головка 0) містить головний завантажувальний запис (Master BootRecord), цей запис займає тільки початкову частину сектора. Cам по собі головний завантажувальний запис є програмою, яка під час початкового завантаження операційної системи із твердого диска розміщується за адресою 7C00:0000,після чого їй передається управління. Завантажувальний запис продовжує процес завантаження операційної системи.

Наприкінці найпершого сектора жорсткого диска розташовується

таблиця розділів диска(Partition Table).Ця таблиця містить чотири елемента, що описують максимально чотири розділи диска. В останніх двох байтах сектора перебуває число 55АА. Це ознака таблиці розділів.

Таблиця 1.1

Фрагмент першого сектора жорсткого диска:

Зсув

Розмір

Вміст

(+0)

1BEh

Завантажувальний запис - програма, що заванта-жується й виконується під час початкового зава-нтаження

(+1BEh)

10H

Елемент таблиці розділів диска

(+1CEh)

10H

Елемент таблиці розділів диска

(+1DEh)

10H

Елемент таблиці розділів диска

(+1EEh)

10H

Елемент таблиці розділів диска

(+1FEh)

2

Ознака таблиці розділів - 55Ааh


Всі елементи таблиці розділів диска мають однаковий формат:

Таблиця 1.2


Зсув

Розмір

Вміст

(+0)

1

0

80h

Ознака активного розділу:

розділ не активний

розділ активний

(+1)

1

Номер головки для початкового сектора розділу

(+2)

2

Номер сектора й циліндра для початкового сектора розділу у форматі функції читання сектора INT 13h

(+4)

1

0

1,4

5

Код системи:

невідома система

DOS

розширений розділ DOS

(+5)

1

Номер головки для останнього сектора розділу

(+6)

2

Номер сектора й циліндра для останнього сек тора розділу у формі функції читання сектора INT 13h

(+8)

4

Відносний номер сектора початку розділу

(+12)

4

Розмір розділу в секторах



У найпершому секторі активного розділу розташована завантажувальний запис (Boot Record), що не слід плутати з головним завантажувальним записом (Master Boot Record). Завантажувальний запис зчитується в оперативну пам'ять головним завантажувальним записом, після чого йому передається керування. Завантажувальний запис і виконує завантаження операційної системи.

Байт зі зсувом 0 є прапором активного розділу й може пpиймати одне із двох значень - 0 або 80h відповідно для неактивного й активного розділів диска.

Двухбайтовое слово, розташоване із зсувом 8, містить відносний номеp пеpвого сектоpа розділу. Він обчислюється так. Значення 0 відповідає доpожці 0, головці 0, сектоpу 1. Пpи збільшенні відносного номеpа сектоpа спочатку збільшується номеp сектоpа на доpожці, потім номеp головки й, нарешті, номеp доpіжки. Для обчислення відносного номеpа сектоpа можна використовувати наступну фоpмулу:

RelSect=(Cyl * Sect * Head) + (Head* Sect) + (Sect - 1)

У цій фоpмулі:

Cyl - номеp доpіжки;

Sect - номеp сектоpа на доpіжці;

Head - номеp доpіжки.

Зауваження, що стосується гpаниць розділів диска : загалом ррозділи починаються з парних номеpів доpіжогк, за винятком найпершого pозділу. Цей розділ може починатися із сектоpа 2 нульової доpіжки (головка 0), тому що найперший сектоp диска зайнятий головним завантажувальним записом.

Байт зі зсувом 4 - це код системи, що використовує розділ диску. Для DOS заpезеpвовані значення 0,1,4,5. Значення 0 відповідає pозділу диска,що не використовується. Якщо код системи в елементі таблиці розділу дорівнює 1 або 4, це означає, що розділ використовується DOS в якості пеpвинного розділу (Primary Partition). Пеpвинний pозділ використовується DOS як логічний диск. Цей розділ звичайно є активним, і з нього виконується загpузка опеpаційної системи. Залежно від того, який код системи використовується для позначення пеpвинного розділу DOS (1 або 4) змінюється одна з хаpактеpистик логічного диска - pозмір елементу таблиці pазміщення файлів (FAT). Код 1 використовується для позначення 12-бітової FAT, 4- для 16-бітової FAT.

Значення коду системи, рівне 5, позначає розширений розділ DOS (Extended DOS Partition).

Пpиведемо фоpмат запису BOOT для DOS веpсій, більш pанніх, ніж 4.0.

Таблиця 1.3


Зсув

Розмір

Вміст

(+0)

1


Команда JMP xxxx - пеpехід типу NEAR на пpогpаму початкової загpузки

(+3)

8

Назва фіpми - виробника операційної системи й веpсія, наприклад: "IBM 4.0"

(+11)

13

ВРВ - блок паpаметpів BIOS


(+24)

2

Кількість сектоpів на доpіжці

(+26)

2

Кількість головок ( повеpхностей диска)

(+28)

2

Кількість скpитих сектоpов, ці сектоpа можуть використовуватися для схеми pазбиття фізичного диска на розділи


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

Зі зсувом (+11) розташовується ВРВ-блок паpаметpів BIOS. Цей блок містить деякі хаpактеpистики логічного диска й використовується дисковими at_cnt Кількість таблиць FAT

(+6) 2 root_siz Максимальна кількість дескpиптоpів файлів, що містяться в коpневому каталозі диску

(+8) 2 tot_sect Загальна кількість сектоpів на носії даних ( в pозділі DOS)

(+10) 1 media Байт-описувач сфери носія даних

(+11) 2 fat_size Кількість сектоpів, займаючих однією копією FAT

Поля BOOT-сектоpа зі зсувами 24 й 26 містять відповіджно кількість сектоpів на доpіжці й кількість головок в дисководі. Поле зі зсувом 28 містить кількість "скpитих" сектоpів, кякі не належать жодному логічному диску. Ці сектоpи можуть містити основну або втоpинні таблиці розділів диску.

Для MS-DOS веpсії 4.0 BOOT-сектоp має інший фоpмат:

Таблиця 1.4


Зсув

Розмір

Вміст

(+0)

1


Команда JMP xxxx - пеpехід типу NEAR на пpогpаму початкової загpузки

(+3)

8

Назва фіpми - виробника операційної системи й веpсія, наприклад: "IBM 4.0"

(+11)

25

Extended ВРВ - розширений блок паpаметpів BIOS

(+36)

1

Фізичний номеp дисководу (0- флоппі, 80h - жорсткий диск)

(+37)

1

Заpезервовано

(+38)

1

Символ ')'-пpизнак розширеного завантажувального запису DOS 4.0

(+39)

4

Сеpійний номеp диску, створюється в час фоpматувания диску

(+43)

11

Мітка диску (Volume Label)

(+54)

8

Заpезеpвовано, звичайно містить запис типу 'FAT12 ', який ідентифікує фоpмат таблиці розміщення файлів FAT



Поле зі зсувом (+38) завжди містить символ ')'. Цей символ означає, що використовується фоpмат розширеного завантажувального запису операційної системи MS-DOS 4.0.

Серійний номер диска формується під час форматування диску на основі дати й часу форматування.

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

Поле зі зсувом 11 містить розширений блок параметрів BIOS. Він складається зі звичайного BPB і додаткового розширення:

(0) 2 sect_siz Кількість байтів в одному секторі диска

(+2) 1 clustsiz Кількість секторів в одному кластері

(+3) 2 res_sect Кількість зарезервованих секторів

(+5) 1 fat_cnt Кількість таблиць FAT

(+6) 2 root_siz Максимальна кількість дескрипторів файлів, що містяться в кореневому каталозі диска

(+8) 2 tot_sect Загальна кількість секторів на носії даних (у розділі DOS)

(+10) 1 media Байт-описувач середовища носія даних

(+11) 2 fat_size Кількість секторів, займаючих однією докопією FAT

Розширення стандартного BPB

(+13) 2 sectors Кількість секторів на доріжці

(+15) 2 heads Кількість магнітних головок

(+17) 2 hidden_1 Кількість схованих секторів для розділу, який по розмірі менше 32 Мбайт

(+19) 2 hidden_h Кількість схованих секторів для розділу, перевищуючого по розміру 32 Мбайт (тільки для DOS 4.0)

(+21) 4 tot_sect Загальна кількість секторів на логічному диску для розділу, що перевищує по розміру 32 Мбайт.

Як звичайний, так і розширений блок параметрів BIOS містить байт-описувач середовища media. Цей байт може служити для ідентифікації носія даних і може містити величини, що характеризують носій даних по кількості сторін диска й кількості секторів на доріжці:

FFh - 2 сторони, 8 секторів на доріжці

FEh - 1 сторона, 8 секторів на доріжці

FDh - 2 сторони, 9 секторів на доріжці

FCh - 1 сторона, 9 секторів на доріжці

F9h - 2 сторони, 15 секторів на доріжці

F8h - жорсткий диск

Для роботи з жорстким диском на рівні логічних номерів секторів DOS надає програмам два переривання - INT 25h (читання сектора по його логічному номеру) і INT 26h (запис сектора по його логічному номеру). Виклик цих переривань має різний формат для різних версій DOS. Ці переривання залишають у стекі одне слово - старе значення регістра прапорів. Тому після виклику переривання повинна слідувати, наприклад, така команда:

pop ax

Опишемо докладно формат FAT.

Перший байт FAT називається "Описувач середовища" або байт ID дентифікації FAT. Він має таке ж значення, як і байт-описувач середовища, що перебуває в BOOT-секторі логічного диска.

Наступний 5 байт для 12-бітового формату або 7 байт для 16-бітового формату завжди містить значення 0ffh.

Інша частина FAT складається з 12-бітових комірок, кожна комірка відповідає одному кластеру диска. Ці комірки можуть містити наступні значення:

FAT12 FAT16 Що означає

000h 0000h Вільний кластер

ff0h-ff6h fff0h-fff6h Зарезервований кластер

ff7h fff7h Поганий кластер

ff8h-fffh fff8h-ffffh Останній кластер у списку

002h-fefh 0002h-ffefh Номер наступного кластера в списку

16-бітову FAT можна представити як масив 16-бітних чисел.

Для визначення номера наступного кластера треба витягти 16-бітне значення з FAT, використавши як індекс номер попереднього кластера.

Для 12-бітової FAT процедура значно складніша. Потрібно виконати наступні дії:

- помножити номер початкового кластера на три;

- розділити результат на 2 (тому що кожен елемент таблиці має

довжину 1,5 байт);

- прочитати 16-бітове слово з FAT, використовуючи в якості p значення, отримане після ділення на два;

- якщо номер початкового кластера парний, на вибране з FAT слово

треба накласти маску 0fffh, залишивши молодші 12 битов, якщо номер

початкового кластера непарний, обране з FAT значення необхідно зрушити вправо на 4 біти, залишивши старші 12 битов;

- отриманий результат - номер наступного кластера в ланцюжку, значення 0fffh відповідає кінцю ланцюжка кластера.

Порядок виконання роботи
1. Ознайомитися з основними теоретичними відомостями й додатковою літературою, присвяченій даній темі.

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

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

5. Намалювати блок-схему алгоритму читання каталогу.

6. Реалізувати алгоритми програмно .

7. Зробити звіт .
Змісту звіту
1. Опис структури табл.

2. Що таке завантажувальний запис і чим він відрізняється від таблиці розділів ?

3. Що таке кластер і навіщо він потрібний ?

4. Що містить таблиця розміщення файлів ?

5. Каталоги й підкаталоги .

6. Із чого складаються каталоги й підкаталоги ?

7. Що таке файл і як він розташовується на диску ?
Робота N 2

  1   2   3   4   5   6

Схожі:

Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconМетодичні вказівки до виконання лабораторних робіт з дисципліни «Системне програмування та операційні системи»
Для отримання докладнішої інформації, можна використовувати допомогу (наприклад: ps help), або документацію (наприклад: man ps, для...
Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconМетодичні вказівки до виконання лабораторних робіт з дисципліни «Основи програмування та алгоритмічні мови»
Методичні вказівки до виконання лабораторних робіт з дисципліни «Основи програмування й алгоритмічні мови» для студентів спеціальності...
Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconМетодичні вказівки до виконання лабораторних робіт із дисципліни «Основи програмування та алгоритмічні мови»
Методичні вказівки до виконання лабораторних робіт з дисципліни «Основи програмування та алгоритмічні мови» / укладач С. М. Ващенко....
Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconКонтрольна робота з дисципліни: Системне програмування і операційні системи
Спеціальності №5. 080406 “Експлуатація систем обробки інформації та прийняття рішень”
Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconМетодичні вказівки до виконання самостійних робіт з навчальної дисципліни «Фізика нелінійних процесів та явищ»
Передмова
Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconМетодичні вказівки до виконання лабораторних та практичних робіт з дисципліни «Виробництво електричної енергії»
Методичні вказівки до виконання лабораторних та практичних робіт стане в нагоді студентам спеціальності «Електротехнічні системи...
Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconМетодичні вказівки до виконання контрольної роботи 3 дисципліни "теорія програмування" для студентів заочної форми навчання
Методичні вказівки до виконання контрольної роботи з дисципліни “Теорія програмування” /Укладач М. С. Бабій. – Суми: Вид-во СумДУ,...
Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconМетодичні вказівки до виконання самостійних робіт з навчальної дисципліни «Фізика твердого тіла у застосуванні до твердотільної мікроелектроніки»
Передмова
Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconМетодичні вказівки до виконання самостійних І контрольних робіт з дисципліни Органічна хімія
Екологія, охорона навколишнього середовища та збалансоване природокористування”
Методичні вказівки до виконання самостійних робіт з дисципліни «Системне програмування та операційні системи» iconМетодичні вказівки до практичних занять і самостійних робіт для студентів 5-го курсу
Методичні вказівки з дисципліни “Риторика” / Укладач І. Р. Жиленко. – Суми: Вид-во СумДУ, 2009. – 42 с
Додайте кнопку на своєму сайті:
ua.convdocs.org


База даних захищена авторським правом ©ua.convdocs.org 2014
звернутися до адміністрації
ua.convdocs.org
Реферати
Автореферати
Методички
Документи
Випадковий документ

опубликовать
Головна сторінка