
- •Тема 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
Завантажувані модулі com та exe – файли
Програми, що призначені для виконання в середовищі операційної системи DOS називаються завантажуваними модулями та містяться у файлах, що мають розширення COM або EXE.
Файли COM – програми, що завантажуються безпосередньо. Для них не потрібно фактично ніякої підготовки для запуску їх після завантаження в ОЗП засобами DOS. Проводиться лише формування спеціальної сегмент-приставки, необхідної для всіх програм, що завантажуються ОС, і встановлення регістрів сегментів МП (їм присвоюються стандартні значення), після чого керування передається програмі, що завантажена в ОЗП. Файли типу СОМ завантажуються в ОЗП відразу ж після системної області (в нижню частину доступної пам’яті).
При завантаженні файлів ЕХЕ в ОС, необхідно провести спеціальну підготовку. Основа підготовки – переміщення, яке здійснюється завантажувачем командного процесора і заключається в налагодженні адрес в програмі в залежності від місця її завантаження в ОЗП. Інформація, необхідна для переміщення, зберігається в файлі типу ЕХЕ починаються дво-байтовою міткою (її значення 4D5AH).
Формат програм в файлах типу СОМ компактніший та простіший.
СОМ-файл – вміщує тільки машинні команди та дані, без заголовку, таблиці переадресації або відлагоджувальної інформації. Максимальний розмір файлу – 64 Кбайти.
Завантажувач працює з СОМ-файлом таким чином:
- відводить максимально можливий блок вільної пам’яті, будує префікс програмного сегменту (Program Segment Prefix - PSP) на початку блоку;
- читає СОМ-файл в пам’ять відразу за PSP і передає керування на перший байт програми.
Формат СОМ-файла скопіювали з формату виконуваних модулів ОС СР/М Digital Research для 8080, 880. тому вони незахищені. Можна присвоїти довільному файлу розширення СОМ і з командного рядка завантажити його в DOS.
ЕХЕ-файл – складається з трьох основних компонентів:
- заголовок файлу,
- таблиця переадресацій,
- власне код та дані програми.
Заголовок – містить кілька інформаційних блоків:
- двобайтну сигнатуру MZ (Марк Збиковськи);
- розміри заголовку, таблиці переадресації і файлу в цілому;
- початкові значення CS:IP і SS:SP в момент запуску програми;
- контрольна сума;
- деякі вказівки з розподілу пам’яті для завантажувача DOS.
Максимальний розмір ЕХЕ-файлу не обмежений. До його складу можна включити відлагоджувальну інформацію, дописавши цю інформацію в кінець файлу та залишивши без змін його розмір, вказаний в заголовку. Завантажувач DOS цю інформацію проігнорує.
Головний недолік ЕХЕ-файлів – вони не зберігають інформацію про окремі сегменти програми; коли компоновщик (linker) формує ЕХЕ-файл, він збирає всі заявлені у вихідному тексті сегменти в один величезний об’єм із спільною таблицею переадресації.
Системний завантажувач не в змозі визначити, яка частина програми є кодом, що виконується, яка – статичні дані (рядкові та числові константи), а яка – змінні дані. Тому завантажувач не має можливості відвести для зберігання кожного з цих компонентів окремі блоки пам’яті та незалежно маніпулювати сегментами.
Створюючи Windows, розробники Microsoft зрозуміли, що 640 Кбайтів реального режиму DOS сильно обмежує. Вихід у ретельній сегментації програм. Треба мати можливість залишати у пам’яті тільки ту частину, конкретної програми, яка забезпечує її подальше виконання та заміщувати, або виводити на диск фрагменти, які не використовуються у біжучий момент.
Було прийнято рішення ввести нову структуру файлів, що виконуються – нові ЕХЕ-файли. Був створений новий завантажувач для таких файлів під систему Windows. Під час роботи Windows він перехоплює звертання прикладних програм до функції DOS EXEC (функція 4Bh переривання 21h) і правильно завантажує як “нові”, так і “старі” ЕХЕ-файли.
Структуру файлу можна розглядати на декількох рівнях абстракції. На найвищому рівні дві частини:
- старий ЕХЕ-файл;
- новий ЕХЕ-файл.
“Стара” частина вміщує повний заголовок старого ЕХЕ-файла, таблицю переадресації і власне програму. Якщо новий ЕХЕ-файл чомусь буде запущений із командного рядка DOS, завантажувач DOS розпізнає заголовок старого ЕХЕ-файла та запустить програму – для WINDOWS – програми це просто повідомлення “This program requires Microsoft Windows” і повертається керування DOS.
Якщо новий ЕХЕ-файл запускається через модуль керування Program Manager або File Manager оболонки Windows, “стара” частина ЕХЕ-файла ігнорується.
“Нова” частина нового ЕХЕ-файла вміщує елементи, які розпадаються на три класи.
1. Заголовок та різні таблиці, які визначають розмір, розташування та характеристики всіх інших частин файла. Вони використовуються системним завантажувачем та “невидимі” для самої програми під час її виконання.
2. Сегменти коду та даних програми, кожна із своєю таблицею переадресації.
3. Ресурс – це статична порція даних. Наприклад: таблиці для побудови графічних елементів керування, символьні рядки для підказок та системи допомоги, курсори, іконки.
Кожний ресурс у файлі розпізнається за іменем та типом. Він завантажується у пам’ять системою за вимогою прикладної програми.
Версії OS/2 та різні розширювачі DOS також користуються форматом нового ЕХЕ-файлу.