- •Еволюція спз.
- •Призначення та склад операційних систем.
- •Системне програмування.
- •Загальна схема трансляції
- •Основні принципи розробки системного програмного забезпечення.
- •Умови зміни станів процесу (з Рис.1.)
- •Властивості та класифікація процесу.
- •Визначення ресурсу та класифікації.
- •2. Дисципліни диспетчеризації.
- •3. Алгоритми в диспетчеризації з витісненням та без.
- •4. Способи забезпечення гарантованого обслуговування процесів.
- •5. Критерії порівняння алгоритмів диспетчеризації.
- •6. Вплив планування на ефективність обчислювальних систем.
- •7. Використання динамічних пріоритетів.
- •2. Види задач синхронізації паралельних процесів.
- •3. Синхронізація за допомогою блокування пам’яті.
- •4. Алгоритм Деккера.
- •5. Команда “перевірка” та “встановлення”.
- •6. Використання семафорів для синхронізації та впорядкування паралельних процесів.
- •7. Монітороподібні засоби синхронізації паралельних процесів.
- •8. Поштові ящики.
- •9. Конвеєри.
- •10. Черги повідомлень.
- •Неперервний розподіл оперативної пам’яті.
- •Розподіл з перекриттям.
- •Статичний розподіл пам’яті.
- •Динамічний розподіл пам’яті.
- •Розділи пам’яті з фіксованими розмірами.
- •Розділи пам’яті зі змінними розмірами.
- •Сегментна схема організації віртуальної пам’яті.
- •Сторінкова схема організації віртуальної пам’яті.
- •Сегментно - сторінкова схема організації віртуальної пам’яті..
- •Тема 7. Архітектурні особливості мікропроцесорів Intel 80x86.
- •Мал. 3.1 Схема визначення фізичної адреси для процесора 8086.
- •2. Нові системні регістри мікропроцесорів і80x86.
- •Мал. 7.2 Основні системні регістри мікропроцесорів і80x86.
- •3. Підтримка сегментного способу організації віртуальної пам'яті.
- •Мал. 7.3 Дескриптор сегменту.
- •Мал. 7.4. Селектор сегменту.
- •Мал. 7.5 Сегмент стану задачі (tss).
- •Мал. 7.6 Процес отримання лінійної адреси команди.
- •4. Підтримка сторінкового способу організації віртуальної пам'яті.
- •Мал. 7.7 Дескриптор сторінки.
- •Мал. 7.8 Трансляція лінійної адреси в мікропроцесорах і80x86.
- •5. Режим віртуальних машин для виконання додатків реального режиму.
- •6. Захист адресного простору задач.
- •Якщо цільовий сегмент є сегментом стека, то правило перевірки має вид
- •7. Механізм шлюзів для передачі керування на сегменти коду з іншими рівнями привілеїв.
- •Мал. 7.9 Механізм шлюзів для переходу на другий рівень привілеїв.
- •Мал. 7.10 Перехід на сегмент більш привілейованого коду.
- •Мал. 7.11 Формат дескриптора шлюзу.
- •Тема 8. Організація системи переривань 32-розрядних мікропроцесорів i80х80.
- •2. Типи переривань.
- •4. Узагальнена процедура обробки переривання.
- •5. Робота системи переривань у захищеному режимі роботи процесора.
- •Обробка переривань у контексті поточної задачі.
- •7. Обробка переривань з переключенням на нову задачу.
- •Тема 9. Керування вводом/виводом даних.
- •2. Режими керування вводом/виводом.
- •3. Закріплення пристроїв, загальні пристрої вводу/виводу.
- •4. Основні системні таблиці вводу/виводу.
- •Синхронний і асинхронний ввід/вивід.
- •6. Кешування операцій вводу/виводу при роботі з накопичувачами на магнітних дисках.
- •Тема 10.Організація файлових систем.
- •Тема 11. Файлові системи fat, vfat, fat32, hpfs.
- •Тема 12.Файлова система ntfs (Mew Technology File System)
- •Можливості файлової системи ntfs по обмеженню доступу до файлів і каталогів.
- •Інтерфейс прикладного програмування арі.
- •Реалізація функцій арі на рівні операційної системи.
- •Реалізація функцій арі на рівні системи програмування.
- •Реалізація функцій арі за допомогою зовнішніх бібліотек.
- •Posix інтерфейс.
- •Віртуальна машина.
- •Типи та інтерфейс користувачів.
- •Команди та командний інтерпретатор.
- •Процеси та їх виконання.
- •Підсистема вводу/виводу.
- •Структура файлової системи.
- •Засоби захисту файлів і даних.
- •Сигнали і семафори.
- •Програмні канали та черги повідомлень.
- •Розділювана пам’ять та виклики віддалених процедур.
Призначення та склад операційних систем.
В залежності від режиму виконання запиту користувача, операційні системи поділяються на:
ОС пакетної обробки – це система, яка обробляє пакет завдань, які підготовлені одним або декількома користувачами. Пакет завдань поступає на обробку з периферійних пристроїв, взаємодія користувача зі своїм завданням під час обробки неможлива. Обчислювальні системи під керуванням ОС пакетної обробки можуть працювати в одно та багатопрограмних режимах.
ОС розподілу часу – забезпечують одночасне обслуговування багатьох користувачів, дозволяючи при цьому кожному з них взаємодіяти зі своїм завданням в режимі діалогу. Ефект одночасного обслуговування досягається розподілом процесорного часу та інших ресурсів обчислювальної системи між кількома обчислювальними процесами, які відповідають окремим завданням користувачів. ОС надає ресурс комп’ютера кожному обчислювальному процесу на певний невеликий проміжок часу (квант часу). Якщо обчислювальний процес не закінчив своє виконання до кінця свого певного кванту часу, його виконання переривається і він заноситься в чергу процесів віддавши ресурси ЕОМ іншому процесу. ОС розподілу часу працюють як правило, як правило, в багатопрограмному режимі.
ОС реального часу – повинні гарантувати виконання запитів користувачів за певний заданий відрізок часу. Запити в таких системах надходять як від користувачів, так і від зовнішніх пристроїв і при цьому швидкість виконання обчислювальних процесів повинна бути узгоджена зі швидкістю процесів, які виконуються поза обчислювальною системамою, що керує ними. Час відповіді на запит не повинен перевищувати певних заданих значень реального часу (сек., хв., год.). Необхідний час відповіді системи визначається властивостями об’єктів які вона обслуговує. Обчислювальні системи під керівництвом таких ОС, як правило, працюють у багатозадачному режимі.
Діалогові ОС – отримали широке розповсюдження для ПК. Їхньою метою є забезпечення зручної форми діалогу з користувачем. Для виконання частовиконуваних задач вони мають можливість пакетної обробки під керуванням діалогової ОС, коли може працювати в одному з 3-х вище перелічених режимів. Операційна система в загальному випадку складається з ядра та набору системних програм і даних. Ядро здійснює організацію взаємодій користувачів з обчислювальними системами, керування розподілів ресурсів та забезпечення необхідного режиму функціонування ЕОМ, завантаження і контроль виконання програм, обмін даними з периферійними пристроями та керування файлами. Системні програми обслуговують зовнішні пристрої, здійснюють безпосередні файлові операції, підготовку та ввід вхідної інформації, вивід результатів обчислень, а також зберігання і виконання програм.
Системне програмування.
Системне програмування – це сукупність засобів, яка забезпечує автоматизацію розробки та відлагодження програм і включає в себе: мови програмування; транслятори; бібліотеки підпрограм; компонувальники та відлагоджувальники програм.
Кожна ЕОМ має свою власну систему команд, яка називається мовою машинних команд. Обчислювальна система може виконувати програми, які записані тільки на цій мові. Мова машинних команд не придатна для програмування. Вона спрямована на процесор. Тому широке розповсюдження отримали мови програмування орієнтовані на програміста, які по відношенню до мови машинних команд розділяються на мови низького і високого рівнів.
Вхідна програма або вихідний модуль – це програма, яка написана на одній з мов програмування і складається з послідовних операторів.
Структура мов програмування:
машинна мова;
мова низького рівня (Assembler, Macro Assembler);
мова високого рівня (Pascal, Delphi, C++).
Мова Assembler відрізняється від машинної мови – заміною цифрових кодів машинних команд на відповідні буквені або буквено - цифрові позначення і можливістю використання символьних імен даних. При переводі на машинну мову кожен оператор, який визначає відповідну машинну команду замінює цифровим кодом цієї команди.
Мова Macro Assembler поряд з мнемонічними позначеннями (mul, add) множин команд допускають використання спеціальних макрокоманд, які не мають прямих аналогів в машинній мові. При перекладі на машинну мову оператор, який позначає макрокоманду, замінюється групою машинних команд.
Мови високого рівня дозволяють описувати більшість алгоритмів у зручній формі подібно до звичайного запису математичних дій, що зменшує трудомісткість програмування.
Програма, яка складена на мові програмування, що відрізняється від машинної, повинна бути перетворена у форму придатну для виконання ЕОМ, таке перетворення називається трансляцією.