
- •1 Предмет і завдання курсу
- •2 Короткий нарис історії ос
- •3 Класифікація ос
- •3.1 За призначенням.
- •3.2 За характером взаємодії з користувачем.
- •2 Ефективність
- •3 Зручність
- •4 Масштабованість
- •5 Здатність до розвитку
- •2 Структура ос
- •2 Windows
- •2 Реалізація багатозадачного режиму
- •3 Квазіпаралельне виконання процесів
- •4 Стани процесу
- •2 Дескриптор і контекст процесу
- •3 Реєнтерабельність системних функцій
- •4 Дисципліни диспетчеризації і пріоритети процесів
- •1 У наявності деякий різнобій в загальноприйнятій термінології: в системі з невитісняючою диспетчеризацією витіснення процесу все-таки можливе, але тільки за ініціативою самого процесу.
5 Здатність до розвитку
Щоб складна програма мала шанси проіснувати довго, в неї спочатку мають бути закладені можливості для майбутнього розвитку.
Однією з головних умов здатності системи до розвитку є добре продумана модульна структура, в якій чітко визначені функції кожного модуля і його взаємозв'язку з іншими модулями. При цьому створюється можливість вдосконалення окремих модулів з мінімальним ризиком викликати небажані наслідки для інших частин системи.
Важливою вимогою до розвитку ОС є сумісність версій від низу до верху, можливість безболісного переходу, що означає, від старої версії до нової, без втрати раніше напрацьованих застосовних програм і без необхідності різкої зміни усіх навичок користувача. Зворотна сумісність - зверху вниз - як правило, не гарантується, оскільки в ході розвитку система придбаває нові можливості, не реалізовані в старих версіях. Програма з Windows 3.1 нормально працюватиме і в Windows XP; навпаки - навряд чи.
Фірми-виробники ОС додають максимум зусиль для забезпечення сумісності від низу до верху, щоб не відлякати користувачів. Але при цьому фірми намагаються в кожну нову версію закласти яку-небудь нову цукерочку, яка спонукала б користувачів якнайскоріше купити її.
Сумісність версій - благо для користувача, проте на практиці вона часто призводить до консервації давно віджилих свій вік особливостей або ж просто невдалих рішень, прийнятих в ранній версії системи. У документації подібні архаїзми позначаються як «застарілі»(obsolete), але повної відмови від них, як правило, не відбувається(а раптом десь ще працює застосовна програма, написана двадцять років тому з використанням саме цих засобів?).
Як правило, найбільш консервативною стороною будь-якої ОС є не алгоритми, а структури системних даних, тому далекоглядні розробники заздалегідь будують структури «на вирощування»: закладають в них резервні поля, використовують змінні замість деяких констант, встановлюють кількісні обмеження з великим запасом і тому подібне
6 Мобільність
Під мобільністю(portability) розуміється можливість перенесення програми(в даному випадку ОС) на іншу апаратну платформу, тобто на інший тип процесора і іншу архітектуру комп'ютера. Тут мається на увазі перенесення з помірними трудовитратами, що не вимагає повної переробки системи.
Властивість мобільності не така однозначна позитивно, як може здатися. Щоб програма була мобільна, при її розробці слід відмовитися від глибокого використання особливостей конкретної архітектури(таких, як кількість і функціональні можливості регістрів процесора, нестандартні команди і тому подібне). Мобільна програма має бути написана на мові досить високого рівня(часто використовується мова C), який можна реалізувати на комп'ютерах будь-якої архітектури. Платою за мобільність завжди є деяка втрата ефективності, тому немобільні системи поширені досить широко.
З іншого боку, історія системного програмування усіяна останками чудових, ефективних і зручних, але немобільних ОС, які вимерли разом з процесорами, для яких вони призначалися. В той же час мобільна система UNIX продовжує процвітати четвертий десяток років, набагато переживши ті комп'ютери, для яких вона спочатку створювалася. Приблизно 5-10% початкових текстів UNIX написані на мови асемблера і повинні переписуватися наново при перенесенні на нову архітектуру. Інша частина системи написана на C і практично не вимагає змін при перенесенні.
Деяким компромісом є багатоплатформені ОС(наприклад, Windows NT), спочатку спроектовані для використання на декількох апаратних платформах, але що не гарантують можливість перенесення на нову, не передбачену заздалегідь архітектуру.
Лекція № 3
Основні функції і структура ОС
План
1 Функції ОС
2 Структура ОС
1 Функції ОС
Згідно багаторічної традиції, при розгляді основ функціонування ОС прийнято виділяти чотири основні групи функцій, що виконуються системою.
Управління пристроями. Маються на увазі усі периферійні пристрої, що підключаються до комп'ютера, - клавіатура, монітор, принтери, диски і тому подібне
Управління даними. Під цим старовинним терміном зараз розуміється робота з файлами, хоча були часи, коли звернення до даних на магнітних носіях виконувалося шляхом вказівки адреси розміщення даних на пристрої, а поняття файлу не існувало.
Управління процесами. Ця сторона роботи ОС пов'язана із запуском і завершенням роботи програм, обробкою помилок, забезпеченням паралельної роботи декількох програм на одному комп'ютері.
Управління пам'яттю. Оперативна пам'ять комп'ютера - це такий ресурс, який завжди бракує. У цих умовах розумне планування використання пам'яті є найважливішим чинником ефективної роботи.
Є ще декілька важливих обов'язків, що лягають на ОС, яких важко втиснути в рамки традиційної класифікації функцій. До них, передусім, відносяться наступні.
Організація інтерфейсу з користувачем. Форми інтерфейсу можуть бути різноманітними, залежно від типу і призначення ОС : мова управління пакетами завдань, набір діалогових команд, засобу графічного інтерфейсу.
Захист даних. Як тільки система перестає бути надбанням одного ізольованого від зовнішнього світу користувача, питання захисту даних від несанкціонованого доступу придбавають першорядну вагу. ОС, що забезпечує роботу в мережі або в системі розділення часу, повинна відповідати наявним стандартам безпеки.
Ведення статистики. В ході роботи ОС повинна збиратися, зберігатися і аналізуватися різноманітна інформація: про кількість часі, витраченому різними програмами і користувачами, про інтенсивність використання ресурсів, про спроби некоректних дій користувачів, про збої устаткування і тому подібне. Зібрана інформація зберігається в системних журналах і в облікових записах користувачів.