- •Архитектура ОС UNIX
- •Модульная блок-схема ядра системы
- •Модульная блок-схема ядра системы
- •fork, exec, exit, wait, brk, signal
- •«индекс» файла (inode)
- •«индекс» файла (inode)
- •Таблицы файлов, дескрипторов файла и индексов
- •Формат файловой системы
- •Формат файловой системы
- •Процесс
- •Создание процесса
- •Исполняемый файл
- •Процесс и исполняемый файл
- •Стек ядра
- •Информационные структуры для запуска процессов
- •Адресное пространство задачи
- •Контекст процесса
- •Состояния процесса
- •Состояния
- •Сон и пробуждение процесса
- •Сон и пробуждение процесса
- •Сон и пробуждение. Пример блокировки
- •Управление системой
- •Структуры данных ядра
Архитектура ОС UNIX
Введение в архитектуру ядра
1
Модульная блок-схема ядра системы
Трехуровневая система: пользователя, ядра, аппаратуры.
Обращения к операционной системе и библиотеки составляют границу между
пользовательскими программами и ядром.
Обращения к операционной системе выглядят так же, как обычные вызовы функций в программах на языке Си, и библиотеки устанавливают соответствие между этими вызовами функций и элементарными системными операциями.
Совокупность обращений к ОС разделена на те
обращения, которые взаимодействуют с
подсистемой управления файлами, и те, которые взаимодействуют с подсистемой управления процессами.
Модульная блок-схема ядра системы
Файловая подсистема:
управляет файлами,размещает записи файлов,
управляет свободным пространством, доступом к файлам и поиском данных для пользователей.
Подсистема управления файлами обращается к
данным, которые хранятся в файле, используя буферный механизм, управляющий потоком
данных между ядром и устройствами внешней памяти.
Буферный механизм, взаимодействуя с драйверами устройств ввода-вывода блоками,
инициирует передачу данных к ядру и обратно.
Драйверы устройств являются такими модулями в составе ядра, которые управляют работой периферийных устройств.
fork, exec, exit, wait, brk, signal
Open, close, read, write, stat, chown
Модульная блок-схема ядра системы
Подсистема управления процессами:
синхронизация процессов,взаимодействие процессов,распределение памяти,планирование выполнения процессов.
Подсистема управления файлами и подсистема управления процессами взаимодействуют
между собой, когда файл загружается в память на выполнение: подсистема управления процессами читает в память исполняемые файлы перед тем, как их выполнить.
Модули – распределение памяти, планировщик и взаимодействия процессов.
Аппаратный контроль отвечает за обработку прерываний и за связь с машиной. Такие устройства, как диски и терминалы, могут прерывать работу центрального процессора во время выполнения процесса. При этом ядро системы после обработки прерывания может возобновить выполнение прерванного процесса.
«индекс» файла (inode)
Внутреннее представление файла описывается в индексе, который содержит:
описание размещения информации файла на диске;
владелец файла;
права доступа к файлу;
время доступа…
При обращении процесса к системе open("/fs2/mjb/rje/sourcefile", 1) ядро проверяет права процесса на просмотр каталогов и возвращает индекс файла либо возвращает новый индекс, если файл не существует.
5
«индекс» файла (inode)
Индексы хранятся в файловой системе, однако при обработке файлов ядро заносит их в таблицу индексов в оперативной памяти.
Таблица файлов выступает глобальной структурой ядра, а пользовательская таблица дескрипторов
файла выделяется под процесс.
Элементы в этих структурах хранят информацию о состоянии файла и о доступе пользователей к нему. В таблице файлов хранится смещение в байтах от начала файла до того места, откуда начнет выполняться следующая команда пользователя read или write, а также информация о правах доступа к открываемому процессу.Таблица дескрипторов файла идентифицирует все открытые для процесса файлы.
6
Таблицы файлов, дескрипторов файла и индексов
При выполнении операций read (читать) и write (писать) ядро использует дескриптор файла для входа в таблицу дескрипторов и, следуя указателям на таблицу файлов и на таблицу индексов, находит информацию в файле.
7
Формат файловой системы
В системе может быть несколько физических дисков, на каждом из которых может размещаться одна и более файловых систем.
На логическом уровне ядро имеет дело с файловыми системами, а не с дисками, при этом каждая система трактуется как логическое устройство, идентифицируемое номером.
Преобразование адресов логического устройства (файловой системы) в адреса физического устройства (диска) и обратно выполняется
дисковым драйвером.
Файловая система состоит из последовательности логических блоков, длина которых кратна 512 байтам.
8
Формат файловой системы
1. Блок загрузки располагается в начале пространства, отведенного под файловую систему, обычно в первом секторе, и содержит программу начальной загрузки, которая считывается в машину при загрузке или
инициализации операционной системы.
2. Суперблок описывает состояние файловой системы - какого она размера, сколько файлов может в ней храниться, где располагается свободное
пространство, доступное для файловой системы, и другая информация.
3. Список индексов в файловой системе располагается вслед за суперблоком. Ядро операционной системы обращается к индексам, используя указатели в списке индексов. Один из индексов является корневым индексом
файловой системы.
4. Информационные блоки располагаются сразу после списка индексов и содержат данные файлов и управляющие данные.
9
Процесс
Процессом называется последовательность операций при выполнении программы, которые представляют собой наборы байтов, интерпретируемые центральным процессором как машинные инструкции (т.н. "текст"), данные и стековые структуры.
Выполнение процесса заключается в точном следовании набору инструкций, который является замкнутым и не передает управление набору инструкций другого процесса; он считывает и записывает информацию в раздел данных и в стек, но ему недоступны данные и стеки других процессов.
Одни процессы взаимодействуют с другими процессами и с остальным миром посредством обращений к ОС.
10