- •Призначення та основні функції операційної системи.
- •Моделі операційних систем.
- •Класифікація операційних систем.
- •Виникнення та розвиток 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.
- •Поняття мережевої та розподіленої ос. Вимоги до розподілених ос.
- •Поняття обчислювального кластера. Розподілена подільна пам’ять.
- •Принципи та обмеження основних способів оповіщення задач про настання подій (синхронізації).
- •Основні програмні інтерфейси синхронізації виконання процесів.
- •Командний сценарій. Потоки введення/виведення, конвеєри.
- •Стандартне виведення
Ідентифікатор процесу. Родинні відносини між процесами.
Ідентифікатор процесу (PID) . Кожен процес в системі має унікальний ідентифікатор. Кожен новий запущений процес отримує номер на одиницю більше попереднього.
Ідентифікатор батьківського процесу (PPID). Даний атрибут процес отримує під час свого запуску і використовується для отримання статусу батьківського процесу.
В UNIX, кожен процес, окрім процесу 0 (swapper) створюється коли інший процес виконує системний виклик fork. Процес, що викликає fork називають батьківським процесом, а новостворений процес — дочірнім процесом. Кожен процес, (окрім процесу 0) має один батьківський процес, але може мати багато дочірніх.
Призначення та приклади застосування базових утиліт управління задачами Unix: ps, kill, nice, renice, su, sudo.
- Ps – вивести поточні активні процеси
-a - пов'язані з конкретним терміналом, крім головних системних процесів сеансу
-x - процеси, від'єднані від терміналу (демони, служби)
-u - відображення користувача (власника процесу)
-u user - відобразити процеси користувача user
- kill pid - вбити процес з id pid
-TERM pid - спробувати завершити процес з pid - сигналом SIGTERM (цей сигнал може бути оброблений або проігнорований програмою).
-KILL pid - Завершити процес примусово, вбити процес в незалежності від його стану сигналом SIGKILL (процес не може проігнорувати сигнал).
- nice-n value script - зміна пріоритету процесу, що запускається, script на значення, рівне value (може бути від -20 до 19, в порядку зменшення пріоритету, тобто -20 - найвищий).
- renice-value PID - зміна пріоритету запущених процесів з PID = PID на значення, рівне value (може бути від -20 до 19, в порядку зменшення пріоритету, тобто -20 - найвищий)
- su user - створення оболонки (подоболочки поточної оболонки) з правами користувача user (без зазначення користувача - викликається оболонка root)
-,-L, - login - всі 3 параметри мають одне значення - завантажити оточення викликається користувача (виконуються всі стартові сценарії і підвантажуються змінні оточення викликається користувача)
-с command - виконати команду command з правами суперкористувача і "понизити" права в вихідні після завершення команди.
Поняття мережевої та розподіленої ос. Вимоги до розподілених ос.
Залежно від того, який віртуальний образ створює операційна система для того, щоб підмінити їм реальну апаратуру комп'ютерної мережі, розрізняють мережеві ОС і розподілені ОС.
Мережева ОС надає користувачеві якусь віртуальну обчислювальну систему, працювати з якою набагато простіше, ніж з реальною мережевою апаратурою. В той же час ця віртуальна система не повністю приховує розподілену природу свого реального прототипу, тобто є віртуальною мережею.
Мережева ОС. Працюючи в середовищі мережевої ОС, користувач хоча і може запустити завдання на будь-якій машині комп'ютерної мережі, завжди знає, на якій машині виконується його завдання. За умовчанням призначене для користувача завдання виконується на тій машині, на якій користувач зробив логічний вхід. Якщо ж він хоче виконати завдання на іншій машині, то йому потрібно або виконати логічний вхід в цю машину, використовуючи команду типу remote login, або ввести спеціальну команду віддаленого виконання, в якій він повинен вказати інформацію, що ідентифікує віддалений комп'ютер.
Термін «мережева операційна система» використовується в двох значеннях: по-перше, як сукупність ОС всіх комп'ютерів мережі і, по-друге, як операційна система окремого комп'ютера, здатного працювати в мережі.
Розподілена ОС. Магістральним напрямом розвитку мережевих ОС є досягнення якомога вищого ступеня прозорості мережевих ресурсів. У ідеальному випадку мережева ОС повинна пре-дставити користувачеві мережеві ресурси у вигляді ресурсів єдиної централізованої віртуальної машини. Для такої операційної системи використовують спеціальну назву — розподілена ОС, або істинно розподілена ОС.
Розподілена ОС, динамічно і автоматично розпо-діляючи роботи по різних машинах системи для обробки, примушує набір мережевих машин працювати як віртуальний уніпроцесор. Користувач розподіленої ОС не має відомостей про те, на якій машині виконується його робота. Розподілена ОС існує як єдина операційна система в масштабах обчислювальної системи.
Кожен комп'ютер мережі, що працює під управлінням розподіленою ОС, виконує частину функцій цієї глобальної ОС. Розподілена ОС об'єднує всі комп'ютери мережі в тому сенсі, що вони працюють в тісній кооперації один з одним для ефективного використання всіх ресурсів комп'ютерної мережі.
Природним вимогою до будь-якої розподіленої ОС є забезпечення зручного, ефективного і надійного доступу до ресурсів комп’ютерної мережі.
Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби поділюваних ресурсів, єдиної служби часу, використання механізму виклику віддалених процедур (RPC) для прозорого розподілу програмних процедур по машинах, багатониткової обробки, що дозволяє розпаралелювати обчислення в рамках однієї задачі і виконувати цю задачу відразу на декількох комп'ютерах мережі, а також наявність інших розподілених служб.
