
- •1 Предмет і завдання курсу
- •2 Короткий нарис історії ос
- •3 Класифікація ос
- •3.1 За призначенням.
- •3.2 За характером взаємодії з користувачем.
- •2 Ефективність
- •3 Зручність
- •4 Масштабованість
- •5 Здатність до розвитку
- •2 Структура ос
- •2 Windows
- •2 Реалізація багатозадачного режиму
- •3 Квазіпаралельне виконання процесів
- •4 Стани процесу
- •2 Дескриптор і контекст процесу
- •3 Реєнтерабельність системних функцій
- •4 Дисципліни диспетчеризації і пріоритети процесів
- •1 У наявності деякий різнобій в загальноприйнятій термінології: в системі з невитісняючою диспетчеризацією витіснення процесу все-таки можливе, але тільки за ініціативою самого процесу.
2 Windows
Система Windows була спочатку розроблена фірмою Microsoft як графічна оболонка, що завантажується поверх MS - DOS. Ідеї GUI(Graphic User Interface - графічний інтерфейс користувача) були уперше розроблені для експериментальної машини Xerox PARC ще в 70-х рр., потім підхоплені в MacOS - операційній системі комп'ютера Macintosh, звідки і були з деякими погіршеннями позаимствованы в Windows. Версію Windows 1.0, що вийшла в 1985 р. і працювала на 1 Мб пам'яті з вікнами, що не перекриваються, прийнято розглядати як цікаву іграшку. Версія 2.0(1987 р.) була серйозніша, а версії 3.0 і 3.1(1990-1992 рр.), призначені для процесорів i386 і використовуючі до 16 Мб пам'яті, вже мали великий успіх.
Усі перераховані версії продовжували залишатися надбудовами над MS - DOS, що використовують наявну файлову систему, але що додають своє власне управління процесами, пам'яттю і пристроями. За рахунок цього комбінацію DOS + Windows можна було назвати багатозадачній розрахованій на одного користувача ОС з графічним інтерфейсом користувача.
У 1993 р. Microsoft випустила Windows NT - повноцінну багатозадачну і розраховану на багато користувачів ОС, вже не засновану на MS, - DOS. Проте, оскільки NT пред'являла підвищені вимоги до потужності процесора і об'єму пам'яті, в 1995 р. була випущена компромісна система Windows 95, що призначалася для заміни Windows 3.x у масового користувача. Підвищення швидкості роботи в порівнянні з версією NT було досягнуте ціною відмови від розрахованого на багато користувачів захисту і послаблення надійності системи. У Windows 95 неакуратно написана застосовна програма може привести до краху системи, а в Windows NT система краще ізольована від програм користувача. В той же час, практично усі коректно написані програми можуть переноситися з Windows 95 в Windows NT і навпаки.
Деякий час дві лінії Windows розвивалися паралельно. Чергові версії Windows NT дістали назву Windows 2000, Windows XP, Windows 2003. Лінія Windows 95 була продовжена версіями Windows 98 і Windows ME, що непринципово відрізняються від неї, але далі, мабуть, розвиватися не буде. Microsoft вважає, що сучасний рівень продуктивності ПЕВМ знімає необхідність в полегшеній версії системи.
Windows надає в розпорядження застосовних програм декілька тисяч документованих API- функцій на усі випадки життя.
Сучасна Windows - дуже потужна і занадто складна система, що має безліч достоїнств і недоліків, які неможливо обговорити коротко. Відмітимо, що широкому поширенню Windows, окрім особливого положення фірми Microsoft на ринку, сприяє простота установки системи, що дозволяє рядовому користувачеві обійтися без допомоги фахівців.
У подальшому викладі опис можливостей Windows буде в основному орієнтований на лінію Windows NT/2000/XP.
3 UNIX
ОС UNIX була спочатку розроблена в 1969 р. співробітниками фірми Bell Laboratories Кеном Томпсоном і Деннисом Ритчи. У 1971 р. система була перенесена на машини надзвичайно поширеної в 70-і роки серії PDP - 11, а в 1973 р. Ритчи переписав систему на мові C, залишивши лише мінімум тексту на мові асемблера. У перше десятиліття існування UNIX і сама система, і її початкові тексти поширювалися вільно, що привело до надзвичайної популярності системи в наукових кругах і університетах. Удосконалення системи могли вноситися таким, що кожним, що бажає і обговорювалися «всім світом». Зворотною стороною такої відкритості стала трудність стандартизації UNIX. Проте в 1988-1990 рр. був розроблений набір стандартів, що дістав назву POSIX(Portable OS, а закінчення IX - як натяк на UNIX). Ці стандарти фіксували сучасні вимоги до систем типу UNIX з урахуванням теоретичних і практичних досягнень за минулі роки.
Починаючи з перших версій, UNIX є багатозадачною, розрахованою на багато користувачів системою розділення часу. Основними достоїнствами UNIX є її висока мобільність, добре продуманий програмний і призначений для користувача інтерфейс. Загальновизнаною особливістю UNIX є внутрішня краса, елегантність основних архітектурних рішень. Як відомо, краса програми є вірною ознакою її вдалої конструкції і дає підстави сподіватися, що програма здатна до вдосконалення і служитиме довго. Багаторічна історія UNIX підтверджує це правило.
До недоліків UNIX можна віднести нижчу ефективність і надійність роботи, що значною мірою є платою за мобільність. Традиційна модель безпеки UNIX не відповідає сучасним вимогам, тому в різні комерційні версії доводиться включати додаткові кошти захисту даних. Широкому поширенню UNIX заважає також те, що процедури установки і налаштування системи не так прості, як у Windows, і при їх виконанні бажана участь програміста.
У 80-і роки були спроби перетворити UNIX на комерційну систему. Проте в 1991-1994 рр. Линус Торвальдс, у той час студент-програміст з Хельсінкі, наново написав систему, що відповідає стандартам POSIX, але що відрізняється від традиційної UNIX більшою надійністю і ефективністю. Ця система дістала назву Linux. Початкові тексти Linux вільно поширюються, що дозволяє, як за часів молодості UNIX, розвивати систему загальними зусиллями величезного співтовариства зацікавлених програмістів. Ефективній координації цих зусиль дуже сприяє Інтернет. Дещо пізніше був відкритий вільний доступ до текстів відомої версії UNIX FreeBSD.
Архітектура UNIX, спочатку призначена для систем розділення часу з одним процесором, згодом виявилася цілком відповідною для підтримки мережевих систем. Значна частина серверів Інтернету працює під управлінням тієї або іншої версії UNIX.
Нині відбувається відчутне зближення різних типів ОС, призначених для підтримки одних і тих же типів обчислювальних систем. Сучасні версії UNIX і Windows надають дуже близькі функціональні можливості, хоча частенько в абсолютно різній формі. Вирівнюються також характеристики надійності і продуктивності систем.
Істотною відмінністю UNIX від Windows залишається місце, займане у системі засобами графічного інтерфейсу. Якщо в Windows вікна і все, що з ними пов'язане, є невід'ємною частиною архітектури системи, то для UNIX за традицією основним засобом інтерфейсу з користувачем є текстова консоль. Ті або інші засоби віконного інтерфейсу, звичайно, є присутніми в сучасних UNIX - системах, але як додаткова, необов'язкова надбудова швидше прикладного, чим системного характеру.
Дуже цікавою особливістю UNIX є розвинена мова команд shell, який дозволяє не тільки вести елементарний діалог з системою, але і писати своєрідні програми (скрипти), за допомогою яких часто удається вирішити необхідне завдання, не удаючись до розробки нової програми на одній з традиційних мов програмування.
КОНТРОЛЬНІ ПИТАННЯ
Лекція № 5
Управління процесами
План
1 Основні завдання управління процесами
2 Реалізація багатозадачного режиму
3 Квазіпаралельне виконання процесів
4 Стани процесу
1 Основні завдання управління процесами
Під управлінням процесами розуміються процедури ОС, що забезпечують запуск системних і прикладних програм, їх виконання і завершення.
У однозадачних ОС управління процесами вирішує наступні завдання:
завантаження програми в пам'ять, підготовка її до запуску і запуск на виконання;
виконання системних викликів процесу;
обробка помилок, що виникли в ході виконання;
нормальне завершення процесу;
припинення процесу у разі помилки або втручання користувача.
Усі ці завдання вирішуються порівняно просто.
У багатозадачному режимі додаються значно серйозніші завдання:
ефективна реалізація паралельного виконання процесів на єдиному процесорі, перемикання процесора між процесами;
вибір чергового процесу для виконання з урахуванням заданих пріоритетів процесів і статистики використання процесора;
унеможливлення несанкціонованого втручання одного процесу у виконання іншого;
запобігання або усунення тупикових ситуацій, що виникають при конкуренції процесів за системні ресурси;
забезпечення синхронізації процесів і обміну даними між ними.