
- •Призначення та основні функції операційної системи.
- •Моделі операційних систем.
- •Класифікація операційних систем.
- •Виникнення та розвиток 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.
- •Поняття мережевої та розподіленої ос. Вимоги до розподілених ос.
- •Поняття обчислювального кластера. Розподілена подільна пам’ять.
- •Принципи та обмеження основних способів оповіщення задач про настання подій (синхронізації).
- •Основні програмні інтерфейси синхронізації виконання процесів.
- •Командний сценарій. Потоки введення/виведення, конвеєри.
- •Стандартне виведення
Багатозадачність. Види реалізації багатозадачності.
Багатозадачність (англ. multitasking) — властивість операційної системи або середовища програмування забезпечувати можливість паралельної (або псевдопаралельною) обробки декількох процесів. Дійсна багатозадачність операційної системи можлива тільки в багатопроцесорних або кількаядерних системах або в розподілених обчислювальних системах.
Типи псевдопараллельної багатозадачності:
невитісняюча багатозадачність - Тип багатозадачності, при якому операційна система одночасно завантажує в пам'ять два або більше додатків, але процесорний час надається тільки основним додатком. Для виконання фонового докладання воно має бути активізовано.
Спільна або кооперативна багатозадачність - Тип багатозадачності, при якому наступна задача виконується тільки після того, як поточна задача явно оголосить себе готовою віддати процесорний час іншим завданням. Витісняюча багатозадачність - це вид багатозадачності , при якій операційна система може тимчасово перервати поточний процес без будь-якої допомоги з його боку. Завдяки цьому, завислі застосування, як правило, не "підвішують" операційну систему.
Мабуть, найпростішою реалізацією багатозадачної системи була б бібліотека підпрограм, яка визначає наступні процедури.
struct Thread; У тексті обговорюватиметься, що має бути ця структура, звана дескриптором нитки.
Thread * ThreadCreate(void (*ThreadBody)(void)); Створити нитку, виконуючу функцію ThreadBody.
void Threadswitch(); Ця функція припиняє поточну нитку і активізує чергову, готову до виконання.
void ThreadExit () ; Припиняє виконання поточної нитки.
Основною трудністю реалізації багатозадачного середовища є її надійність, виражена в захисті пам'яті, обробці збоїв і переривань, оберіганні від зависань і тупикових ситуацій.
Окрім надійності, багатозадачне середовище має бути ефективним. Витрати ресурсів на її підтримку не повинні заважати процесам проходити, уповільнювати їхню роботу, різко обмежувати пам'ять.
Операційне середовище користувача та прикладних програм. Основні елементи операційного середовища. Організація сеансу роботи користувача через інтерфейс командного рядка.
Операційна середовище - сукупність комп'ютерних програм, що забезпечує оператору можливість керувати обчислювальними процесами і файлами.
Стандартом на операційні системи (ОС) визначені синтаксис і семантика мови оболонки і утиліт, що становлять операційне середовище комп'ютера, що працює під управлінням такої ОС. Є операційні середовища, що дозволяють управляти обчислювальними процесами і файлами в стандартній операційній системі за допомогою графічного користувальницького інтерфейсу, такі як Enlightenment, GNOME, KDE та ін.. Проявляється тенденція включати в операційні середовища також нетрадиційні засоби введення-виведення даних (голосове введення, синтез голосу, розпізнавання рукописного введення та ін.).
Інтерфейс командного рядка — різновид текстового інтерфейсу користувача і комп'ютера, в якому інструкції комп'ютера даються тільки шляхом введення з клавіатури текстових рядків (команд). Також відомий під назвою консоль. Інтерфейс командного рядка може бути протиставлений системам управління програмою на основі меню, а також різних реалізацій графічного інтерфейсу. Формат виводу інформації в інтерфейсі командного рядка не регламентується; звичайно це простий текстовий вивід, але може бути і графічним, звуковим виводом тощо.