
- •Призначення та основні функції операційної системи.
- •Моделі операційних систем.
- •Класифікація операційних систем.
- •Виникнення та розвиток Unix - подібних систем.
- •Принципи структуризації побудови ос.
- •Підходи до архітектурної ос.
- •Основні функціональні підсистеми сучасних ос.
- •Підсистема управління пам'яттю
- •Апаратна підтримка функціонування ос.
- •Призначення та принципи роботи основних функціональних підсистем.
- •Інтерфейс системних викликів, статичні та динамічні бібліотеки.
- •Процес. Дескриптор процесу. Створення та завершення процесів.
- •Порядок запуску програм засобами базового інтерфейсу управління процесами.
- •Основні можливості та функції базового інтерфейсу управління процесами.
- •Ідентифікатор процесу. Основні атрибути процесу. Оперування атрибутами процесу.
- •Організація взаємодії між батьківським та дочірніми процесами.
- •Створення та завершення процесів. Поняття про дескриптор процесу.
- •Отримання ідентифікаторів процесів. Стани процесу.
- •Загальний порядок та фізичний зміст створення нового процесу.
- •Поняття процесу з позиції концепції багатопотокового виконання.
- •Поняття про життєвий цикл процесу.
- •Основні можливості та функції базового інтерфейсу управління сигналами. Диспозиція сигналу процесу.
- •Загальний порядок генерування та доставки сигналів процесу. Типи та властивості сигналів.
- •Основні можливості та функції базового інтерфейсу управління потоками.
- •Порядок створення та завершення потоків.
- •Принципи застосування базового інтерфейсу введення/виведення. Порядок роботи з файлом.
- •Основні можливості та функції стандартної бібліотеки введення/виведення.
- •Принципи застосування стандартної бібліотеки введення/виведення. Порядок роботи з файлом.
- •Поняття файлу. Типи файлів. Дані та метадані файлу.
- •Особливості застосування базового інтерфейсу та стандартної бібліотеки введення/виведення.
- •Загальні концепції синхронізації задач.
- •Сутність проблеми змагань між задачами. Умови виникнення змагань. Критичний код, критичний ресурс.
- •Загальні відомості про інтерфейси користувача ос.
- •Графічний інтерфейс
- •Порівняння графічного інтерфейсу та інтерфейсу командного рядка.
- •Приклади графічних середовищ користувача. Організація текстового сеансу роботи користувача.
- •Загальний порядок завантаження ос. Ланцюгове завантаження.
- •Досистемний етап завантаження.
- •Системний етап завантаження. Реалізація системного етапу завантаження Linux.
- •Процес init. Файли /etc/inittab, /etc/rc.D/rc.Sysinit.
- •Сценарії ініціалізації ос. Приклади системних демонів.
- •Командний інтерпретатор. Базовий синтаксис команд. Шаблони вибору імен файлів.
- •Багатозадачність. Види реалізації багатозадачності.
- •Операційне середовище користувача та прикладних програм. Основні елементи операційного середовища. Організація сеансу роботи користувача через інтерфейс командного рядка.
- •Інструментальні засоби програмування. Основні відомості про мови програмування.
- •Загальні відомості про особливості розробки командних сценаріїв та програм на мові, що передбачає компіляцію.
- •Компіляція та компоновка. Основні прийоми розробки початкових текстів, компіляції і компоновки програм. Статична компоновка. Динамічне зв’язування.
- •Створення та підключення бібліотек. Види бібліотек. Управління вибором способу підключення бібліотек, наявних у двох варіантах.
- •Види бібліотек та порядок створення бібліотек.
- •Поняття файлу та файлової системи. Імена файлів. Символічне посилання на файл.
- •Фізична організація файлових систем. Типи фізичної організації файлових систем. Поняття фрагментації даних.
- •Типи файлів. Власники файлів. Права доступу до файлів.
- •Основні атрибути файлів.
- •Призначення та приклади використання утиліт: mkdir, mknod, mkfifo, cp, mv, rename.
- •Типи користувачів. Облікові даних користувачів. Групи користувачів.
- •Призначення та зміст файлів, що утворюють традиційну базу обліку користувачів Unix. Псевдокористувачі.
- •Призначення та приклади застосування базових утиліт управління обліком користувачів Unix: useradd, usermod, userdel, groupadd.
- •Призначення та приклади застосування базових утиліт управління обліком користувачів Unix: groupmod, groupdel, passwd, gpasswd.
- •Програма, задача, процес. Привілейовані та непривілейовані процеси.
- •Ідентифікатор процесу. Родинні відносини між процесами.
- •Призначення та приклади застосування базових утиліт управління задачами Unix: ps, kill, nice, renice, su, sudo.
- •Поняття мережевої та розподіленої ос. Вимоги до розподілених ос.
- •Поняття обчислювального кластера. Розподілена подільна пам’ять.
- •Принципи та обмеження основних способів оповіщення задач про настання подій (синхронізації).
- •Основні програмні інтерфейси синхронізації виконання процесів.
- •Командний сценарій. Потоки введення/виведення, конвеєри.
- •Стандартне виведення
Принципи структуризації побудови ос.
Структуризація – це розподіл проекту на ієрархічні підсистеми та компоненти та встановлення між ними зв’язків та відносин, що дозволяє здійснювати управління проектом.
Операційна система виконує безліч функцій, які зазвичай групуються у відповідності з видом ресурсу, яким управляє операційна система, або зі специфічною завданням, застосовної до всіх видів ресурсів. Можна виділити наступні функції сучасної багатозадачної, багато користувальницької операційної системи: управління процесами, управління пам'яттю, управління файлами і зовнішніми пристроями, захист даних і адміністрування, інтерфейс прикладного програмування, призначений для користувача інтерфейс.
Найбільш загальним підходом до структуризації операційної системи є її поділ усіх її модулів на дві групи:
ядро - модулі, що виконують основні функції операційної системи, вирішальні внутрішньо системні задачі організації обчислювального процесу, такі як переключення контексту, управління пам'яттю, обробка переривань, робота із зовнішніми пристроями і т. п.
компоненти, що реалізують додаткові функції операційної системи - всілякі службові програми, або утиліти.
Для надійного управління ходом виконання програм операційна система повинна мати по відношенню до користувальницьким процесам визначеній привілеї - інакше некоректно працюючий додаток зможе втрутитися в роботу операційної системи. Наприклад, взаємодія з апаратурою можливо тільки на самому високому рівні привілеїв, який не дається звичайним програмам. Найчастіше саме ядро є тією частиною операційної системи, яка працює в привілейованому режимі.
Більшість сучасних операційних систем являє собою добре структуровані модульні системи, здатні до розвитку, розширенню та перенесенню на нові платформи. Існує ряд універсальних підходів до структуризації операційних систем, серед яких можна виділити монолітну і мікроядерну архітектури.
Підходи до архітектурної ос.
Монолітні системи – ОС, в яких усі базові функції сконцентровані в ядрі. ОС продуктивніша, але менш надійна, весь її код виконується у привілейованому режимі і помилка будь-якого компоненту коду є критичною. Є можливість додати нові модулі до ядра.
Багаторівневі системи – компоненти таких ОС утворюють ієрархію рівнів, кожен з яких спирається на функції попереднього рівня. Найнижчий рівень взаємодіє з апаратним забезпеченням, найвищий – реалізує системні виклики. У такого підходу низька продуктивність.
Системи з мікроядром. Один із напрямів розвитку сучасних ОС.У привілейованому режимі реалізована невелика частка функцій ядра, які є мікроядром. Інші функції ОС виконуються процесами режиму користувача. Мікроядро здійснює зв'язок між компонентами системи і виконує базовий розподіл ресурсів.
Переваги мікроядрового підходу:
невеликі розміри мікроядра
висока надійність системи
більша гнучкість і розширюваність системи
можливість адаптації до умов мережі
Головний недолік – зниження продуктивності.
Системи віртуальних машин (ВМ). Програмним шляхом створюють копії апаратного забезпечення. Ці копії працюють паралельно, на кожній із них функціонує програмне забезпечення, з яким взаємодіють прикладні програми і користувачі. Ядро системи, яке називається монітором віртуальних машин, виконувалося на фізичній машині, безпосередньо взаємодіючи з її апаратним забезпеченням. Монітор реалізовував набір ВМ. Кожна ВМ була точною копією апаратного забезпечення, на якій могла бути запущена будь-яка ОС. ВМ спільно використовували ресурси реального комп’ютера. Сьогодні концепція ВМ застосовується і в прикладному програмному забезпеченні.
Зазвичай у побудові ОС використовують певну комбінацію даних підходів.