
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 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
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Віртуальні машини - інший розповсюджений підхід до розробки операційних систем й їхніх користувальницьких інтерфейсів
Концепція віртуальної машини доводить підхід, заснований на рівнях абстракції, до свого логічного завершення. Відповідно до даної концепції, сукупність апаратур й ОС трактується як машина. Віртуальна машина надає інтерфейс, повністю аналогічний інтерфейсу звичайної машини без базового програмного забезпечення. ОС створює ілюзію одночасного виконання декількох процесів, кожного у своїй (віртуальної) пам'яті. Взагалі, виртуализация - один з найбільш сучасних принципів розвитку й використання програмного забезпечення.
Приклад: система віртуальних машин (SVM) в ОС IBM 360/370, розроблена наприкінці 1980-х рр. Більше сучасний приклад: Microsoft Virtual PC - продукт, який емулює віртуальну машину, у яку може бути інстальована будь-яка інша ОС, відмінна від основної.
При роботі користувачів у віртуальних машинах фізичні ресурси реальної комп'ютерної системи використаються спільно для підтримки декількох віртуальних машин. Диспетчеризація процесора створює в кожного користувача враження, що він має свій власний процесор. Буферизация (spooling) і файлова система надають віртуальні пристрої уведення й виводу. Термінал звичайного користувача, характерний для більше раннього режиму поділу часу, діє як операторська консоль.
Моделі операційних систем, розроблених без використання концепції віртуальної машини й на основі концепції віртуальних машин, зображені на рис. 7.4.
Рис. 7.4. Моделі ОС без використання віртуальних машин і на основі віртуальних машин.
Як видно зі схеми, без використання віртуальних машин спосіб використання ОС й апаратури традиційна: є кілька користувальницьких процесів, що спільно використають одне ядро ОС й, природно, один екземпляр апаратур комп'ютера. При використанні віртуальних машин картина міняється: процес кожного користувача як би одержує у своє розпорядження свій персональний (віртуальний) комп'ютер і свій власний екземпляр ядра ОС, що працює на цьому віртуальному комп'ютері.
Концепція віртуальної машини має наступні переваги й недоліки. З одного боку, вона забезпечує повний захист системних ресурсів, тому що кожна віртуальна машина ізольована від інших, однак така ізоляція перешкоджає ефективному спільному використанню ресурсів реального комп'ютера.
Система віртуальних машин - гарна основа для дослідження й розробок в області ОС. Розробка систем виконується над віртуальною машиною, а не на фізичній машині, і не порушує нормального функціонування системи
Концепцію віртуальної машини, однак, сутужніше реалізувати, тому що важко адекватно змоделювати використовувану машину.
Віртуальна машина Java (JVM)
Підхід, заснований на віртуалізації, характерний не тільки для розробки операційних систем, але й для реалізації сучасних платформ і мов програмування. Причина в тім, що реализаторы цих мов і платформ прагнуть зробити їх стерпними з однієї реальної апаратної платформи на іншу. Такий підхід прийнятий, як широко відомо, при реалізації Java, але автори Java аж ніяк не першими запропонували дану ідею. Програми на Java компілюються в платформно-незалежний байт-код (bytecode) – команди віртуальної Java-машини, побудовані на основі постфиксного запису операндвв. Байт-код виконується віртуальною машиною Java (JVM).
JVM складається з:
завантажника класів (class loader), що виконує завантаження класів у віртуальну машину під час виконання програми; завантажник класів може бути стандартним або може бути перевизначений користувачем;
верификатора класів (class verifier), що виконує при завантаженні класу перевірку коректності його байта-коду, контроль типів й інші необхідні перевірки;
інтерпретатора (runtime interpreter), що виконує інтерпретацію (емуляцію) команд байта-коду – абстрактної машини Java;
Just-In-Time (JIT) – компілятора, що виконує при першому виклику кожного методу його компіляцію в об'єктний код цільової платформи ( native – код), що дозволяє підвищити сумарну продуктивність виконання програм на Java.
Аналогічну архітектуру має віртуальна машина VES (Virtual Execution System) платформи Microsoft.NET, однак підхід .NET більше відкритий – підтримується багатомовне програмування, і байт-код (в. NET називаний CIL – Common Intermediate Language ) відіграє роль універсальної проміжної мови, у який компілюється вихідний код на будь-якій мові, наприклад, на C# або Visual Basic. Архітектура віртуальної машини Java зображена на рис. 7.5.
Рис. 7.5. Архітектура віртуальної машини Java (JVM).
Цілі проектування й розробки ОС
Точки зору користувачів і розроблювачів ОС у даному відношенні трохи розрізняються.
Цілі з погляду користувача: ОС повинна бути зручної у використанні, простий для вивчення, надійної, безпечної й швидкої.
Цїли з погляду розроблювача ОС: ОС повинна бути нескладною для проектування, реалізації й супроводу, а також гнучкою, надійною, вільною від помилок й ефективною.