Лекція 1 (2 години)
Тема: Операційні системи як основний компонент программного забезпечення. Функції операційних систем. Класифікація ПЗ комп'ютера. Системне ПЗ та операційні системи. Поняття про системне ПЗ. Призначення та функції операційної системи ПК.
Мета:
навчальна: розглянути поняття операційної системи та її функції, типи операційних систем, програмне забезпечення та їх класифікація, системне програмне забезпечення
розвивальна: розвиток пам’яті, уважності, розвивати логічне мислення; формувати вміння діяти за інструкцією, планувати свою діяльність, аналізувати i робити висновки;
виховна: формування інтересу до вивчення науки інформатики, навичок зібраності, уважності, інформаційну культуру студентів, уважність, акуратність, дисциплінованість.
План лекції
Рекомендована література
Операційна система - це програмний комплекс, що забезпечує керування апаратними засобами комп'ютера, обчислювальними процесами, а також надає середовище для виконання прикладних програм.
Ресурс – всякий об’єкт, який може бути розподіленим між обчислюваль-ними процесами. Апаратні ресурси комп'ютера: процесори, пам'ять, пристрої. Програмні ресурси: засоби керування пристроями та файлами; бібліотеки програм; засоби керування задачами.
Файл - іменований впорядкований набір даних на пристрої зберігання інформації; операційна система забезпечує організацію файлів в Файловій системи. Файлова система - набір файлів, організованих за наперед визначеними правилами. Якщо організація файлів в файлову систему відбувається з використанням каталогів, то така файлова система називається ієрархічною.
Програма - файл, що містить набір інструкцій для виконання. В якості виконавця інструкцій програми можуть виступати: центральний процесор; інтерпретатор - інша програма, яка забезпечує розпізнавання і виконання інструкцій (в окремих випадках інтерпретатор також називають віртуальною машиною). Обчислювальний процес (або задача) - виконання послідовності дій, яка задається програмою. Команда - ім'я, яке використовує користувач ОС або інша програма для виконання вказаної програми (може збігатися з іменем фай-лу програми) або поіменованої дії (вбудованої команди). Командний інтерпре-татор - середовище, яке забезпечує інтерфейс з користувачем і виконання ко-манд. Мова сценаріїв або скриптів (англ. scripting language) - високорівнева мова програмування для написання сценаріїв - коротких описів дій, викону-ваних системою. Сценарій - це програма, що має справу з готовими програм-ними компонентами.
Драйвер - програма, що забезпечує фізичну взаємодію ОС з фізичним пристроєм. Драйвер обробляє переривання пристрою, підтримує чергу запитів і перетворює запити в команди управління пристроєм.
Типи операційних систем. Відносно свого призначення, операційні системи бувають: універсальні (для загального використання); спеціальні (для розв'язання спеціальних задач); спеціалізовані (виконуються на спеціальному обладнанні); однозадачні (в окремий момент часу можуть виконувати лише одну задачу); багатозадачні (в окремий момент часу здатні виконувати більше однієї задачі); однокористувацькі (в системі відсутні механізми обмеження доступу до файлів та на використання ресурсів системи); багатокористувацькі (система впроваджує поняття "власник файлу" та забезпечує механізми обмеження на використання ресурсів системи(квоти)), всі багатокористувацькі операційні системи також є багатозадачними; реального часу (система підтримує механізми виконання задач реального часу, тобто такі, для яких будь які операції завжди виконуються за наперед передбачуваний і незмінний при наступних виконаннях час).
Відносно способу встановлення (інсталяції) операційної системи, опера-ційні системи бувають: вбудовані (такі, що зберігаються в енергонезалежній пам'яті обчислювальної машини або пристрою без можливості заміни в процесі експлуатації обладнання); невбудовані (такі, що інсталюються на один з пристроїв зберігання інформації обчислювальної машини з можливістю подальшої заміни в процесі експлуатації).
Відносно відповідності стандартам операційні системи бувають: стандартні (відповідають одному з загальноприйнятих відкритих стандартів, найчастіше POSIX); нестандартні (в тому числі такі, що розробляються відпо-відно до корпоративних стандартів). Відносно можливостей розширення опе-раційні системи бувають: закриті (не дозволяють розширення функціональ-ності ОС); відкриті (будуються за технологіями, що забезпечують можливості розширення функціональності ОС).
Відносно можливостей внесення змін до вихідного коду операційні системи бувають: відкриті (англ. open source) з відкритим програмним кодом; власницькі (англ. proprietary) комерційні з закритим кодом.
Функції та компоненти ОС
Функції: розподіл ресурсів обчислювальної системи, ввід/вивід інформації та обмін даними між різними компонентами системи, діагностика не справностей, планування використання ресурсів системи.
Компоненти ОС: підсистеми управління процесами, підсистеми управ-ління пам'яттю, підсистеми управління файлами і зовнішніми пристроями, під-системи захисту даних і адміністрування, інтерфейс прикладного програмував-ня, підсистеми інтерфейсу користувача.
Задачі підсистеми керування ресурсами: планування ресурсу, задоволення запитів на ресурси, відслідковування стану ресурсу, облік використання ресурсу, вирішення конфліктів між процесами.
Задачі підсистеми управління пам'яттю: Відстежування вільної та використаної пам'яті, Виділення пам'яті процесам, захист пам'яті, Звільнення пам'яті при завершенні процесів, Витіснення процесів з оперативної пам'яті на диск і повернення їх назад, Налаштування адрес програми на конкретну область фізичної пам'яті.
Завдання підсистеми управління файлами і зовнішніми пристроями: Віртуалізація окремих наборів даних, управління конкретним типом перифе-рійних зовнішніх пристроїв, перетворення символьних імен файлів у фізичні адреси, передача даних між зовнішніми пристроями і оперативною пам'яттю, реалізація концепції файлового доступу для обміну даними з зовнішніми пристроями.
Основні задачі захисту даних і адміністрування: захист від збоїв і відмов апаратури, захист від несанкціонованого доступу, аудит (протоколювання, auditing) фіксація в системному журналі подій, пов'язаних з доступом до захи-щається системних ресурсів. Засоби обліку і спостереження забезпечують можливість виявити і зафіксувати важливі події, пов'язані з безпекою, або будь-які спроби створити, одержати доступ або видалити системні ресурси. Аудит використовується для того, щоб визначати навіть невдалі спроби «злому» системи.
Протоколювання/аудит традиційно були останнім рубежем оборони, що забезпечує аналіз наслідків порушення інформаційної безпеки і виявлення зловмисників. Такий аудит можна назвати пасивним. У сучасний арсенал захисних засобів увійшов активний аудит, спрямований на виявлення підозрі-лих дій в реальному масштабі часу. Активний аудит включає два види дій: виявлення нетипової поведінки (користувачів, програм або апаратури); виявлення початку зловмисної активності.
До складу операційної системи входять: ядро операційної системи, що забезпечує розподіл і управління ресурсами обчислювальної системи; базовий набір системного програмного забезпечення, системні бібліотеки та програми обслуговування. Ядро системи - це набір функцій, структур даних і окремих програмних модулів, які завантажуються в пам'ять комп'ютера при заванта-женні операційної системи і забезпечують три типи системних сервісів: управ-ління введенням-виведенням інформації (підсистема вводу-виводу ядра ОС); управління оперативною пам'яттю (підсистема управління оперативною пам'яттю ядра ОС); управління процесами (підсистема управління процесами ядра ОС). Кожна з цих підсистем представлена відповідними функціями ядра системи.
Ядро - центральна частина операційної системи (ОС), що забезпечує додаткам координований доступ до ресурсів комп'ютера, таких як процесорний час, пам'ять і зовнішнє апаратне забезпечення. Також зазвичай ядро надає сервіси файлової системи та мережевих протоколів. Як основний елемент ОС, ядро являє собою найбільш низький рівень абстракції для доступу програм до ресурсів системи, необхідними для їх роботи. Як правило, ядро надає такий доступ виконуваним процесам відповідних додатків за рахунок використання механіз-мів взаємодії між процесами й звернення додатків до системних викликів ОС. Основною характерною ознакою ядра є те, що воно виконується у привілейованому режимі.
Розглянемо особливості цього режиму. Для забезпечення ефективного керування ресурсами комп'ютера ОС повинна мати певні привілеї щодо прикладних програм. Треба, щоб прикладні програми не втручалися в роботу ОС, а ОС могла втрутитися в роботу будь-якої програми, наприклад для пере-микання задачі або розв'язання конфлікту через ресурси. Для реалізації таких привілеїв потрібна апаратна підтримка: процесор має підтримувати принаймні два режими роботи - привілейований (захищений режим, режим ядра, kernel mode) і режим користувача (user mode). У режимі користувача недопустимі команди, які є критичними для роботи системи (перемикання задач, звертання до пам'яті за заданими межами, доступ до пристроїв введення-виведення тощо). Функції ядра операційної системи можуть бути виконані в наслідок виконання в прикладних програмах спеціальних функцій - системних викликів. Призначення системного виклику полягає в тому, що прикладні програми невзмозі самотужки визначити, за якими адресами знаходяться функції ядра. Системний виклик в один з машиннозалежних способів реалізує механізм отримання адрес функцій ядра та передачу в ці функції необхідних параметрів системного виклику, а також отримання результату системного виклику. Найчастіше системні виклики забезпечуються через систему переривань, зав-дяки чому адреса функції ядра не тільки обраховується апаратно (в процесі обробки переривання), але й забезпечується захист інформаційних ресурсів ядра. Системні виклики найчастіше мають синтаксис функції мови програму-вання, на якій написано ядро ОС.
Графічний інтерфейс користувача - інтерфейс між комп'ютером і його користувачем, що використовує піктограми, меню, і вказівний засіб для вибору функцій та виконання команд. Зазвичай, можливе відкриття більше, ніж одного вікна на одному екрані. ГІК - система засобів для взаємодії користувача з комп'ютером, заснована на представленні всіх доступних користувачеві системних об'єктів і функцій у вигляді графічних компонентів екрану (вікон, значків, меню, кнопок, списків і т. п.). При цьому, на відміну від інтерфейсу командного рядка, користувач має довільний доступ (за допомогою клавіатури або пристрою координатного введення типу «миша») до всіх видимих екранних об'єктів.
До функції обслуговування файлової структури відносяться наступні операції, які проходять під керівництвом операційної системи.
Файл - це іменована послідовність байтів довільної довжини. Оскільки із цього визначення випадає, що файл може мати нульову довжину, то фактично створення файлу складається з присвоєння йому імені і регистрації його в файловій системі - це одна із функцій операційної системи.
Системне програмне забезпечення (system software) призначено для обслуговування власних потреб комп'ютера – забезпечення його працездатності і виконання його внутрішніх функцій, а також для створення передумов для виконання прикладного програмного забезпечення.
Приклади системного програмного забезпечення:
Утиліта - сервісна програма, що допомагає управляти файлами, одержу-вати інформацію про комп'ютер, діагностувати й усувати проблеми, забезпе-чувати ефективну роботу системи. До них можна віднести наступні види:
Комп'ютери відрізняються від механічних пристроїв і електричних рахункових приладів тим, що працюють після закладених в них програм. Програма – це впорядкована послідовність команд. На перший погляд може здатися, що якщо людина працює з комп'ютером, то комп'ютер працює не автоматично, а під управлінням людини і програми тут ні причому. Але це зовсім не так. З першою і до останньої хвилини в комп'ютері автоматично працює безліч програм, завдяки яким і забезпечується спілкування з людиною. Ці програми відповідають за все, що ми бачимо на екрані, і за все, що ми можемо зробити. Взаємодія між комп'ютером і людиною за допомогою програм називається програмним інтерфейсом.
Програмне і апаратне забезпечення в комп'ютері працює в нерозривному зв'язку і в безперервній взаємодії. Склад програмного забезпечення обчислювальної системи називається програмною конфігурацією. Між програмами, як і меду фізичними вузлами і блоками існує взаємозв'язок – багато програм працюють, спираючись на інші програми нижчого рівня, тобто, ми можемо говорити про міжпрограмний інтерфейс. Рівні програмного забезпечення є пірамідальною конструкцією. Кожен наступний рівень спирається на програмне забезпечення попереднього рівня. Кожен вищерозміщений рівень підвищує функціональні можливості всієї системи.
Базовий рівень. Найнижчий рівень програмного забезпечення. Воно відповідає за взаємодію з базовими апаратними засобами. Як правило, воно зберігається в спеціальних схемах ПЗП.
Системний рівень – перехідною. Програми цього рівня забезпечують взаємодію інших програм комп'ютерної системи з програмами базового рівня і безпосередньо з апаратним забезпеченням. Конкретні програми, що відповідають за взаємодію з конкретним пристроєм, називаються драйвером пристрою – вони входять до складу програмного забезпечення системного рівня. Інший клас програм системного рівня відповідає за взаємодію з користувачем. Ці програмні засоби називають засобами забезпечення призначеного для користувача інтерфейсу. Сукупність програмного забезпечення системного рівня утворюють ядро операційної системи комп'ютера. Наявність ядра операційної системи – неодмінна умова для можливості практичної роботи людини з обчислювальною технікою.
Службовий рівень. Програмне забезпечення цього рівня взаємодіє як з програмами базового рівня, так і з програмами систем багато рівня. Основне призначення службових програм (їх налаштуванню комп'ютерної системи. У багатьох випадках вони використовуються для розширення та поліпшення функцій системних програм.
Прикладний рівень. Програмним забезпеченням прикладного рівня є комплекс прикладних програм, за допомогою яких на даному робочому місці виконуються конкретні завдання. Спектр цих завдань незвично широкий: текстові редактори; текстові процесори; графічні редактори; системи управління базами даних; електронні таблиці і так далі.
Питання для самоконтролю.