
- •Тема 1: Основні поняття обчислювальних систем Призначення та склад системного програмного забезпечення
- •Основні концепції операційних систем
- •Типи операційних систем
- •Основні етапи розвитку операційних систем
- •Функціональні компоненти операційних систем
- •Керування процесами й потоками
- •Керування ресурсами
- •Керування введенням-виведенням
- •Керування файлами та файлові системи
- •Мережна підтримка
- •Тема 2: Архітектура операційних систем Основні принципи побудови операційних систем
- •Принцип модульності
- •Принцип функціональної вибірковості
- •Принцип здатності до генерування
- •Принцип функціональної надмірності
- •Принцип віртуальності
- •Принцип незалежності програм від зовнішніх пристроїв
- •Принцип сумісності
- •Принцип відкритої і нарощуваної ос
- •Принцип мобільності (переносимості)
- •Принцип забезпечення безпеки обчислень
- •Базові поняття архітектури операційних систем
- •Ядро операційної системи
- •Монолітні системи
- •Багаторівневі системи
- •Системи з мікроядром
- •Концепція віртуальних машин
- •Засоби апаратної підтримки операційних систем
- •Інтерфейс прикладного програмування
- •Варіанти реалізації api
- •Особливості архітектури unix і Linux
- •Особливості побудови ос Linux
- •Особливості архітектури Windows xp
- •Компоненти режиму ядра
- •Компоненти режиму користувача
- •Об’єктна архітектура Windows xp
- •Тема 3: Процеси та потоки
- •Базові поняття процесів та потоків
- •Блок керування процесом
- •Операції над процесами
- •Обробка переривань
- •Алгоритми планування процесів
- •Витісняючі та невитісняючі алгоритми планування
- •Нитки, потоки (Thread)
- •Керування процесорами
- •Планування з переключення та без переключення
- •Лекція 4: Ядро операційної системи
- •Основні функції ядра
- •Асинхронні паралельні процеси
- •Взаємо-виключення
- •Семафори
- •Кільцевий буфер
- •Конвеєр (програмний канал)
- •Черги повідомлень (Queue)
- •Лекція 5. Керування ресурсами
- •Керування пам’яттю
- •Ієрархія пам’яті
- •Розподіл пам’яті
- •Зв’язний розподіл пам’яті для одного користувача
- •Мультипрограмування з фіксованими розділами
- •Мультипрограмування із змінними розділами
- •Боротьба з фрагментацією
- •Стратегії розміщення інформації в пам’яті
- •Системи з розподілом часу. Сторінкова організація пам’яті. Концепція віртуальної (уявної) пам’яті.
- •Принцип кешування даних
- •Лекція 6. Керування даними Файлова система
- •Функції файлової системи
- •Ієрархія даних
- •Об’єднання в блоки та буферизація
- •Організація файлів
- •Методи доступу
- •Характеристики файлів
- •Файлова система
- •Виділення та звільнення місця в пам’яті
- •Зв’язаний розподіл пам’яті
- •Незв’язаний розподіл пам’яті
- •1) Розподіл за допомогою списків секторів
- •2) Поблочний розподіл
- •Дескриптор файлу (file descriptor)
- •Матриця керування доступом
- •Керування доступом в залежності від класів користувачів
- •Копіювання та відновлення інформації
- •Планування роботи з дисковою пам’яттю
- •Призначення планування
- •Цільові характеристики принципів планування
- •Оптимізація пошуку циліндру
- •Оптимізація за часом очікування записів
- •Архітектура сучасних файлових систем
- •Лекція 8. Основи організації ms-dos
- •Будова та функції основних складових дос
- •Керування пам’яттю
- •Відображена пам’ять
- •Розширена пам’ять
- •Висока пам’ять
- •Верхня пам’ять
- •Драйвери верхньої та розширеної пам’яті
- •Завантажувані модулі com та exe – файли
- •Логічна структура диску в ms-dos
- •Формат елементів таблиці розділів
- •Запис завантаження (boot)
- •Використання boot-сектору
- •Визначення формату fat
- •Формат fat
- •Файли та каталоги
- •Недоліки ms-dos
- •Переваги які надає користувачам Windows
- •Windows як операційна оболонка
- •Обмін даними в Windows
- •Зв’язування чи вбудовування
- •Первинність повідомлень: механізм повідомлень
- •Незалежна (preemptive) багатозадачність
- •Взаємодія 32– та 16–розрядних кодів
- •Робота з 16–розрядними продуктами
- •Робота з dos–продуктами
- •Робота 32–розрядних Windows–продуктів
- •Вдосконалення розподілу системних ресурсів
- •Vcache – 32–розрядний дисковий кеш
- •Варіанти модифікацій ос Windows xp
- •Нові характеристики реалізовані в Windows xp
- •Продуктивність
- •Лекція 8. Ос unix
- •Ядро ос unix
- •Генерування ос
- •Процеси
- •Початкове завантаження. Процеси 0 та 1
- •Файлова система unix
- •Будова файлової системи unix
- •Каталоги
- •Тема 1: Основні поняття обчислювальних систем 1
- •Тема 2: Архітектура операційних систем 9
- •Тема 3: Процеси та потоки 25
Недоліки ms-dos
Творці MS-DOS в певній мірі пішли шляхом найменшого опору, створивши ОС, яка пропонує мінімальне операційне оточення для програм користувача. Як правило, програми, які працюють в MS-DOS, крім файлової системи, не використовують практично нічого з стандартного СПЗ.
За думкою творців MS-DOS програміст, який хоче вивести, наприклад, символ на екран монітору, повинен скористатися або системою вводу-виводу консолі оператора DOS або відповідною функцією BIOS. Те ж відноситься до програмування всієї іншої апаратури.
Але відомо, що на практиці функції DOS та BIOS часто ігноруються (обходяться) і пристрої програмуються напряму. Практично всі графічні програми працюють безпосередньо з відео пам’яттю, часто самостійно підтримують клавіатуру і інше.
Винятком є файлова система MS-DOS, яка також іноді ігнорується (наприклад, при організації захисту від копіювання).
Такий, на перший погляд дивний підхід обумовлено декількома об’єктивними причинами. Найбільш суттєвою є та, що відповідне програмне забезпечення MS-DOS недостатньо ефективне і не реалізує всі потенційні можливості комп’ютера. Так вивід пікселу на екран за допомогою відповідної функції BIOS відбувається на два порядки повільніше, ніж при безпосередньому звертанні до відео-пам’яті. Тому обхід MS-DOS дуже поширений. На це впливає також повна відкритість IBM PC, що дає можливість реалізувати програмісту свої задуми.
Але звідси великий мінус – значні терміни розробки програмних продуктів. Для комерційних програм найважливіший фактор – час розробки та програмно-апаратна сумісність.
Етапи, які повинен пройти розробник програми для MS-DOS:
1. Постановка задачі (технічне завдання).
2. Розробка інтерфейсу, тобто створення сукупності несуперечливих домовленостей та правил, які дозволяють користувачу:
а) швидко та без зайвих зусиль (на інтуїції) навчитись працювати з продуктом;
б) забезпечити швидкий доступ (мах за 3-4 кроки) до довільної команди системи;
в) інтерфейс повинен бути зручним і для розробника (легко міняти та доповнювати меню, вікна, вибір команд та опцій і використовувати цю ідеологію у всіх своїх розробках). (Особиста технологія створення меню).
3. Розв’язати проблеми з графікою, тобто створити власну, або скористатися хорошою універсальною графічною бібліотекою (таких нема). Як правило проблеми сумісності не розв’язуються.
4. Програмування зовнішніх пристроїв – клавіатури, миші, портів, таймера. Бажано забезпечити максимальну універсальність роботи з пристроями, щоб не переробляти програму під кожний новий комп’ютер. Тобто треба створити власні бібліотеки.
5. Якщо програма досить велика, треба подумати про підтримку оверлейної структури і взагалі про керування пам’яттю (не всі на Асемблері).
6. Почати реалізовувати конкретний проект, розв’язуючи одночасно проблеми сумісності із вже написаними раніше різними бібліотеками, переробляти які нема часу та можливості.
Тобто треба спочатку стати системним програмістом IBM PC, тобто мати чіткі та глибокі знання як операційної системи, так і апаратного забезпечення.
І знову ж таки нема гарантії, що ваш продукт буде працювати на тому комп’ютері, на якому ви його не тестували.
Всі ці складності витікають з ідеології та структури MS-DOS (це найпростіша однозадачна однокористувацька ОС). Але програмісту доступно практично все – нема такого ресурсу комп’ютера, який він би не отримував в своє повне розпорядження.
З точки зору користувача MS-DOS це: ідея спілкування – командний рядок; ”подумай та надрукуй”. Користувач повинен знати якусь множину команд MS-DOS. Вміти розв’язувати проблеми з мінімальними засобами діагностики. Згодом спілкування перейшло на рівень файлових систем, а потім – операційних оболонок. Ідея такого спілкування полягає в переході на новий більш природний понятійний рівень – роботу в відкритому та дружньому середовищі, яке наочно представляє предметну область, пропонує широкий набір доступних засобів і пробачає людські помилки. Ця ідея пізніше перейшла в Windows – надбудову над операційною системою MS-DOS.