
- •/Классификация операционных систем
- •Сравнительные характеристики ос.
- •/Процессы и примитивы.
- •Примитивы.
- •Процессы.
- •/Предполагаемая среда выполнения процессов.
- •/ Диаграмма переходов.
- •/Создание процессов.
- •/Уровневое представление ос unix
- •/Функции ядра операционной системы.
- •/Понятие прерываний в ос
- •/Структура ос
- •/Обзор подсистем ядра Unix
- •Описание подсистем ядра unix
- •Планирование но наивысшему приоритету (hpf)
- •Метод круговорота (карусель)
- •Очереди с обратной связно (fв)
- •Планирование в unix.
- •Типы многозадачности.
- •Состав планировщика
- •Зависимости подсистем ядра
- •Контроллер памяти (Метоrу Manager)
- •Механизм свопинга (Swapping)
- •Механизм пейджинга (Paging)
- •Внешний интерфейс
- •Verify_area()– проверка прав на доступ к выделенному региону памяти; get_free_page() / free_page() – выделение и освобождение физической памяти.
- •Реализация программ выделения памяти
- •Сборка мусора
- •Типы сборщиков памяти
- •Взаимодействие внутренних модулей мм
- •Архитектура vfs
- •Интерфейсы файловой системы
- •Ioctlo: установить атрибуты файла;
- •Защита файлов
- •Списки прав доступа
- •Механизмы обмена данными в vfs
- •Буферный кэш.
- •Механизмы обмена данными.
- •Логическая файловая система
- •Физическая организация файловой системы
- •Структура файла обычного типа
- •Примечания к физической организации vfs
- •Сетевая подсистема (Net)
- •Состав сетевой подсистемы
- •Представление и структуры данных
- •Внутренняя структура подсистемы
- •Зависимости сетевой подсистемы
- •Подсистема межпроцессного взаимодействия
/Обзор подсистем ядра Unix
В ядре ОС Unix выделяют пять главных подсистем:
Планировщик (Process Scheduler) предназначен для управления процессами (в том числе и доступом к центральному процессору). Планировщик определяет стратегию управления системой и гарантирует каждому процессу доступ как к процессору, так и к другим устройствам, входящим в систему.
Контроллер памяти (Меmory Manager) обеспечивает для множества процессов сохранение информации в главной памяти системы с возможностью разделения ее между процессами. ММ также поддерживает виртуальную память, позволяющую Unix реализовать работу процессов с использованием памяти, существенно превышающую физическую. Это достигается путем использования двух механизмов (swapping и paging).
Виртуальная файловая система (Virival Fi1e System, VFS) обеспечивает управление различными устройствами, на которых могут находиться файлы. А также управление файлами и каталогами на всех этих устройствах . Кроме того, VFS поддерживает множество различных файловых систем, форматы которых становятся доступны пользователям ОС Unix.
Сетевой интерфейс (Network Interface, NЕТ) обеспечивает доступ к
Различным сетевым стандартами различному сетевому оборудованию.
Подсистема межпроцессорного взаимодействия (Inter-Process Соmmunication IPC) — подсистема, которая используется процессами для поддержания различных механизмов обмена внутри системы.
На рис. 2.2а. показана концептуальная высокоуровневая декомпозиция ядра Unix, где стрелками показаны зависимости одной подсистемы от другой.
Однако реальная структура системы Unix несколько отличается от ее концептуальной архитектуры. Так на рис. 2.2b. показана реальная архитектура системы Unix, полученная в результате её реинжениринга. Из рисунка видно, что количество связей в реальной системе значительно больше. А это значит, что модификация системы только на основе концептуальной схемы может привести к нарушению её работы.
На этих схемах центральное место занимает процесс планирования - планировщик. Все остальные подсистемы существенно зависят от процесса планирования, так как именно он приостанавливает и возобновляет Работу всех остальных процессов. Обычно работа подсистемы приостанавливается, когда некоторый процесс ожидает освобождения некоторого ресурса в виде устройства или памяти, которые заняты другим процессом.
Другие зависимости проявляются менее очевидно, но являются не менее важными: планировщик использует ММ для регулирования объема памяти различными процессам, когда процессы возобновляют свою работу.
IPC зависит от ММ через механизм разделения памяти. Этот механизм позволяет двум процессам доступ в одну общую область памяти в дополнение к собственным неразделяемым областям.
VFS использует NET для поддержки сетевой файловой системы (NFS), а так же использует ММ для обеспечения работы виртуальных дисков.
MM использует VFS для поддержки работы swapping или paging. Однако когда процессу необходимо выделить память, то она выделяется прямо в swap файле, при этом ММ выполняет запрос к файловой системе на выделение памяти из постоянной области и приостанавливает процесс.
В дополнение к зависимостям, которые показаны явно, все подсистемы ядра зависят от общих ресурсов, которые не показаны на рисунке. Эти ресурсы включают в себя процедуры, используемые всеми подсистемами выделения и освобождения памяти, для самого ядра, процедур печати предупредительных сообщений или системных ошибок, а также системных отладочных процедур. Обращение к этим ресурсам происходит неявно, как они используются главным образом внутри ядра.
/Понятие интерфейсов в ОС
Понятие интерфейсов в операционной системе весьма абстрактно. Под интерфейсом обычно понимают набор функций и структур данных, посредством которых происходит взаимодействие с системой (в том числе и пользователей).
Ядро Unix использует для управления процессами, управления памятью обеспечения защиты системы так называемые системные вызовы запускаемые в режиме ядра.
Для работы с физическими устройствами используются так называемые драйверы устройств (I/О tasks или device drivers). Описание драйверов приводится в разделе описания VFS.
Процессы - демоны
Среди фоновых процессов значительное место занимают системные фоновые процессы, называемые демонами. Демоны предназначены для того, чтобы выполнять функции, которые могут непосредственно не относиться к ядру, но без которых ни одна ОС Unix работать не сможет. Они выполняют различные функции: это и обслуживание самой ОС, и доставка почты, и обеспечение работы устройств печати, и выполнение отложенных задач. Рассмотрим некоторые основные демоны ОС Unix.
Демон Init –это процесс, запускаемый первым. Имеет PID=1 и является предком всех процессов в системе. При загрузке он либо переводит систему в однопользовательский режим, либо запускает shell для чтения файлов запуска. Кроме того, демон Init находит и уничтожает процессы зомби, которые накапливаются в системе.
Демон Стоп: обеспечивает выполнение команд по установленному графику.
Демон Inetd – демон, управляющий работой других демонов. Он запускает демоны, когда для них есть работа, и уничтожает их, когда работа вы‑
полнена.
Демон Lрd- управляет печатью в ВSD-система
Кроме этих существуют многие другие демоны. В различных версиях ОС Unix они могут носить различные наименования, но выполнять одинаковые функции. Кроме того, следует заметить, что некоторые разработчики ОС Unix (АТТ разновидности) даже пошли на то, чтобы переложить на