Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольна робота№1.doc
Скачиваний:
1
Добавлен:
18.12.2018
Размер:
441.86 Кб
Скачать

Міністерство освіти і науки, молоді та спорту України

Національний університет „Львівська політехніка”

Кафедра САПР

Контрольна робота №1 з курсу "Системне програмування"

Варіант №10

Виконав: ст.гр. КНз-21

Лаб’як Н.Р.

Прийняв: доцент

Романюк А.Б.

Львів – 2011

Завдання:

1. Основні поняття

10.Що таке привіальний програмний модуль? Чому не можна створити модульну ОС, в якій би не було привілейних програмних модулів?

2. Управління задачами і пам’яттю в операційних системах

13. Що означає термін «плоска модель пам’яті»? У чому полягають достоїнства (і недоліки, якщо вони є) використання цієї моделі?

3. Особливості архітектури мікропроцесорів і80х86

1. як в реальному режимі роботи мікропроцесорів і80х86 здійснюється перетворення віртуальної адреси у фізичну?

4. Управління вводом/виводом і файлові системи

7. Чим забезпечується незалежність призначених для користувача програм від пристроїв вводу/виводу, підключених до комп'ютера?

5. Архітектура операційних систем і інтерфейси прикладного програмування

7.Що таке POSIX? Якими перевагами володіють програми, створені з використанням тільки стандартних функцій, передбачених POSIX?

6.Проектування паралельних взаємодіючих обчислювальних процесів

10.Опишіть поняття «поштові скриньки»?

7.Проблема тупиків і методи боротьби з ними

1.Що таке тупиковий стан? Перерахуєте умови, при яких виникає тупик.

8.Сучасні операційні системи

3.Що робить системний виклик fork()? Яким чином здійснюється в UNIX запуск нової задачі?

Рішення

1.10) Що таке привілейований програмний модуль? Чому не можна створити мультипрограмну ОС, в якій би не було привілейованих програмних модулів?

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

2.13) Що означає термін «плоска модель пам'яті»? У чому полягають достоїнства (і недоліки, якщо вони є) використання цієї моделі?

Плоска модель пам'яті - метод організації адресного простору оперативної пам'яті обчислювальних пристроїв. У плоскій моделі код і дані використовують один і той же адресний простір. Для 16-бітових процесорів плоска модель пам'яті дозволяє адресувати 64 КБ оперативної пам'яті; для 32-бітових процесорів 4 ГБ, для 64-бітових - 16 Ексабайт.

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

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

  •      При багатозадачності і розподілі ресурсів плоска модель як і раніше забезпечує максимальну гнучкість для реалізації цього типу управління пам'яттю.

Недоліки

  • При використанні мало розрядних процесів, доступність недостатньої кількості пам’яті

3.1) Як в реальному режимі роботи мікропроцесорів i80x86 здійснюється перетворення віртуальної адреси у фізичну?

Для адресації пам'яті МП використовує логічні та фізичні адреси. Логічна адреса є 32-бітною незалежно від режиму роботи МП. Вона містить 16-розрядний сегмент та 16-розрядне зміщення. Логічну адресі звичайно записують у формі: сегмент:зміщення. У реальному режимі мікропроцесор звертається до пам'яті, генеруючи 20‑розрядні (точніше, "майже 20-розрядні") фізичні адреси. Формування фізичної адреси здійснюється по правилу зображеному на рис. сегментна частина зсувається на 4 розряди вліво та додається до зміщення. Отже адреси початку сегментів завжди починаються з числа, кратного 16, а кожен сегмент пам'яті має розмір 64 кбайти. Легко довести, що одній фізичній адресі відповідає 16 384 різних логічних адрес. Наприклад: фізичній адресі 00400h (0000 0000 0100 0000 0000b) відповідають логічні адреси 0040:0000 та 0000:0400.

Формування фізичної адреси у реальному режимі роботи

Хоча адресація пам'яті в реальному режимі роботи здійснюється по алгоритму використаному у процесорі і8086, але розробники МП лишили можливість адресувати дані за межами першого мегабайта. Адреса 0F0000:0FFFF відповідає максимально можливій фізичній адресі 0FFFFFh. Але, використовуючи 16-розрядні регістри процесора, є можливість задати і більші значення логічної адреси, наприклад, 0FFFFh:0010h. У даному МП при використанні указаної логічної адреси відбудеться звертання по фізичній адресі 100000h, котра знаходиться за межами першого мегабайта (у МП і8086 було б звертання по адресі 00000h). Тобто у реальному режимі з'являється ще один додатковий сегмент пам'яті, що лежить вище межі першого мегабайта. Цей сегмент називається областю верхньої пам'яті (High Memory Area). Йому відповідає діапазон логічних адрес від 0FFFFh:0010h до 0FFFFh:0FFFFh. Розмір області складає 64 кілобайта без 16 байт.

Для досягнення повної сумісності з МП і8086 на системній платі є логічний елемент, що може примусово обнулити лінію A20, проте можливість отримання додаткової пам'яті звичайно переважує можливість звертання до початкових адрес МП і8086 дуже нестандартним чином і таким блокуванням не користуються. Існує також можливість завантаження у сховані регістри МП базової адреси, що знаходиться за межами першого мегабайта по відлагоджувальній команді LOADALL, котра завантажує абсолютно усі регістри МП даними з структури розміщеної по адресам 80:0h-80:66h.

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

У реальному режимі передавання керування виконується за допомогою команд JMP, CALL, INT, RET, IRET, а також при виникненні переривань.

При внутрішньо сегментному передаванні керування у регістр IP заноситься нове значення, а регістр CS не модифікується. Міжсегментне передавання і одночасно змінює регістри CS і IP, а також у деяких випадках і регістр ознак F (переривання і команди RET, IRET).

Внутрішньосегментне передавання керування виконується командами JMP, CALL, RET, а міжсегментна передача керування – командами JMP, CALL, INT, RET, IRET і у випадку виникнення переривань.

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