- •Введение
- •Понятие операционной системы. Типы операционных систем
- •Функции операционной системы
- •Структура операционной системы. Ос ms dos
- •Файлы и каталоги на дисках
- •Драйверы устройств
- •Базовая система ввода-вывода (bios)
- •Загрузчик операционной системы
- •Ядро ms dos
- •Командный процессор dos
- •Внешние команды dos
- •Файловая структура диска
- •Стартовый сектор
- •Каталоги
- •Область данных
- •Операционные системы Windows
- •Выбор платформы Windows
- •Термины
- •Архитектура Windows Режимы выполнения программного кода
- •Многозадачность
- •Управление памятью в Windows
- •Выполнение приложений
- •Интерфейс прикладного программирования Win32
- •Реестр Windows
- •Операционная система unix
- •Ядро и процессы unix
- •Диспетчер unix
- •Процессы unix
- •Дескриптор и контекст процесса
- •Иерархия процессов
- •Идентификаторы процесса
- •Группы процессов
- •Взаимодействие процессов
- •Процессы-«демоны»
- •Межпроцессные коммуникации unix
- •Сигналы
- •Сигналы unix по мере возрастания их значений:
- •Семафоры
- •Программные каналы (Pipes)
- •Очереди сообщений
- •Разделяемая память
- •Многопользовательская защита в unix
- •Идентификаторы пользователя и группы
- •Код защиты файла
- •Привилегированный пользователь
- •Эффективные и реальные идентификаторы
- •Свопинг и пейджинг в unix
- •Буфер кеш-памяти
- •Управление вводом/выводом
- •Специальные файлы
- •Взаимодействие драйверов с программной и аппаратной средой
- •Файловая система unix
- •Основные системные каталоги
- •Корневой каталог /
- •Каталог /var
- •Каталог /etc
- •Каталог /usr
- •Каталог /home (/export/home)
- •Каталог/opt (/opti, /opt2, ... /optn)
- •Команды управления swap
- •Команда mkfile
- •Специальные файлы
- •Класс устройства
- •Тип и номер
- •Связь физической и логической структур
- •Создание и монтирование файловой системы
- •Дисковые устройства в unix
- •Внутренняя структура файловой системы Распределение дискового пространства
- •Индексные дескрипторы
- •Системные вызовы unix для работы с файлами
- •Стандартные библиотечные функции ввода/вывода
- •Поточные функции ввода/вывода
- •Литература
- •Оглавление
-
Диспетчер unix
Диспетчер UNIX - это программа, которая позволяет процессам конкурировать между собой за время центрального процессора.
Мультипрограммирование - это квантование времени между группой одновременно выполняющихся процессов.
Приостановление и возобновление процессов происходит много раз в секунду, поэтому создается эффект непрерывного протекания процесса, то есть иллюзия выполнения нескольких программ одновременно. В качестве иллюстрации рассмотрим следующий пример (рис. 4).
Три программиста желают выполнить различные программы X, Y, Z. Диспетчер UNIX загружает эти программы в память и создает 3 процесса. Отличие термина «программа» от термина «процесс» в данном случае в том, что программа - это всего лишь файл в формате загрузки, сохраняемый на диске, а процесс расположен в памяти на этапе его исполнения. После того как процесс Z получил свой квант времени и обработал его, диспетчер возвращает управление процессу X. Он начинает выполнение X не с самого начала, а с того места, где тот был приостановлен в конце своего кванта времени.
-работающий
процесс
-
X
X
X
Y
Y
Y
Z
Z
Z
-неработающий процесс
Квант времени 1
Квант времени 2
Квант времени 3
Рис.4. Схема разделения времени центрального процессора
-
Процессы unix
Концепция процессов является базовой в ОС UNIX. Само ядро UNIX существует для обеспечения потребностей процессов. Программа в терминах UNIX, как уже говорилось выше, представляет собой исполняемый файл. Это - основа построения контекста процесса при его порождении. По сути, порождение любого процесса в UNIX - это создание некоторой виртуальной машины. Она имеет свое собственное адресное пространство, куда помещаются процедурный сегмент и сегмент данных.
Дескриптор и контекст процесса
Системные данные, используемые ядром для идентификации процесса, которые существуют в течение всего времени жизни процесса, образуют дескриптор (описатель) процесса. Множество дескрипторов образуют таблицу процессов (таблицу дескрипторов).
Размер таблицы процессов, хотя и имеет допустимые ограничения, но в современных версиях UNIX позволяет создавать до нескольких сотен процессов. Дескриптор процесса содержит параметры процесса.
Информация о состоянии включает:
-
расположение (адрес в памяти),
-
размер выгружаемой части образа процесса,
-
идентификаторы процесса и запустившего его пользователя.
Другая важная информация о процессе хранится в таблице пользователя (называемой также контекстом процесса). Сюда записываются идентификационные номера пользователя и группы, чтобы определить:
-
привилегии доступа к файлам,
-
ссылки на системную таблицу файлов для всех открытыx процессом файлов,
-
указатель на индексный дескриптор текущего каталога в таблице индексных дескрипторов,
-
список реакций на различныe сигналы.