
- •1.3. Короткий нарис історії ос
- •1.3.1. Передісторія ос
- •1.3.2. Пакетні ос
- •1.3.3. Ос з поділом часу
- •1.3.4. Однозадачние ос для пеом
- •1.3.5. Багатозадачні ос для пк з графічним інтерфейсом
- •1.4. Класифікація ос
- •1.5. Критерії оцінки ос
- •1.5.2. Ефективність
- •1.5.3. Зручність
- •1.5.4. Масштабованість
- •1.5.5. Здатність до розвитку
- •1.6. Основні функції і структура ос
- •1.7. Ос, що використовуються в подальшому викладі
- •1.7.2. Windows
- •1.7.3. Unix
- •2. Управління пристроями
- •2.1. Основні завдання управління пристроями
- •2.2. Класифікація периферійних пристроїв і їх архітектура
- •2.3. Переривання
- •2.4. Архітектура підсистеми вводу / виводу
- •2.5. Способи організації введення / виводу
- •2.5.1. Введення / висновок з опитування і по перериваннях
- •2.5.2. Активне і пасивне очікування
- •2.5.3. Синхронний і асинхронний ввід / вивід
- •2.6. Буферизація і кешування
- •2.6.1. Поняття буферизації
- •2.6.2. Згладжування нерівномірності швидкостей процесів
- •2.6.3. Розпаралелювання введення та обробки
- •2.6.4. Узгодження розмірів логічної та фізичної записи
- •2.6.5. Редагування при інтерактивному введенні
- •2.6.6. Кешування дисків
- •2.6.7. Випереджаюче читання.
- •2.7. Драйвери пристроїв
- •2.8. Управління пристроями в ms-dos
- •2.8.1. Рівні доступу до пристроїв
- •2.8.2. Драйвери пристроїв в ms-dos
- •2.8.3. Управління символьними пристроями
- •2.8.4. Управління блоковими пристроями
- •2.8.4.2. Розділи і логічні томи
- •2.8.4.3. Засоби доступу до дисків
- •2.9. Управління пристроями в Windows
- •2.9.1.1. Драйвери пристроїв в Windows
- •2.9.1.2. Доступ до пристроїв
- •2.10. Управління пристроями в unix
- •2.10.1. Драйвери пристроїв в unix
- •2.10.2. Пристрій як спеціальний файл
- •3. Управління даними
- •3.1. Основні завдання управління даними
- •3.2. Характеристики файлів та архітектура файлових систем
- •3.3. Розміщення файлів
- •3.4. Захист даних
- •3.6. Файлова система fat і управління даними в ms-dos
- •3.6.1. Загальна характеристика системи fat
- •3.6.2. Структури даних на диску
- •Структура записи каталога файловой системы fat
- •3.6.4. Робота з файлами в ms-dos
- •3.6.4.1. Системні функції
- •3.6.4.2. Доступ до даних
- •3.6.4.3. Структури даних у пам'яті
- •3.6.5. Нові версії системи fat
- •3.7. Файлові системи і управління даними в unix
- •3.7.1. Архітектура файлової системи unix
- •3.7.1.1. Жорсткі і символічні зв'язку
- •3.7.1.2. Монтовані томи
- •3.7.1.3. Типи і атрибути файлів
- •3.7.1.4. Управління доступом
- •3.7.2. Структури даних файлової системи unix
- •3.7.3. Доступ до даних в unix
- •3.7.4. Розвиток файлових систем unix
- •3.8. Файлова система ntfs і управління даними в Windows
- •3.8.1. Особливості файлової системи ntfs
- •3.8.2. Структури дискових даних
- •3.8.2.1. Головна таблиця файлів
- •3.8.2.2. Атрибути файлу
- •3.8.3. Доступ до даних
- •3.8.4. Захист даних
- •3.8.4.1. Аутентифікація користувача
- •3.8.4.2. Дескриптор захисту
- •4. Управління процесами
- •4.1. Основні завдання управління процесами
- •4.2. Реалізація багатозадачного режиму
- •4.2.1. Поняття процесу і ресурсу
- •4.2.2. Квазіпараллельний виконання процесів
- •4.2.3. Стану процесу
- •4.2.4. Невитісняючаі витісняюча багатозадачність
- •4.2.5. Дескриптор і контекст процесу
- •4.2.6. Реєнтерабельним системних функцій
- •4.2.7. Дисципліни диспетчеризації та пріоритети процесів
- •4.3. Проблеми взаємодії процесів
- •4.3.1. Ізоляція процесів та їх взаємодія
- •4.3.2. Проблема взаємного виключення процесів
- •4.3.3. Двійкові семафори Дейкстри
- •4.3.4. Засоби взаємодії процесів
- •4.3.4.1. Цілочисельні семафори
- •4.3.4.2. Семафори з множинним очікуванням
- •4.3.4.3. Сигнали
- •4.3.4.4. Повідомлення
- •4.3.4.5. Спільна пам'ять
- •4.3.4.6. Програмні канали
- •4.3.5. Проблема тупиків
- •4.4. Управління процесами в ms-dos
- •4.4.1. Процеси в ms-dos
- •4.4.2. Середа програми
- •4.4.3. Запуск програми
- •4.4.4. Завершення роботи програми
- •4.4.5. Перехоплення переривань і резидентні програми
- •4.5. Управління процесами в Windows
- •4.5.1. Поняття об'єкта у Windows
- •4.5.2. Процеси і нитки
- •4.5.3. Планувальник Windows
- •4.5.4. Процес і нитка як об'єкти
- •4.5.5.2. Об'єкти синхронізації та функції очікування
- •4.5.5.3. Типи об'єктів синхронізації
- •4.5.5.4. Критичні секції
- •4.5.6. Повідомлення
- •4.6. Управління процесами в unix
- •4.6.1. Життєвий цикл процесу
- •4.6.2. Групи процесів
- •4.6.3. Програмні канали
- •4.6.4. Сигнали
- •4.6.5. Засоби взаємодії процесів в стандарті posix
- •4.6.6. Планування процесів
- •4.6.6.1. Стану процесів в unix
- •4.6.6.2. Пріоритети процесів
- •4.6.7. Інтерпретатор команд shell
- •5. Управління пам'яттю
- •5.1. Основні завдання управління пам'яттю
- •5.2. Віртуальні й фізичні адреси
- •5.3.2. Розподіл з фіксованими розділами
- •5.3.3. Розподіл з динамічними розділами
- •5.4. Сегментна організація пам'яті
- •5.5. Сторінкова організація пам'яті
- •5.6. Порівняння сегментної і сторінкової організації
- •5.7. Управління пам'яттю в ms-dos
- •5.8. Управління пам'яттю в Windows
- •5.8.1. Структура адресного простору
- •5.8.3. Відображення виконуваних файлів
- •5.8.4. Файли, відображувані на пам'ять
- •5.8.5. Стеки і купи
- •5.9. Управління пам'яттю в unix
- •Література
4.4. Управління процесами в ms-dos
4.4.1. Процеси в ms-dos
Як говорилося вище, управління процесами в однозадачних ОС, до яких відноситься MS-DOS, є порівняно тривіальної завданням.
Завантаження ОС завершується запуском програми командного інтерпретатора COMMAND.COM, в завдання якого входить:
· Читання й аналіз команд, що вводяться користувачем з клавіатури;
· Виконання внутрішніх команд системи, таких, як команда видачі змісту каталогу, команди копіювання, видалення і перейменування файлів і т.п.;
· Запуск на виконання системних та прикладних програм;
· Обробка критичних помилок, що відбулися в ході виконання системних функцій MS-DOS;
· Завершення роботи програми із звільненням всіх ресурсів, які займалися програмою.
Запускаючи програму користувача, COMMAND.COM не завершує власну роботу, а фактично переходить в стан сну. Після завершення запущеної програми COMMAND.COM відновлює роботу, видаючи запрошення до вводу наступної команди. Таким же чином програма користувача може
запустити іншу програму і чекати її завершення. Кількість одночасно присутніх в системі процесів обмежене тільки розміром пам'яті системи (не більше 640 Кб на всіх), проте тільки остання запущена програма може бути в активному (працюючому) стані. Якщо ж і ця програма блокується на виконанні системної функції (наприклад, очікує введення з клавіатури), то в системі не залишається активних процесів. Таким чином, термін «однозадачная ОС» в даному випадку слід розуміти як «ОС, що допускає не більше однієї активної задачі». Системі не доводиться займатися поділом процесорного часу та іншими «багатозадачними» проблемами, за винятком тільки збереження і відновлення контексту батьківської програми.
Деяким винятком з правила «одна активна задача» є резидентні програми MS-DOS, розглянуті в п. 4.4.5.
4.4.2. Середа програми
Середа програми (environment; інший переклад - «оточення») являє собою текстовий масив, що складається з рядків виду:
"Змінна = значення", 0
Тут змінна і значення - будь-які (в розумних межах) текстові величини, байт 0 завершує кожен рядок.
Поняття середовища було введено в системі UNIX і запозичена звідти в MS-DOS і Windows без особливих змін.
Є декілька стандартних (системних) змінних середовища, з яких найбільш відомі PATH (визначає шляхи до каталогів, в яких система шукає виконуваний файл) і PROMPT (задає вид підказки при діалозі з ОС). Крім того, багато прикладні програми вимагають для правильної роботи, щоб були задані специфічні змінні середовища, що описують, наприклад, розміщення робочих каталогів програми, спосіб роботи з розширеною пам'яттю або якісь інші характеристики режиму роботи програми.
Можна розглядати змінні середовища як свого роду параметри, передані програмі при її запуску, аналогічно тому, як підпрограма отримує параметри при виклику. Інтерпретатор команд COMMAND.COM також має своє середовище, яку називають кореневою середовищем. Для створення змінних кореневої середовища, їх видалення та зміни значень може використовуватися системна команда SET. Коли COMMAND.COM запускає програму користувача або одна програма запускає іншу, створюється породжений процес, який отримує власний екземпляр блоку середовища, при цьому за умовчанням створюється точна копія середовища батька, проте можна створити зовсім інше середовище.