- •Призначення та основні функції операційної системи.
- •Моделі операційних систем.
- •Класифікація операційних систем.
- •Виникнення та розвиток 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 надають користувачеві широкий спектр команд для роботи з файлами і каталогами. Їх сильною стороною є можливість використання їх у простій формі щодо групи файлів і каталогів, які відповідають певним вимогам. Наприклад видалити групу файлів відповідаючих певним критеріям або змінити їм усім імена за певним шаблоном.
Основні можливості та функції стандартної бібліотеки введення/виведення.
Традиційною для ОС UNIX бібліотекою функцій більш високого рівня, ніж бібліотека системних викликів, є, так звана, стандартна бібліотека вводу / виводу (stdio). Основний набір функцій цієї бібліотеки служить для виконання файлових операцій з буферизацією даних в пам'яті користувача процесу. Бібліотека введення / виводу фактично стандартизована дуже давно, і їй можна безпечно користуватися в будь-якій операційній середовищі. Зокрема, одноманітні бібліотеки введення / виводу підтримуються у всіх сучасних реалізаціях системи програмування мови Сі, виконаних не в середовищі ОС UNIX (включаючи реалізації в середовищі MS-DOS).
stdio.h (від англ. standard input/output header - стандартний заголовний файл введення/виведення) заголовний файл стандартної бібліотеки мови Сі, що містить визначення макросів, констант та оголошення функцій і типів, що використовуються для різних операцій стандартного введення і виведення. Функції-члени функції, оголошені в stdio.h у загальному випадку можуть бути розділені на дві категорії: функції для операцій з файлами і функції для операцій введення-виведення.
Принципи застосування стандартної бібліотеки введення/виведення. Порядок роботи з файлом.
Традиційною для ОС UNIX бібліотекою функцій більш високого рівня, ніж бібліотека системних викликів, є, так звана, стандартна бібліотека вводу / виводу stdio. Оголошується #include <stdio.h>.
Додаткові можливості введення-виведення залежать від операційної системи, але ці функції забезпечують єдиний інтерфейс.Відповідні описи містяться в stdio.h.
Функції stdio заводять індикатор помилок для кожного файлу, на який вказує покажчик fp, для запису туди інформації про помилки введення-виведення, пов'язаних з даним файлом або потоком. Використовуйте ferror для з'ясування значення цього індикатора.
#include <stdio.h>
int ferror(FILE *fp);
Якщо певний fp файл або потік відкритий, то fclose закриває його, попередньо записавши всі оброблювані дані (викликавши fflush (fp)).fclose повертає 0, якщо він був виконаний успішно (включаючи випадок, коли fp - NULL або не відкритий файл); інакше повертається EOF.
#include <stdio.h>
int fclose(FILE *fp);
fopen ініціалізує структури даних, необхідних для читання або запису файлу. Ім'я файлу визначається рядком в file, а тип доступу до файлу - рядком у mode.Інша функція _fopen_r є повторно-входимость аналогом. Додатковий аргумент reent - покажчик на структуру, яка містить інформацію для забезпечення повторної входимость.
#include <stdio.h>
FILE *fopen(const char *file, const char *mode);
FILE *_fopen_r(void *reent, const char *file, const char *mode);
Операційні системи сімейства UNIX надають користувачеві широкий спектр команд для роботи з файлами і каталогами. Їх сильною стороною є можливість використання їх у простій формі щодо групи файлів і каталогів, які відповідають певним вимогам. Наприклад видалити групу файлів відповідаючих певним критеріям або змінити їм усім імена за певним шаблоном.
