Опис програми аналогу; докладний функціональний опис програмних модулів додатка; опис структур використовуваних системних областей службові структури

Вид материалаДоклад

Содержание


Теми курсових проектів
Розробка навчальної ОС
Технічне завдання
Подобный материал:
МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ

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


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

ДО КУРСОВОГО ПРОЕТУ

І КОНТРОЛЬНІ ЗАВДАННЯ

ЗА КУРСОМ

"Системне програмне забезпечення"

(для студентів спеціальності КС)


За т в е р ж е н о

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

електронних обчислювальних

машин.

Протокол N від


Донецьк ДДТУ 200_


ВИМОГИ ДО КУРСОВОЇ РОБОТИ (12 тижнів)

Результати виконання курсової роботи оформляються у виді звіту. Звіт ( файл family.doc) подається на FDD разом з ісходними файлами та повинний містити від 30 сторінок тексту і включати наступні обов'язкові елементи:
  • титульний лист;
  • технічне завдання, підписане викладачем;
  • реферат;
  • зміст;
  • уведення;
  • основну частину, що містить:
  • опис програми – аналогу;
  • докладний функціональний опис програмних модулів додатка;
  • опис структур використовуваних системних областей (службові структури,
  • керування пам'яттю, структура додатка, обмін даними чи BOOT, ROOT, FAT і т.п.);
  • обґрунтування структури розроблювального додатка (потоки, DLL);
  • розробку схеми алгоритму для реалізації заданого додатка;
  • організація виконання програми в обраній операційній системі;
  • аналіз виконання функцій додатка на ПЭВМ (тестові приклади по всіх галузях алгоритму);
  • опис використовуваних бібліотечних функцій мови Си, WinApi;
  • розробку програмних модулів, що реалізують задані функції;
  • порівняльний аналіз результатів виконання розробленого додатка

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

  • висновок;
  • список використаних літературних джерел;
  • додаток, відповідно до діючого стандарту ЕСПД. (керівництво оператора, програміста + комментований лыстинг програми).


При розробці програм під Win-платформою використовувати не класи, а API – функції і середовище Borland C 5.02.або VS. Функціональні модулі реалізувати статичними DLL, інакше – подавати разом з проектом. Для DOS, вхідний і вихідний інтерфейс розробляється з підтримкою графічного режиму. У «Довідці» розробленого програмного додатку відображати тему, © і версію присутньої Win. Результат роботи програми повинний міститися у файл. Захищений режим DOS для перевірки тестуеться з системної дискети або CD.


До виконання роботи приступати, якщо підписано і узгоджено з викладачем ТЗ.

Теми курсових проектів


Курсовий проект повинен бути программним модулем, який замінює вибраний нижче програму-додаток або вказану опцію:

Кнопка “Пуск” “Робочого столу”
  1. Пуск\...Службові\Зведення про систему\Ресурси апаратури\Переривання IRG
  2. Пуск\...Службові\Зведення про систему
  3. Пуск\…Службові\Зведення про систему\Компонента\Шина USB
  4. Пуск\…Службові\Зведення про систему\Компонента\Пристрої вводу
  5. Пуск\…Службові\Зведення про систему\Компонента\Дісплей
  6. Пуск\…Службові\Зведення про систему\Програмне середовище\Драйвери
  7. Пуск\…Службові\Зведення про систему\Програмне середовище\Автоматично завантажувані
  8. Пуск\…Службові\Зведення про систему\Виконувані задачі

Regedit (створення, редакція)
  1. HKEY_DYN_DATA\Config Manager\Enum
  2. HKEY_USERS\.DEFAULT\Control Panel \PowerCfg\PowerPolicies
  3. HKEY_LOCAL_MACHINE\Enum\Monitor
  4. HKEY_LOCAL_MACHINE\Enum\ESDI + Flop
  5. HKEY_LOCAL_MACHINE\System\CurrentControlSet
  6. HKEY_LOCAL_MACHINE\Software
  7. HKEY_LOCAL_MACHINE\Hardware\Description\System
  8. HKEY_CLASSES_ROOT

…CPURDMSR ASM…

…CPURDTSC ASM …

…CPUTEST ASM …

…DISKTEST ASM …

…SYSTYPE ASM …

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Розробка навчальної ОС

  1. Розробка навчальної ОС1
  2. Розробка навчальної ОС2
  3. Розробка навчальної ОС3

DiskEditor

  1. Object\Drive...+ Directory...+ File...+ Cluster
  2. Object\Partition Table + Boot Record+ FAT + 2nd FAT
  3. Object\Sector...+ Physical Sector...+ Memory Dump...
  4. Edit\Mark + Copy + PasterOver
  5. Link\File + Directory + ClusterChain(FAT)
  6. View\as Hex + as FAT(12,16,32) + as PartitionTable + as BootRecord(16,32)
  7. Info\Object Info...+ Drive Info...+ Map of Object
  8. Tools\FindObjct\ Partition/Boot + FAT +: Subdirectory
  9. Связь\Цепочка кластеров…
  10. ...Просмотр\ как 16, как текст, как загрузочн. Запись
  11. ...Просмотр\ как FAT, MBR, ROOT
  12. Информация\ объект…
  13. ...Средства\ Поиск обьекта…
  14. ... Object\Drive...+ Directory...
  15. ...Object\Drive\ Cluster...
  16. ... Object\Drive\сектор...
  17. ... Object\Drive\кластер...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1. Diskreet
  2. Fdisk-4
  3. Chkdsk
  4. mem.exe
  5. Scandisk
  6. Attrib.exe

NU - нортоновские утиліти (DOS):
  1. DiskTool(DOS) Make a Disk Bootable + Mark a Cluster
  2. DupDisk(DOS)
  3. Повне знищення інформації в файлах, каталогах на всьому диску (WipeInfo).
  4. Sysinfo.exe\ Benchmarks

РОЗРОБКА І ДОСЛІДЖЕННЯ АЛГОРИТМІВ (16,32, довжина)
  1. Алгоритм пошуку центрів графу великого розміру.
  2. Алгоритм пошуку медіан графу великого розміру.
  3. Дослідження роботи інтерфейсу USB.
  4. Дослідження роботи інтерфейсу PCI.
  5. Дослідження роботи засобів адресації у плоскій моделі пам’яті.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Для КСА-Г:
      1. Розробка конспекту лекцій з СПО-1 у форматах doc, chm українською мовою.
      2. To develop the abstract of lectures of system programming 1-st part in formats doc, chm by English.
      3. To develop the abstract of lectures of system programming (2 part) in formats doc, chm by English.



)% - В.В. Фаронов. TurboPascal 7.0. Практика програмування. Навчальний посібник. 1997р.


Література.
  1. Б.Страуструп. Язык программирования С++, 2-е изд./Пер. с англ. Часть первая. – Киев.: “ДиаСофт”, 1993. – 264 с. Часть вторая. – Киев.: “ДиаСофт”, 1993. – 296 с.
  2. М.Эллис, Б.Страуструп. Справочное руководство по языку программирования С++ с комментариями./Пер. с англ. – М.: Мир, 1992.
  3. Бабз Б. Просто и ясно о Borland C++./Пер. с англ. – М.: Бином, 1995. - 400 с.
  4. Дьюхарст С., Старк К. Программирование на С++/Пер. с англ. – Киев, ДиаСофт, 1993. – 272 с.
  5. Романов В.Ю. Программирование на языке С++: Практический подход. – М.: Компьютер, 1993. – 160 с.
  6. С++. Язык программирования. – М.: ИВК СОФТ, 1991. – 315 с.
  7. Г.Шилдт. Самоучитель С++, 3-е изд./Пер. с англ. – СПб.: БХВ-Петербург, 2001. – 688 с.
  8. Б.Страуструп. Язык программирования С++, 3-е изд./Пер. с англ. – СПб.: М.: «Невский Диалект» – «Издательство БИНОМ», 1999. – 991 с., ил.
  9. Том Сван. Программирование для Windows в Borland C++./Пер. с англ. – М.: БИНОМ, 1995. – 480 с. (Только особенности программирования в среде Windows, использование библиотеки OWL. Предполагает знание уже C++).
  10. Г.Шилдт. Теория и практика С++ (серия Мастер, руководство для профессионалов). /Пер. с англ. – СПб.:BHV – Санкт-Петербург, 1996. – 416 с.
  11. Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд./Пер. с англ. – М.: «Издательство Бином», СПб.: «Невский диалект», 1999 г. – 560 с., ил.


Дивитись на сервері СS кафедри ЕОМ та на НомеРаge Іванова


(Наприклад) ЗАТВЕРДЖУЮ

Зав. кафедрою ЕОМ


______ Святний В.А.


ТЕХНІЧНЕ ЗАВДАННЯ

студенту групи

______________________________________________________________


Термін здачі проекту: _____________


Завдання на курсове проектування


Розробити програму, призначену для створення/видалення розділів і логічних дисків на НЖМД, виводу на дісплей довідкової інформації про розділи і логічні диски (прототип - утиліта FDISK MS-DOS). Програма повинна забезпечувати наступні можливості:

- створення роздягнула DOS чи логічного диска DOS;

- зміна активного розділу;

- видалення розділу ;

- вивід інформації про наявні розділи;

- перенастроювання існуючої структури розділів і логічних дисків при зміні геометрії НЖМД.


Графік виконання курсового проекту:

1 тиждень - з'ясування задачі, аналіз технічного завдання;

2 тиждень - вивчення команди-прототипу, дослідження результатів її виконання на ПЭВМ;

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

4 тиждень - вивчення бібліотечних функцій мови ТС(конкретно), необхідних для виконання завдання;

5, 6 тижня - розробка схеми алгоритму;

7, 8 тижня - написання програми у середовищі ТС;

9,10 тижня - налагодження програми на ПЭВМ;

11 тиждень - оформлення звіту;

12 тиждень - захист курсової роботи.


Дата видачі завдання __________


Завдання прийняв __________


Керівник Іванов А.Ю.


Вступ


Метою наданоі курсовоі роботи є опрацювання програми, призначеноі для утворення/знищення розділів та логічних дисків на НЖМД, а також виводу на дісплей довідковоі інформаціі про існуючі розділи та логичні диски (прототип - утіліта FDISK MS-DOS). Крім перелічених вище "стандартних" можливостей, що підтримуються програмою FDISK фірми Microsoft, розроблена програма мас додаткові можливості по обслуговуванню розділів твердого диску. Програма також повністю підтримус розділи FAT32 Windows 95 OSR2...........

Розділ 1. Опис програми-прототипу


Прототипом програми, розробленої в даному курсовому проекті, є утиліта FDISK фірми Microsoft. Слід зазначити, що тут і далі мова буде йти про програми FDISK з операційних систем MS-DOS 6.22 і Windows 9х. При описі випадків, коли утиліти FDISK з цих операційних систем працюють по-різному, ім'я операційної системи

буде вказуватися особливо.

Опишемо докладно можливості, робота з якими здійснюється при допомозі системи меню програми FDISK.

Основне меню програми FDISK містить наступні пункти:

- створення розділу DOS чи логічного диска DOS;

- установка прапору активності розділу;

- видалення чи розділу логічного диска DOS;

- висновок інформації про наявні розділи і логічні диски DOS;

- перехід до обслуговування наступного твердого диска.

При виборі пункту меню "Створення роздягнула DOS чи логічного диска

DOS" пропонується три можливості:

- створення первинного розділу DOS;

- створення розширеного розділу DOS;

- створення логічного диска DOS у розширеному розділі DOS.

Перші два режими дозволяють користувачу створити відповідно один первинний розділ DOS (розміром до 2 гигабайт) і один розширений роздягнув DOS будь-якого розміру. У розширеному розділі можна створити до 23 логічних дисків, обсяг кожного з який не може перевищувати 2 гигабайта. Це виконується за допомогою третьої опції ("Створення логічного диска DOS у розширеному розділі DOS"). Послідовність створення розділів DOS і логічних дисків DOS регулюється пограммой FDISK. Розділи DOS повинні створюватися в тій же послідовності, у яке приведені зазначені вище пункти меню. Спочатку повинний бути створено первинний розділ DOS. Потім може бути створений розширений роздягнув, а потім уже логічні диски в ньому. Обмеження на розмір роздягнула чи логічного диска (2 гигабайта) не відноситься до FDІSк'у з операційної системи Windows 9х. Ця операційна система може працювати з логічними дисками, розміром більш 2 гигабайт.

У MS-DOS використовуються 2 формати FAT: FAT12 і FAT16. Для FAT16 максимальне число кластерів на диску обмежено значенням 65536 (саме стільки кластерів можна адресувати 16-бітовими елементами FAT). Якщо помножити це число кластерів (65536) на максимальний розмір кластера в MS-DOS, який дорівнює 32 кілобайта (64 сектора), те вийде саме 2 гигабайта.

Windows 9х може використовувати для розділів, крім перерахованих раніше форматів FAT, ще один формат - FAT32. Оскільки число кластерів у розділі тепер може досягати 4 294 967 296, те розділи FAT32 можуть бути розміром на весь НЖМД.

Пункт основного меню "Установка прапора активності розділу" дозволяє...

Розділ 2. Аналіз виконання програми-прототипу на ПЭВМ


Перш ніж переходити до опису роботи програми-прототипу, необхідно перелічити системні області диска (НЖМД), що програма-прототип використовує в ході свого виконання. Ці області наступні:

- перший сектор НЖМД (циліндр 0, голівка 0, сектор 1), що містить головний завантажувальний запис (MBR, Master Boot Record) і таблицю розділів (Partition Table);

- таблиця логічних дисків (чи Extended Partition Table);

- завантажувальні сектори (Boot Record) первинного розділу DOS і логічних дисків DOS.

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

При створенні первинного розділу DOS обновляється таблиця розділів, що міститься в першому секторі НЖМД. У вільний елемент таблиці розділів заноситься вся необхідна інформація про місце розташування і розмірі первинного розділу. При створенні, прапор активності первинного розділу скидається. Надалі первинний розділ можна зробити активним за допомогою пункту основного меню "Установка прапора активності".

Код системи первинного розділу залежить від формату застосовуваної в ньому

таблиці розміщення файлів (FAT).


Дамп головного завантажувального запису і таблиці розділів


000 FA 33 C0 8E D0 BC 00 7C 8B F4 50 07 50 1F FB FC

010 BF 00 06 B9 00 01 F2 A5 EA 1D 06 00 00 BE BE 07

020 B3 04 80 3C 80 74 0E 80 3C 00 75 1C 83 C6 10 FE

030 CB 75 EF CD 18 8B 14 8B 4C 02 8B EE 83 C6 10 FE

040 CB 74 1A 80 3C 00 74 F4 BE 8B 06 AC 3C 00 74 0B

050 56 BB 07 00 B4 0E CD 10 5E EB F0 EB FE BF 05 00

060 BB 00 7C B8 01 02 57 CD 13 5F 73 0C 33 C0 CD 13

070 4F 75 ED BE A3 06 EB D3 BE C2 06 BF FE 7D 81 3D

080 55 AA 75 C7 8B F5 EA 00 7C 00 00 49 6E 76 61 6C

090 69 64 20 70 61 72 74 69 74 69 6F 6E 20 74 61 62

0A0 6C 65 00 45 72 72 6F 72 20 6C 6F 61 64 69 6E 67

0B0 20 6F 70 65 72 61 74 69 6E 67 20 73 79 73 74 65

0C0 6D 00 4D 69 73 73 69 6E 67 20 6F 70 65 72 61 74

0D0 69 6E 67 20 73 79 73 74 65 6D 00 00 00 00 00 00

0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00



Мал. 2.1 Дамп першої таблиці логічного диска


Інтерпретація таблиці розділів і трьох таблиць логічних дисків у програмі Disk Editor

----------------------------------------------------------------------------------------------------

¦ ¦ ¦ Starting Location ¦ Ending Location ¦ Relative ¦Number of ¦

¦System ¦Boot¦Side Cylinder Sector ¦Side Cylinder Sector¦ Sectors ¦ Sectors ¦

¦BIGDOS ¦ Yes¦ 1 0 1 ¦ 31 61 63 ¦ 63 ¦ 124929 ¦

¦EXTEND¦ No ¦ 0 62 1 ¦ 31 822 63 ¦ 124992¦ 1534176 ¦

¦unused ¦ No ¦ 0 0 0 ¦ 0 0 0 ¦ 0 ¦ 0 ¦

¦unused ¦ No ¦ 0 0 0 ¦ 0 0 0 ¦ 0 ¦ 0 ¦

-----------------------------------------------------------------------------------------------------

Розділ 3. Опис структур використовуваних системних областей


Розроблена програма звертається до наступного системним областям НЖМД:

- до таблиці розділів і до таблиць логічних дисків;

- до буту-сектора розділу і логічних дисків.

Опишемо докладно перераховані вище системні області диска.


3.1. Опис таблиці розділів і таблиць логічних дисків


Перший сектор твердого диска (циліндр 0, голівка 0, сектор 1) містить так званий головний завантажувальний запис (Master Boot Record). Цей запис займає не весь сектор, а тільки його початкову частину.

Сама по собі головний завантажувальний запис є програмою. Ця програма під час початкового завантаження операційної системи зчитується з НЖМД в оперативну пам'ять, після чого їй передається керування.

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

Елемент таблиці розділів являє собою структуру розміром........


У розділі FAT32 міститься цілих 3 буту-сектора, розташованих у початку розділу послідовно один за іншим. Поле (2 байти), що містить число голівок НЖМД, розташовано в першому буті-секторі розділу FAT32 по зсуву...............


Розділ 4. Опис використовуваних бібліотечних функцій

мови Borland C++ 3.1


4.1. Опис функції int86


Функція int86 генерує програмне переривання процесора 8086.

Її синтаксис наступний:


#include

int int86(int intr_num, union REGS *inregs,union REGS *outregs);


Функція генерує програмне переривання мікропроцесора 8086, причому номер переривання визначається аргументом intr_num. Перед виконанням переривання.......


Розділ 5. Розробка схеми алгоритму для реалізації програми.


Для перенастроювання структури розділів на інший режим НЖМД

необхідне відновлення таблиці розділів, таблиць логічних дисків і бутів-секторів первинного розділу і логічних дисків.

У таблиці розділів необхідне перетворення полів координат у форматі int 13h.......


Алгоритм роботи програми при перестроюванні розділів НЖМД для роботи НЖМД в іншому режимі, можна представити таким засобом.

1) Визначити поточний режим що обслуговується НЖМД.

2) Визначити, чи підтримує поточний що обслуговується НЖМД режими LBA і Large. Якщо НЖМД не підтримує ці режими, то видати повідомлення про неможливість перекладу структури розділів в інший режим. Після натискання користувачем клавіші, завершити виконання даного режиму програми......


Розділ 6. Розробка програми


На основі описаних у попередніх главах алгоритмів виконана розробка програми обслуговування розділів НЖМД. Вихідний текст програми приведений у додатку програміста.

Вихідний текст програми складається з наступних трьох модулів, двох

интерфейсных (заголовних) файлів і одного файлу даних.......


Глава 7. Порівняльний аналіз результатів виконання

розробленої програми з результатами виконання

програми-прототипу.


У курсовій роботі розроблена програма, призначена для створення/видалення розділів і логічних дисків на НЖМД, а також висновку на дисплей довідкової інформації про існуючі розділи і логічних дисках (прототип - утиліта FDISK MS-DOS). Крім перерахованих вище "стандартних" можливостей, підтримуваних програмою FDISK фірми Microsoft, розроблена програма має додаткові можливості, а саме:

- перенастроювання існуючої структури розділів і логічних дисків при зміні параметрів НЖМД у результаті зміни режиму НЖМД (NORMAL, LARGE, LBA);

- зміна розміру розширеного розділу DOS (тобто його чи збільшення зменшення) при наявності в ньому логічних дисків.

У режимах, що є загальними для Microsoft FDISK і для розробленої програми, їхня робота практично цілком однинакова, за винятком.................


Висновок


У даній курсовій роботі була розроблена і налагоджена програма обслуговування розділів НЖМД. Незважаючи на функціональну повноту, дана програма може бути удосконалена далі. Зокрема, у расширеннном режимі " Збільшення розміру розширеного розділу" і в режимах створення розділу і логічного диска, може бути передбачений випадок......................