- •Призначення та основні функції операційної системи.
- •Моделі операційних систем.
- •Класифікація операційних систем.
- •Виникнення та розвиток 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.
- •Поняття мережевої та розподіленої ос. Вимоги до розподілених ос.
- •Поняття обчислювального кластера. Розподілена подільна пам’ять.
- •Принципи та обмеження основних способів оповіщення задач про настання подій (синхронізації).
- •Основні програмні інтерфейси синхронізації виконання процесів.
- •Командний сценарій. Потоки введення/виведення, конвеєри.
- •Стандартне виведення
Поняття обчислювального кластера. Розподілена подільна пам’ять.
Обчислювальні кластери призначені для виконання паралельних програм, що описують вирішення складних наукових проблем (розшифрування генома, синтезу молекул тощо). Багато з них сьогодні потребують обчислювальних потужностей, яких неможливо досягти у разі використання окремих комп'ютерів. Фактично, такий кластер — це аналог багатопроцесорного суперкомп'ютера, але при цьому коштує значно дешевше. Більшу частину наукових обчислювальних задач у наш час розв'язують на таких кластерах.
Традиційно розподілені обчислення базуються на моделі передачі повідомлень, в якій дані передаються від процесора до процесора у вигляді повідомлень. Віддалений виклик процедур фактично є тією ж самою моделлю (або дуже близькою).
DSM (Distributed Shared Memory - Розподілена подільна пам’ять) - віртуальний адресний простір, який поділяється всіма вузлами (процесорами) розподіленої системи. Програми отримують доступ до даних в DSM приблизно так само, як вони працюють з даними у віртуальній пам'яті традиційних ЕОМ. У системах з DSM дані переміщаються між локальною пам'яттю різних комп'ютерів аналогічно тому, як вони переміщаються між оперативною і зовнішньою пам'яттю одного комп'ютера.
Принципи та обмеження основних способів оповіщення задач про настання подій (синхронізації).
Процес оповіщення про настання події складається з двох етапів:
1. Генерація сигналу;
При настанні події ОС генерує сигнал: в структурі TASK_STRUCT вона зводить відповідний біт у масці надійшовших сигналів.
2. Обробка сигналу;
Після установки біта процес повинен обробити цей сигнал. Процес не може обробити сигнал миттєво, він робить це тільки в певні моменти часу:
• з черги готових процес вибирається на виконання диспетчером (очікуючи в черзі, процес не може отримати сигнал);
• перед блокуванням;
• під час блокування, якщо блокування є перериваючою (наприклад, очікування введення з клавіатури); якщо той же read читає з диска, а не з клавіатури, то таке блокування є непрериваючим.
Кожен сигнал володіє дією за замовчуванням. Ця дія виконується ОС, якщо процес не встановить для цього сигналу іншу дію. Усього існують 5 дій за замовчуванням:
1) аварійне завершення з дампом пам'яті (D);
2) завершення без дампа (A);
3) ігнорування сигналу (I);
4) зупинка (процес може бути припинений) (S);
5) продовження (С)
Майже для кожного з сигналів процес може перевизначити дії, що виконуються за замовчуванням. Оброблювач можна перевизначити для будь-яких сигналів, крім двох:
• SIGKILL (це завжди зняття - реакція 2)
• SIGSTOP - переклад процесу в призупинене стан.
альтернативи:
• Ігнорувати сигнал;
• Визначити свій обробник сигналу.
Основні програмні інтерфейси синхронізації виконання процесів.
Програмний інтерфейс керування процесами
Win32
З введенням потокової багатозадачності виникла необхідність у спеціальному механізмі, званому синхронізацією. Синхронізація дозволяє контролювати виконання потоків (і процесів) строго певним чином. У Win32 для синхронізації виділена ціла підсистема. Бібліотека класів MFC повністю підтримує засоби багатозадачності.
У MFC механізм синхронізації, забезпечуваний інтерфейсом Win32, підтримується за допомогою наступних класів, породжених від класу CSyncObject:
• CCriticalSection - реалізує критичний розділ.
• CEvent - реалізує об'єкт події
• CMutex - реалізує виключає семафор.
• CSemaphore - реалізує класичний семафор.
