Лекція 1. Поняття операційних систем та їх призначення
1.1. Визначення операційної системи.
Операційна система, скорочено ОС — це базовий комплекс програм, що виконує керування апаратною складовою комп'ютера або віртуальної машини; забезпечує керування обчислювальним процесом і організовує взаємодію з користувачем.
Операційна система звичайно складається з ядра операційної системи та базового набору прикладних програм.
Поняття операційної системи напряму пов'язане з такими поняттями, як:
- Файл — іменований впорядкований набір даних на пристрої зберігання інформації; операційна система забезпечує організацію файлів в файлові системи.
- Файлова система — набір файлів (можливо порожній), організованих за заздалегідь визначеними правилами. Якщо організація файлів в файлову систему відбувається з використанням каталогів, то така файлова система називається ієрархічною.
- Програма — файл, що містить набір інструкцій для виконання. Виконавцем інструкцій програми може бути:
o
центральний
процесор — якщо програма містить машинний код (звичайно отримують шляхом
компіляції вихідного текста програми, написаного однією з компільованих мов);
o
інтерпретатор
— інша програма, яка забезпечує розпізнавання і виконання інструкцій (в окремих
випадках інтерпретатор також називають віртуальною машиною).
- Задача — програма в процесі виконання (в термінології операційних систем UNIX використовують термін «процес»).
- Команда — ім'я, яке використовує користувач ОС або інша програма для виконання вказаної програми (може збігатися з іменем файла з програмою) або поіменованої дії (вбудованої команди).
- Командний інтерпретатор — середовище, яке забезпечує інтерфейс з користувачем і виконання команд.
1.2. Функції операційних систем.
Головні функції:
- Виконання на вимогу користувача тих елементарних (низькорівневих) дій, які є спільними для більшості програм і часто зустрічаються майже в усіх програмах (введення та виведення даних, запуск і зупинка інших програм, виділення та вивільнення додаткової пам'яті тощо).
- Стандартизований доступ до периферійних пристроїв (пристрої введення-виведення).
- Завантаження програм в оперативну пам'ять і їх виконання.
- Керування оперативною пам'яттю (розподіл між процесами, організація віртуальної пам'яті).
- Керування доступом до даних енергонезалежних носіїв (апаратний диск, оптичні диски тощо), організованим в тій чи іншій файловій системі.
- Відтворення інтерфейсу користувача.
- Мережеві операції, підтримка стеку мережевих протоколів.
Додаткові функції:
- Паралельне або псевдопаралельне виконання задач (багатозадачність).
- Розподіл ресурсів обчислювальної системи між процесами.
- Організація надійних обчислень (неможливості впливу процесу на перебіг інших), основана на розмежуванні доступу до ресурсів.
- Взаємодія між процесами: обмін даними, синхронізація.
- Захист самої системи, а також даних користувача і програм від дій користувача або інших програм.
- Багатокористувацький режим роботи та розподілення прав доступу (автентифікація, авторизація).
1.3. Складові операційної системи
До складу операційної системи входять:
- ядро операційної системи, що забезпечує розподіл та управління ресурсами обчислювальної системи;
- базовий набір прикладних програм, системні бібліотеки та програми обслуговування.
Ядро системи — це набір функцій, структур даних та окремих програмних модулів, які завантажуються в пам'ять комп'ютера при завантаженні операційної системи та забезпечують три типи системних сервісів:
- управління введенням-виведенням інформації (підсистема вводу-виводу ядра ОС);
- управління оперативною пам'яттю (підсистема управління оперативною пам'яттю ядра ОС);
- управління процесами (підсистема управління процесами ядра ОС).
Кожна з цих підсистем представлена відповідними функціями ядра системи.
Багатозадачні операційні системи також включають ще одну обов'язкову складову — механізм підтримки багатозадачності. Ця складова не надається як системний сервіс і тому не може бути віднесена до жодної з підсистем.
Існує три основних механізми забезпечення багатозадачності (планування задач):
- шляхом надання процесора окремій задачі на квант часу, який визначається самою задачею (кооперативна багатозадачність; останнім часом практично не використовується або область використання значно обмежена всередині процесів);
- шляхом надання процесора окремій задачі на квант часу, який визначається обладнанням обчислювальної системи — інтервальним таймером;
- виділення під окрему задачу окремого процесора в багатопроцесорних системах.
У перших двох випадках на кожному з процесорів в окремо взятий момент часу обраховується лише одна задача, але за рахунок достатньо малого кванту часу (в межах мілісекунд), що почергово надається кожній з задач, виникає ілюзія одночасного виконання в системі багатьох задач.
В сучасних системах, як правило комбінуються методи 2 і 3.
1.4. Вимоги до обладнання
Окрема операційна система зазвичай може виконуватись на обмеженому переліку обладнання, яке забезпечує потрібні їй механізми. Сучасні універсальні (і не тільки) операційні системи зазвичай вимагають апаратної підтримки наступних механізмів:
- підтримка сторінкового поділу оперативної пам'яті з можливістю апаратного захисту сторінок від модифікації даних окремими задачами (процесами);
- підтримка захищеного режиму виконання процесора (режиму ядра ОС), який передбачає можливість виконання операцій процесора по управлінню обладнанням системи, при цьому спроба виконати подібну операцію в прикладній програмі блокується апаратно.
Можуть існувати і інші вимоги.