- •Змістовий модуль 1
- •Не 1.1. Структура системного програмного забезпечення Структура спз.
- •Місце ос в спз.
- •Поняття операційного середовища.
- •Операційні системи.
- •Системи керування файлами.
- •Інтерфейсні оболонки для взаємодії користувача з ос і програмні середовища.
- •Системи програмування.
- •Утиліти.
- •Основні функції ос.
- •Не 1.1. Базові поняття сучасних операційних систем Базові поняття операційної системи Linux. Файли, каталоги, робота з файлами. Права доступу до файлів і каталогів.Інструментарій.
- •Програми-фільтри. (немає) Командний інтерпретатор.
- •Змістовий модуль 2
- •Не 2.1. Загальна схема роботи компіляторів Визначення транслятора, компілятора, інтерпретатора.
- •Компілятор.
- •Різниця між інтерпретаторами і трансляторами.
- •Етапи трансляції.
- •Поняття проходу. Багатопрохідні і однопрохідні компілятори.
- •Не 2.2. Таблиці ідентифікаторів. Призначення та особливості побудови таблиць ідентифікаторів.
- •Найпростіші методики побудови таблиць ідентифікаторів.
- •Побудова таблиць ідентифікаторів методом бінарного дерева.
- •Не 2.3 Хеш-функції та хеш–адресація. Принципи роботи хеш-функцій.
- •Побудова таблиць ідентифікаторів на основі хеш-функцій.
- •Побудова таблиць ідентифікаторів методом ланцюжка.
- •Комбіновані способи побудови таблиць ідентифікаторів.
- •Змістовий модуль 3. Не 3.1.Кінцеві автомати. Визначення.
- •Детерміновані і недетерміновані кінцеві автомати.
- •Модель ка.
- •Розпізнавачі і перетворювачі. Визначення. Загальні поняття.
- •Класифікація розпізнавачів.
- •Не 3.2.Формальні мови та граматики. Способи завдання мов.
- •Операції над ланцюжками символів.(немає) Поняття мови.
- •Визначення формальної мови.
- •Визначення грамматики.
- •Класифікація граматик.
- •Способи задання схем грамтик Символічна, форма Наура-Бекуса, ітераційна форма й синтаксичні діаграми.
- •Чотири типи граматик по Хомському.
- •Правила побудови граматики із ланцюжка символів. (немає)
- •Змістовий модуль 4.
- •Не 4.1 Лексичні аналізатори (сканери).
- •Принципи побудови сканерів.
- •Призначення лексичного аналізатору.
- •Принципи побудови лексичних аналізаторів.
- •Граф кінцевого детермінованого автомата, що розпізнає граматику цілих чисел мови Сі(Немає) не 4.2.Синтаксичний та семантичний аналіз. Синтаксично-керований переклад.
- •Основні принципи роботи синтаксичних аналізаторів.
- •Дерево розбору. Перетворення дерева розбору в дерево операцій.
- •Призначення семантичного аналізу.
- •Етапи семантичного аналізу.
- •Ідентифікація лексичних одиниць мов програмування.
- •Розподіл пам’яті.
- •Не 4.3. Способи внутрішнього представлення програм Зв'язані облікові структури, що представляють синтаксичні дерева.
- •Багатоадресний код з явно іменованим результатом (тетради).
- •Багатоадресний код з неявно іменованим результатом (тріади).
- •Обернений (постфиксна) польський запис операцій.
- •Алгоритм Дейкстри.
- •Асемблерний код або машинні команди.
- •Розбір арифметичного виразу. Алгоритм Рутисхаузера.
- •Не 4.4 Генерація коду. Методи генерації коду.
- •Загальні принципи генерації коду.
- •Синтаксично керований переклад.
- •Змістовий модуль 5
- •Не 5.1. Керування процесами та ресурсами. Поняття обчислювального процесу та ресурсу.
- •Класифікація ресурсів.
- •Загальна схема виділення ресурсу.
- •Однопрограмний і мультипрограмний режими.
- •Основні риси мультипрограмного режиму.
- •Обчислювальні процеси.
- •Діаграма станів процесу.
- •Реалізація поняття послідовного процессу в ос.
- •Процеси і треди. (немає) Блок керування процесом.
- •Процеси в ос unix.
- •Події (переривання) - рушійна сила, що змінює стан процесів.
- •Механізм обробки переривань.
- •Функції механізму переривань.
- •Групи переривань.
- •Розподіл переривань по рівнях пріоритету.
- •Дисципліни обслуговування переривань.
- •Обробка переривань за участю супервізорів ос.
- •Не 5.2. Планування процесів та диспетчеризація задач. Функції ос, пов’язані з керуванням задач.
- •Організація черг процесів та ресурсів.
- •Priority queuing - (pq)
- •Стратегії планування.
- •Якість диспетчеризації та гарантії обслуговування.(Немає)
- •Безпріоритетні до: лінійні та циклічні.
- •Пріоритетні до: до з фіксованим пріоритетом та до з абсолютним пріоритетом.
- •Адаптивні до. (Немає) Визначення середнього часу знаходження заявки в системі. (Немає) Недоліки до з фіксованим пріоритетом.
- •Динамічне планування (диспетчеризація). (Немає) Диспетчеризація задач з використанням динамічних пріоритетів. Переваги і недоліки.
- •Критерії ефективності обчислювального процесу. (Немає) Методи підвищення продуктивності системи для багатопроцесорних систем.
- •Механізм динамічних пріоритетів в ос unix.
- •Змістовий модуль 6
- •Не 6.4. Керування пам’яттю. Пам'ять і відображення, віртуальний адресний простір.
- •Простий безперервний розподіл і розподіл з перекриттям (оверлейні структури).
- •Розподіл статичними і динамічними розділами.
- •Розділи з фіксованими границями. Розділи з рухливими границями.
- •Виділення пам'яті під новий розділ: перша придатна ділянка; сама придатна ділянка; сама невідповідна ділянка.
- •Сегментна, сторінкова і сегментно-сторінкова організація пам'яті. Сегментний спосіб організації віртуальної пам'яті.
- •Дисципліни заміщення: fifo; lru (1еаst recently used,); lfu (1еаst frequently used); random.
- •Сторінковий спосіб організації віртуальної пам'яті.
- •Сегментно-сторінковий спосіб організації віртуальної пам'яті.
- •Змістовий модуль 7
- •Не 7.1. Ос однопроцесорних кс. Класифікація ос.
- •Режими організації обчислювального процесу. (Немає) Основні принципи побудови операційних систем.
- •Принцип модульності.
- •Принцип функціональної вибірковості.
- •Принцип генерування ос.
- •Принцип відкритої і нарощуваний ос.
- •Принцип мобільності.
- •Принцип забезпечення безпеки обчислень.
Змістовий модуль 1
Сучасні операційні системи. Сімейство операційних систем UNIX
Не 1.1. Структура системного програмного забезпечення Структура спз.
System Software – означає програми та комплекси програм, які є спільними для всіх, хто використовує технічні засоби комп’ютера і які застосовуються, як для автоматизації розробки (створення) нових програм, так і для організації виконання існуючих програм. З цих позицій системне програмне забезпечення (СПЗ ) може бути розділене на такі групи:
1. Операційні системи.
2. Системи програмування.
3. Утиліти.
Під ОСзвичайно розуміють комплекс керуючих та обробляючих програм, який з одного боку виступає як інтерфейс між апаратурою комп’ютера та користувачем з його задачами, а з другого боку – призначений для найбільш ефективного використання ресурсів комп’ютера (або ширше – обчислювано системи) та організації надійних обчислень.
Місце ос в спз.
Під ОСзвичайно розуміють комплекс керуючих та обробляючих програм, який з одного боку виступає як інтерфейс між апаратурою комп’ютера та користувачем з його задачами, а з другого боку – призначений для найбільш ефективного використання ресурсів комп’ютера (або ширше – обчислювано системи) та організації надійних обчислень.
Довільний з компонентів прикладного програмування обов’язково працює під керуванням ОС. Жодна з компонент програмного забезпечення, за виключенням ОС не має безпосереднього доступу до апаратури комп’ютера. Навіть користувачі взаємодіють із своїми програмами через інтерфейс ОС. Довільні команди, перш ніж попасти у прикладу програму, спочатку проходять через ОС.
Поняття операційного середовища.
Ряд ОС можуть організовувати виконання програм, створених для інших ОС. Наприклад, в OS/2 можна виконувати як програми, створені для самої OS/2, так і програми, призначені для виконання в середовищі MS-DOS і Windows 3.x. Відповідна операційна середовище організовується в ОС в рамках окремої ВМ. Аналогічно, в системі Linux можна створити умови для виконання деяких програм, написаних для Windows 95/98. Певними можливостями виконання програм, створених для іншого операційного середовища, володіє і Windows NT. Ця система дозволяє виконувати деякі програми, створені для MS-DOS, OS/2 1.x, Windows 3.x. Правда, в своєму останньому сімействі ОС Windows XP розробники вирішили відмовитися від підтримки можливості виконання DOS-програм.
Нарешті, до цього класу системного програмного забезпечення слід віднести і емулятори, що дозволяють змоделювати в одній ОС яку-небудь іншу машину або ОС. Так, відома система емуляції WMWARE, яка дозволяє запустити в середовищі Linux будь-яку іншу ОС, наприклад Windows. Можна, навпаки, створити емулятор, що працює в середовищі Windows, який дозволить змоделювати комп'ютер, що працює під управлінням будь-якої ОС, у тому числі і під Linux.
Таким чином, термін операційне середовище означає відповідний інтерфейс, необхідний програмам для звернення до ОС з метою одержати певний сервіс - виконати операцію в/в, одержати або звільнити ділянку пам'яті і т.д.
Операційні системи.
Операці́йна систе́ма — це базовий комплекс програмного забезпечення, що виконує управління апаратним забезпеченням комп'ютера або віртуальної машини; забезпечує керування обчислювальним процесом і організує взаємодію з користувачем.
Операційна система (ОС) - це програма, що забезпечує можливість раціонального використання устаткування комп'ютера зручним для користувача образом.
Операційна система як віртуальна машина
При розробці ОС широко застосовується абстрагування, що є важливим методом спрощення й дозволяє сконцентруватися на взаємодії високорівневих компонентів системи, ігноруючи деталі їхньої реалізації. У цьому змісті ОС являє собою інтерфейс між користувачем і комп'ютером.
Архітектура більшості комп'ютерів на рівні машинних команд дуже незручна для використання прикладними програмами. Наприклад, робота з диском припускає знання внутрішнього пристрою його електронного компонента – контролера для уведення команд обертання диска, пошуку й форматування доріжок, читання й записи секторів і т.д. Ясно, що середній програміст не в змозі враховувати всі особливості роботи встаткування (у сучасній термінології – займатися розробкою драйверів пристроїв), а повинен мати просту високорівневу абстракцію, скажемо представляючи інформаційний простір диска як набір файлів. Файл можна відкривати для читання або запису, використати для одержання або скидання інформації, а потім закривати. Це концептуально простіше, ніж піклуватися про деталі переміщення головок дисків або організації роботи мотора. Аналогічним образом, за допомогою простих й ясних абстракцій, ховаються від програміста всі непотрібні подробиці організації переривань, роботи таймера, керування пам'яттю й т.д. Більше того, на сучасних обчислювальних комплексах можна створити ілюзію необмеженого розміру оперативної пам'яті й числа процесорів. Всім цим займається операційна система. Таким чином, операційна система представляється користувачеві віртуальною машиною, з якої простіше мати справу, чим безпосередньо з устаткуванням комп'ютера.
Операційна система як менеджер ресурсів
Операційна система призначена для керування всіма частинами досить складної архітектури комп'ютера. Представимо, приміром, що відбудеться, якщо кілька програм, що працюють на одному комп'ютері, будуть намагатися одночасно здійснювати вивід на принтер. Ми одержали б мішанину рядків і сторінок, виведених різними програмами. Операційна система запобігає такого роду хаос за рахунок буферізації інформації, призначеної для друку на диску й організації черги на друк. Для багатокористувацьких комп'ютерів необхідність керування ресурсами і їхнього захисту ще більш очевидна. Отже, операційна система, як менеджер ресурсів, здійснює впорядкований і контрольований розподіл процесорів, пам'яті й інших ресурсів між різними програмами.
Операційна система як захисник користувачів і програм
Якщо обчислювальна система допускає спільну роботу декількох користувачів, то виникає проблема організації їхньої безпечної діяльності. Необхідно забезпечити схоронність інформації на диску, щоб ніхто не міг видалити або зашкодити чужі файли. Не можна дозволити програмам одних користувачів довільно втручатися в роботу програм інших користувачів. Потрібно припиняти спроби несанкціонованого використання обчислювальної системи. Всю цю діяльність здійснює операційна система як організатор безпечної роботи користувачів й їхніх програм. З такого погляду операційна система представляється системою безпеки держави, на яку покладені поліцейські й контррозвідницькі функції.
Операційна система як постійно функціонуюче ядро
Нарешті, можна дати й таке визначення: операційна система - це програма, що постійно працює на комп'ютері й взаємодіюча з усіма прикладними програмами. Здавалося б, це абсолютно правильне визначення, але, як ми побачимо далі, у багатьох сучасних операційних системах постійно працює на комп'ютері лише частина операційної системи, що прийнято називати її ядром.
Як ми бачимо, існує багато точок зору на те, що таке операційна система. Неможливо дати їй адекватне строге визначення. Нам простіше сказати не що є операційна система, а для чого вона потрібна й що вона робить.