- •Змістовий модуль 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. Сприймання від користувача (або від оператора системи) завдань або команд у вигляді директив (або команд) оператора, а також у вигляді вказівок від маніпуляторів (наприклад, миші) та їх обробка.
2. Завантаження, запуск, призупинення, зупинка програм.
Керування файловими системами та системами управління базами даних.
3. Забезпечення режиму мультипрограмування, тобто виконання двох та більше програм на одному процесорі.
4. Забезпечення функцій з організації та керування усіма операціями вводу/виводу.
5. Забезпечення виконання обмежень на час відповіді в режимі реального часу (для ОС відповідного типу).
6. Розподіл пам’яті (як основної, так і зовнішньої), та організація віртуальної пам’яті.
7. Планування та диспетчеризація задач у відповідності із заданими стратегією та дисципліною обслуговування.
8. Організація механізмів обміну повідомленнями і даними між програмами, що виконуються, а також захист одної програми від впливу інших.
9. Забезпечення роботи систем програмування.
Таким чином, ОС виконує функції керування обчислювальними процесами в комп’ютерній системі, розподіляє ресурси комп’ютерної системи між різними обчислювальними процесами і створює програмне середовище, в якому виконуються прикладні програми користувачів. Таке середовище називається операційним середовищемабоопераційним оточенням.
Не 1.1. Базові поняття сучасних операційних систем Базові поняття операційної системи Linux. Файли, каталоги, робота з файлами. Права доступу до файлів і каталогів.Інструментарій.
Одним з достоїнств ОС Unix є те, що система базується на невеликому числі понять; коротко їх розглянемо.
Віртуальна машина
Система Unix — багатокористувальницька. Кожному користувачу після реєстрації (входу в систему) дається віртуальний комп'ютер, у якому є всі необхідні ресурси: процесор (процесорний час виділяється на основі «карусельної» диспетчеризації (RR — round robin) і з використанням динамічних пріоритетів для того, щоб забезпечити рівність в обслуговуванні), пам'ять, пристрої, файли. Поточний стан такого віртуального комп'ютера, наданого користувачу, називається образом. Можна сказати, що процес — це виконання образа. Образ складається з:
образа пам'яті;
значень загальних регістрів процесора;
стану відкритих файлів;
поточного директорія (каталогу файлів) і іншої інформації.
Образ процесу під час його виконання розміщується в основній пам'яті. У старих версіях системи Unix образ міг бути вивантажений (откачан) на диск, якщо якому-небудь більш пріоритетному процесу потрібно місце в основній пам'яті.
У сучасних реалізаціях, що підтримують, як правило, сторінковий механізм віртуальної пам'яті, насамперед вивантажуються невикористовувані сторінки.
Образ пам'яті поділяється на три логічних сегменти:
сегмент реєнтерабельних процедур (починається з нульової адреси у віртуальному адресному просторі процесу);
сегмент даних (розташовується за сегментом процедур і може рости убік великих адрес);
сегмент стека (починається зі старшої адреси і росте убік молодших адрес у міру занесення в нього інформації при викликах підпрограм і при перериваннях).
Користувач
Із самого початку ОС Unix розроблялась як інтерактивна багатокористувальницька система. Іншими словами,Unix призначений для мультитерминальної роботи. Щоб почати працювати, людина повинна «увійти» у систему, ввівши з вільного термінала своє облікове ім'я (ассоunt name) і, можливо, пароль. Людина, зареєстрована в облікових файлах системи і, отже, що має обліковий запис, називається зареєстрованим користувачем системи. Реєстрацію нових користувачів звичайно виконує адміністратор системи. Користувач не може змінити своє облікове ім'я, але може установити і/чи змінити свій пароль. Паролі зберігаються в окремому файлі в закодованому виді.
Усі користувачі ОС Unix явно або неявно працюють з файлами. Файлова система ОСUnix має деревоподібну структуру. Проміжними вузлами дерева є каталоги з посиланнями на інші каталоги або файли, а листя дерева відповідають файлам або порожнім каталогам.
Кожному зареєстрованому користувачу відповідає деякий каталог файлової системи, що називається «домашнім» каталогом користувача. При вході в систему користувач одержує необмежений доступ до свого домашнього каталогу і всіх каталогів і файлів, що містяться в ньому. Користувач може створювати, видаляти і модифікувати каталоги і файли, що містяться в домашньому каталозі. Потенційно можливий доступ і до всіх інших файлів, однак він може бути обмежений, якщо користувач не має достатніх привілеїв.
Інтерфейс користувача
Традиційний спосіб взаємодії користувача із системою Unix ґрунтується на використанні командних мов. Після входу користувача в систему для нього запускається один з командних інтерпретаторів. Звичайно в системі підтримується декілька командних інтерпретаторів зі схожими командними мовами, але які розрізняються своїми можливостями. Загальна назва для будь-якого командного інтерпретатора ОСUnix — shell (оболонка), оскільки будь-який інтерпретатор представляє зовнішнє оточення ядра системи.
Викликаний командний інтерпретатор видає запрошення на введення користувачем командного рядка, що може містити просту команду, конвеєр команд або послідовність команд. Після виконання чергового командного рядка і видачі на екран термінала або у файл відповідних результатів, shell знову видає запрошення на введення командного рядка, і так доти, поки користувач не завершить свій сеанс роботи і не вийде із системи. Командні мови, використовувані в ОС Unix, досить прості, щоб нові користувачі могли швидко почати працювати, і досить могутні, щоб можна було використовувати їх для написання складних програм. Остання можливість спирається на механізм командних файлів (shell scripts), що можуть містити довільні послідовності командних рядків. При вказівці імені командного файлу замість чергової команди інтерпретатор читає файл рядок за рядком і послідовно інтерпретує команди.
Привілейований користувач
Ядро ОС Unix ідентифікує кожного користувача по його ідентифікаторі (UID — user identifier), унікальному цілому значенню, що привласнюється користувачу при реєстрації в системі. Крім того, кожен користувач відноситься до деякої групи користувачів, що також ідентифікується деяким цілим значенням (GID — group identifier). Значення UID і GID для кожного зареєстрованого користувача зберігаються в облікових файлах системи і приписуються процесу, у якому виконується командний інтерпретатор, запущений при вході користувача в систему. Ці значення успадковуються кожним новим процесом, запущеним від імені даного користувача, і використовуються ядром системи для контролю правомочності доступу до файлів, виконання програм і т.д.
Очевидно, що адміністратор системи, що теж є зареєстрованим користувачем, повинний мати більші можливості, чим звичайні користувачі. В ОС Unix ця задача вирішується шляхом виділення єдиного нульового значення UID. Користувач з таким UID називається суперкористувачем або root. Він має необмежені права на доступ до будь-якого файлу і на виконання будь-якої програми. Крім того, такий користувач має можливість повного контролю над системою. Він може зупинити її і навіть зруйнувати.
Ще однією важливою відмінністю суперкористувача від звичайного користувача ОС Unix є те, що на суперкористувача не поширюються обмеження на використовувані ресурси. Для звичайних користувачів установлюються такі обмеження, як максимальний розмір файлу, максимальне число сегментів поділюваної пам'яті, максимально припустиме простір на диску і т.д. Суперкористувач може змінювати ці обмеження для інших користувачів, але на нього вони не діють.