- •Призначення та основні функції операційної системи.
- •Моделі операційних систем.
- •Класифікація операційних систем.
- •Виникнення та розвиток 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.
- •Поняття мережевої та розподіленої ос. Вимоги до розподілених ос.
- •Поняття обчислювального кластера. Розподілена подільна пам’ять.
- •Принципи та обмеження основних способів оповіщення задач про настання подій (синхронізації).
- •Основні програмні інтерфейси синхронізації виконання процесів.
- •Командний сценарій. Потоки введення/виведення, конвеєри.
- •Стандартне виведення
Поняття файлу. Типи файлів. Дані та метадані файлу.
Файли – можна визначити як доступні користувачам та прикладним програмам віртуальні сховища даних. Фізично файли відображаються на певні ресурси комп’ютерних систем, найчастіше на певні області дискового простору.
Файли є зручним та поширеним способом віртуалізації ресурсів комп’ютерної системи, а також виконують роль уніфікованих точок доступу до цих ресурсів. Файли завжди мають імена за якими користувач і прикладні програми можуть до них звертатися.
Зазвичай ОС дозволяє працювати з декількома типами файлів. В Unix подібних ОС є 6 типів файлів:
Звичайні файли – призначені для довготривалого зберігання будь-яких даних. Зазвичай представляють певну область довготривалої пам’яті.
Каталоги – є вузловими точками імен файлів.
Символічні зв’язки – точки доступу до окремих файлів.
Файли пристроїв – точки доступу до певних пристроїв(принтер,сканер, певний розділ диска)
Іменовані канали – це точки доступу до системних засобів локального обміну даними між задачами.
Сокети – призначені для взаємодії між процесами.
Дані файлу – це інформація, яка міститься в файлі.
Метадані файлу – це кількість жорстких зв’язків між файлом та атрибутами.
Метадані описують характеристики файлу, наприклад, власників,права доступу, тип і розмір файлу, а також містять покажчики на фактичне розташування даних файлу. Метадані файлу зберігаються в структурі inode. Метадані дозволяють операційній системі виконувати операції, замовлені прикладною задачею: відкрити файл, прочитати або записати дані, створити або видалити файл. Зокрема, метадані містять покажчики на дискові блоки збереження даних файлу. Назва файлу у файловій системі є покажчиком на його метадані, в той час як метадані не містять покажчика на ім'я файлу.
Особливості застосування базового інтерфейсу та стандартної бібліотеки введення/виведення.
Базовий інтерфейс введення-виведення в Unix базується на файловій моделі. Файлові операції можуть стосуватись як даних, так і метаданих файлу.
Базовий інтерфейс введення-виведення підтримує 2 способи організаціх файлових операцій:
Контекстний – операції над окремим файлом виконуються в загальному випадку серіями. Кожна серія починається операцією відкриття файлу і закінчується операцією з закриття файлу. Під час відкриття файлу виконується трансляція його імені, розміщення в системній пам'яті його метаданих, ініціалізація параметрів сеансу роботи з файлом і авторизація всіх подальших операцій. Під час операції закриття звільняється вся пам'ять, яка була виділена в ході відкриття файлу. Контекстно завжди виконується читання з файлу і запис до файлу.
Безконтекстний – передбачає неявне виконання дій, які виконуються при відкритті і закритті файлу.
Організація робот з файлами у вигляді сеансів дозволяє прискорити виконання файлових операцій, коли вони виконуються серіями.
Функції стандартної бібліотеки введення/виведення забезпечують введення/виведення і більш зручний стиль програмування. Для використання функцій цієї бібліотеки в програму потрібно включити файл заголовків <stdio.h>.
Замість використання файлового дескриптора бібліотека визначає покажчик на спеціальну структуру даних (структура FILE), що називається потоком або файловим покажчиком. Стандартні потоки введення / виведення позначаються символічними іменами stdout, stderr відповідно для потоків введення, виведення та повідомлень про помилки.
Основною перевагою функцій бібліотеки є буферизація
введення/виведення, що дозволяє мінімізувати число системних викликів read (2).
Бібліотека надає три типи буферизації:
1. Повна буферизація. У цьому випадку операція читання або запису завершується після того, як буде заповнений буфер введення / виводу.
2. Построкова буферизація. У цьому випадку бібліотека виконує фактичне введення / виведення (тобто виробляє системні виклики read (2) або построково при виявленні кінця рядка.
3. Відсутність буферизації. У цьому випадку бібліотека не виробляє ніякої буферизації, фактично є лише програмною оболонкою системних викликів. При цьому досягаються мінімальні затримки операцій читання і запису, необхідні, наприклад, при виведенні повідомлень про помилки.
