
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 5: Архітектура ос. Управління процессами: Основні поняття. Семафори і монітори План
- •2. Керування процесами
- •Віртуальні машини - інший розповсюджений підхід до розробки операційних систем й їхніх користувальницьких інтерфейсів
- •Механізми й політики
- •Реалізація операційних систем
- •Генерація операційної системи
- •Перемикання з одного процесу на інший
- •Планувальники, що виконують диспетчеризацію процесів
- •Лекція 10. Методи синхронізації процесів План
- •Алгоритм рішення проблеми критичної секції
- •Алгоритм «в пиріжковій» (bakery algorithm)
- •Синхронізація на основі загальних семафорів
- •Реалізація семафорів
- •Рішення за допомогою семафорів завдання
- •Рішення за допомогою семафорів завдання "читачі - письменники"
- •Рішення за допомогою семафорів завдання " філософи, що обідають,"
- •Монітори
- •Лекція № 11. Управління памяттю План
- •Динамічне завантаження й динамічна лінковка
- •Оверлейна структура програми
- •Відкачка й підкачування
- •Лекція 13. Сегментна організація пам’яті. Віртуальна пам’ять
- •Оптимальний алгоритм заміщення сторінок
- •Сторінкова організація на вимогу в Windows nt
- •Лекція № 14. Системи файлів План
- •Типова організація файлової системи зображена на мал. 19.3.
- •Логічна організація директорій
- •Монтування файлових систем
- •Структура файлової системи
- •Лекція № 15. Віртуальні файлові системи План
- •Лекція 17. Системи вводу-виводу План
- •Опитування пристроїв
- •Переривання
- •Ввід-вивід із прямим доступом до пам'яті (dma)
- •Блокові й символьні пристрої
- •Мережні пристрої істотних відрізняються від блоків і символьних; мають свій власний інтерфейс і систему команд
- •Годинники й таймери
- •Блокуємий (синхронний) і не блокуємий (асинхронний) ввід-вивід
- •Структури даних для вводу-виводу в ядрі ос
- •Життєвий цикл запиту на ввід-вивід
- •Продуктивність вводу-виводу
- •Лекція 18. Мережі й мережеві структури. Класичні и сучасні мережеві комунікаційні протоколи План
- •Мережі Ethernet
- •Протокол tcp/ip
- •Функционирование Ethernet-мереж
- •Лекція 19: Безпека операційних систем і мереж. План
- •Лекція 20. Огляд архітектури й можливостей системи Linux: архітектура, ядро, поширення й ліцензування, принципи проектування, керування процесами План
- •Історія Linux
- •Ядро Linux
- •Сучасний стан Linux, дистрибутиви й ліцензування
- •Принципи проектування й компоненти системи Linux
- •Модулі ядра, що завантажують, Linux
- •Керування процесами в Linux
- •Планування завдань ядра й синхронізація в ядрі
- •Лекція 21. Огляд архітектури й можливостей системи Linux: керування пам'яттю, ресурсами, файлові системи, драйвери пристроїв, мережі, безпека План
- •Керування фізичною пам'яттю в Linux
- •Віртуальна пам'ять в Linux
- •Виконання й завантаження користувальницьких програм в Linux
- •Системи файлів Linux
- •Ввод й вивід в Linux
- •Взаємодія процесів в Linux
- •Структура мережі в Linux
- •Безпека в Linux
- •Розвиток і використання Linux
- •Лекція 22. Огляд архітектури й можливостей систем Windows 2000/xp/2003/Vista/2008/7 План
- •Система Windows 2000
- •Історія Windows
- •Принципи проектування Windows 2000 - розширюваність, переносимость, надійність, безпека, сумісність, продуктивність, підтримка інтернаціоналізації й локалізації.
- •Архітектура Windows 2000
- •Ядро Windows 2000
- •Обработка переривань у ядрі
- •Виконавча підсистема (executive) ос Windows 2000
- •Підсистеми оточення в Windows 2000
- •Лекція 23. Системні механізми Windows План
- •Система файлів Windows
- •Рограммный інтерфейс Windows
- •Програмний інтерфейс Windows: Керування процесами
- •Керування віртуальною й фізичною пам'яттю й робочими наборами в Windows
- •Лекція 24. Ос для мобільних пристроїв. Windows Mobile План
- •Особливості ос для мобільних пристроїв
- •Ринок ос для мобільних пристроїв
- •Перспективи ос для мобільних пристроїв
- •Лекція 25. Перспективи операційних систем і мереж План
- •Операційні системи інших великих фірм
- •Solaris - операційна система розробки фірми Oracle / Sun
- •Сучасні тенденції в розвитку ос
- •Нові ос сімейства Windows
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Механізми й політики
При розробці ОС, як і будь-якої іншої складної програмної системи, розрізняють концепції механізму й політики. Механізм визначає, яким образом реалізувати деяку функціональність (наприклад, віртуальну пам'ять). Політика визначає, що саме потрібно реалізувати, тобто набір вимог, цілей, умов для реалізації функціональності. Наприклад, політика безпеки в ОС визначає правила, по яких програмі або користувачеві надаються деякі повноваження (наприклад, можливість відкриття деякого файлу). Відділення механізму від політики - дуже важливий принцип для розробки ОС. Він допускає максимум гнучкості, якщо "політичні" рішення можуть бути змінені згодом.
Реалізація операційних систем
Традиційно, починаючи з 1950-х рр., ОС розроблялися на низькорівневих мовах - асемблерах. Система UNIX була першої ОС, розробленої майже повністю мовою високого рівня - Си. Згодом мова Си стала однією з найбільш популярних мов системного програмування. Завдяки новаторському підходу авторів UNIX, зложилася тенденція розробки ОС на мовах високого рівня.
Переваги використання мов високого рівня очевидний: код мовою високого рівня
може бути розроблений швидше
більше компактний
легше для розуміння й налагодження.
Крім того, операційна система може бути набагато легше перенесена на інші апаратні платформи, якщо вона розроблена мовою високого рівня.
Гіпотетичний недолік у мов високого рівня, у порівнянні з асемблерами, тільки один - можлива неефективність реалізації високорівневих конструкцій мови, у порівнянні з "ручним" програмуванням на асемблері. Однак дана проблема може бути вирішена шляхом розробки ефективного оптимізируючого компілятора з мови високого рівня й не повинна перешкоджати його використанню.
Генерація операційної системи
ОС проектуються з метою використання на комп'ютері будь-якого класу. У поставку ОС входить дуже великий набір типових модулів для різних класів комп'ютерів (наприклад, настільних і портативних). Тому для кожного комп'ютера система повинна бути сконфігурована при її інсталяції – установці ОС на конкретний комп'ютер.
Програма генерації ОС одержує інформацію про специфічну конфігурацію комп'ютерної системи.
Після генерації й інсталяції ОС система готова до роботи.
Лекція 8. Управління процесами. Планування и диспетчеризація процесів
План
поняття процесу;
cтан процесу;
блок керування процесом;
диспетчеризація процесів;
операції над процесами.
Процес (process) це програма користувача при її виконанні. При своїй роботі операційна системи виконує безліч класів програм: пакетні завдання; користувальницькі програми в режимі поділу часу; системні програми й процеси. Є кілька схожих термінів, що характеризують користувальницькі програми: процес (process), завдання (job), завдання (task) Однак не будемо тут перебільшувати розходження між ними: для кращого розуміння специфіки процесів і керування ними в ОС, ми можемо вважати наведені терміни синонімами, як й уважається в багатьох підручниках по ОС.
Важлива особливість процесу: це одиниця обчислень, що повинна виконуватися послідовно, тобто кожен процес має свій послідовний потік керування (control flow) – послідовність виконуваних процесом команд. Багато більших завдань успішно вирішуються шляхом паралельного виконання процесів, але про це мова йтиме небагато пізніше.
Процес при його створенні й керуванні їм операційною системою включає наступну основну інформацію:
Лічильник команд (program counter - PC) – адреса поточної виконуваної команди процесу; звичайно зберігається в спеціальному системному регістрі апаратур;
Стек (stack) – резидентна область основної пам'яті, виділювана операційною системою при створенні процесу, у якій зберігаються локальні дані процедур процесу, їхні параметри (аргументи) і сполучна інформація між ними, необхідна для організації обчислень. При запуску чергової процедури в стеку приділяється запис активації (activation record), названа також стековым фреймом (stack frame) і областю локальних даних (local data area) для зберігання локальних даних поточного покоління (запуску) процедури. По закінченні її виконання запис активації видаляється зі стека;
Секція даних ( data section ) – статична (постійно виділена, незмінного розміру) область основної пам'яті, виділювана операційною системою процесу, у якій зберігаються його глобальні змінні, масиви, структури, об'єкти.
Виконуваний код (команди) процесу спочатку зберігається у вторинній пам'яті (на диску) і завантажується в основну пам'ять повністю або частково при звертанні до нього.
Стан процесу
При виконанні процес може змінювати свій стан у такий спосіб:
Новий (new): Процес створюється операційною системою, але ще не почав виконуватися.
Що виконується (running): Виконуються команди процесу на процесорі або процесорах комп'ютерної системи під керуванням ОС.
Що очікує (waiting): Процес очікує настання деякої події, наприклад, завершення вводу-виводу. У стані очікування процес не займає процесор.
Готовий до виконання (ready): Процес очікує одержання ресурсів процесора для його виконання. У стан готовності до виконання процес попадає звичайно або при його створенні, або після завершення вводу-виводу (зі стану очікування).
Завершений (terminated): Виконання процесу завершене.
Діаграма станів процесу представлена на рис. 8.1.
Рис. 8.1. Діаграма станів процесу.
Як видно зі схеми, новий процес, створений у системі, проходить стадію допущений (admitted) – включається операційною системою в чергу всіх процесів у системі, після чого ОС переводить його в стан готовності до виконання. Відзначимо відразу, що черга готових до виконання процесів – одна з найбільше часто використовуваних системних структур для керування процесами. Зі стану готовності в стан виконання процес переводиться планувальником ОС у результаті диспетчеризації – виділення кванта процесорного часу. При виконанні процес може бути перерваний (по таймері, у результаті помилки й т.п.), а після обробки переривання операційною системою переходить знову в стан готовності до виконання. Якщо в процесі виконується синхронний ввід-вивід, або процес повинен очікувати настання деякої події (наприклад, певного моменту часу), процес переходить у стан очікування. При завершенні вводу-виводу або при настанні очікуваної події процес не одержує відразу ж квант процесорного часу, а переходить у стан готовності до виконання. Процес переходить у завершений стан при завершенні роботи програми процесу - наприклад, у результаті системного виклику exit(c), де c - код завершення. Якщо c = 0, процес уважається благополучно завершеним.
Блок керування процесом
Блок керування процесом (Process Control Block – PCB) – системна структура даних, використовувана ОС для керування процесом, що містить наступну інформацію, асоційовану з кожним процесом:
Стан процесу
Поточне значення лічильника команд (використовується при продовженні виконання процесу);
Значення регістрів процесора (також використаються при поновленні процесу);
Інформація для диспетчеризації процесора (покажчик на стек процесу, номер процесу);
Інформація для керування пам'яттю (границі області пам'яті процесу);
Статистична інформація (загальний час виконання процесу, що залишилося із заявленого час виконання, сумарне час вводу-виводу й т.д.)
Інформація про стан вводу-виводу (список відкритих файлів).
Структура блоку керування процесом зображена на рис. 8.2.