- •Призначення та основні функції операційної системи.
- •Моделі операційних систем.
- •Класифікація операційних систем.
- •Виникнення та розвиток 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.
- •Поняття мережевої та розподіленої ос. Вимоги до розподілених ос.
- •Поняття обчислювального кластера. Розподілена подільна пам’ять.
- •Принципи та обмеження основних способів оповіщення задач про настання подій (синхронізації).
- •Основні програмні інтерфейси синхронізації виконання процесів.
- •Командний сценарій. Потоки введення/виведення, конвеєри.
- •Стандартне виведення
Основні можливості та функції базового інтерфейсу управління сигналами. Диспозиція сигналу процесу.
передача сигналів
оперування диспозиції сигналів процесу
оперування маскою сигналів потоку
отримання набору сигналів обробки (активне чекання сигналів)
пасивне чекання сигналів
оперування набором сигналів
На надходження сигналу процес може реагувати одним із 3-х способів(спосіб реакції процесу на сигнал називають диспозицією сигналу):
Викликати оброблювач сигналу
Проігнорувати сигнал, який у цьому випадку «зникне» і не виконає жодної дії
Використати диспозицію, передбачену за замовчуванням(така диспозиція задана для кожного сигналу, найчастіше це – завершення процесу).
Процес може задавати диспозицію для кожного сигналу окремо.
Загальний порядок генерування та доставки сигналів процесу. Типи та властивості сигналів.
Сигнал являє собою асинхронне повідомлення що посилається процесу щоб проінформувати його про подію яка відбулась.
Генерація або посилка сигналу.
Сигнал відправляється, коли відбувається певна подія, про настання якого повинен бути повідомлений процес. Сигнал вважається доставленим, коли процес, якому був відправлений сигнал, отримує його і виконує його обробку. У проміжку між цими двома подіями сигнал очікує доставки.
Сигнал може надсилатися одним процесом іншому і буде доставлений, якщо обидва процеси - одного користувача або сигнал посланий від імені користувача root. Сигнали посилаються також ядром.
Посилка сигналів
Для посилки сигналів з командного інтерпретатора використовується команда kill. Вона має наступний синтаксис: kill [-сигнал] pid ... Ця команда посилає зазначений сигнал (за замовчуванням - SIGTERM) всім процесам із зазначеними id. У деяких випадках процесу буває потрібно надіслати сигнал самому собі, це можна зробити за допомогою системного виклику raise.
Наприклад:
Завершить процеси, що мають id 142 и 157:
kill 142 157
Послати сигнал обриву (SIGHUP) процесу з ідентифікатором 507:
kill-s HUP 507
Доставка
Доставка сигналу відбувається після того, як ядро від імені процесу викликає системну процедуру issig (), яка перевіряє, чи існують які очікують доставки сигнали, адресовані даному процесу. Процедура issig () викликається ядром в трьох випадках:
Безпосередньо перед поверненням з режиму ядра в користувацький режим після обробки системного виклику або переривання.
Безпосередньо перед переходом процесу в стан сну з пріоритетом, що допускає переривання сигналом.
Відразу ж після пробудження після сну з пріоритетом, що допускає переривання сигналом.
Якщо процедура issig () виявляє очікування доставки сигналу, ядро викликає функцію доставки сигналу, яке виконує дію за умовчанням або викликає спеціальну функцію sendsig (), що запускає обробник сигналу, зареєстрований процесом. Функція sendsig () повертає процес в користувальницький режим, передає управління обробникові сигналу, а потім відновлює контекст процесу для продовження перерваного сигналом виконання.
У Unix є 31 тип сигналів, які можна розділити на групи:
сигнали, пов'язані з обладнанням, такі як: сигнали про помилки на шинах передачі даних, помилки при виконанні арифметичних операцій, помилках доступу до пам'яті т.п.;
сигнали, пов'язані з програмними подіями: сигнал завершення процесу, сигнали від інтервального таймера, сигнали, якими процеси обмінюються між собою і т.п.;
сигнали, пов'язані з уведенням-висновком, що сигналізують про події в потоках вводу-виводу;
сигнали управління завданнями: призупинення та пуску процесів у групі, сигнали про події в процесі-нащадку і т.п.;
сигнали управління ресурсами, що повідомляють про перевищення процесом лімітів використання ресурсів;
сигнали про події на легковагих процесах, оброблювані модулями бібліотеки ниток.
Наприклад:
Тип сповіщення:
SIGCHLD Дочірній процес завершений або зупинений
Тип управління:
SIGKILL Безумовне завершення
SIGSTOP Зупинка виконання процесу
Тип виключення:
SIGBUSН неправильне звернення до фізичної пам’яті
