- •Кафедра программного обеспечения информационных технологий
- •«Операционные системы и системное программирование»
- •40 01 01
- •Содержание
- •Введение
- •Разработка программ в ос unix
- •1.1 Отличительные черты ос unix
- •1.2 Основы архитектуры операционной системы unix
- •1.3 Ядро системы
- •1.4 Пользователи системы, атрибуты пользователя
- •1.5 Системные вызовы и функции стандартных библиотек
- •1.6 Описание программы, переменные окружения
- •1.7 Аргументы и опции программы
- •1.8 Обработка ошибок
- •2 Файлы и файловая система
- •2.1 Файлы
- •2.2 Типы файлов
- •2.2.1 Обычные файлы
- •2.2.2 Каталоги
- •2.2.3 Файлы символичной связи (ссылки)
- •2.2.4 Файлы устройства
- •2.2.5 Именованные каналы
- •2.2.6 Сокеты
- •2.3 Владельцы файлов и права доступа к файлу
- •2.4 Дополнительные атрибуты файла
- •2.5 Файловый ввод/вывод
- •Открытие файла
- •2.6 Мультиплексированный ввод/вывод
- •2.7 Векторный ввод/вывод
- •2.8 Файлы, отображающиеся в памяти
- •2.9 Каталоги, работа с каталогами
- •2.9.1 Создание каталога
- •2.9.2 Удаление каталога
- •2.9.3 Чтение информации из каталога
- •2.9.4 Закрытие каталога
- •2.10 Создание жестких ссылок
- •2.11 Символическая ссылка
- •2.12 Удаление ссылки (или имени файла)
- •2.13 Переименование файла
- •2.14 Файловая система ос unix
- •2.14.1 Организация файловой системы ext2
- •2.15 Файлы устройств
- •3 Процессы
- •3.1 Виды процессов
- •3.2 Создание процесса
- •3.3 Вызовы семейства exec
- •3.4 Функции завершения процесса
- •3.5 Ошибки
- •3.6 Копирование при записи
- •3.7 Системные вызовы ожидания завершения процесса
- •3.8 Системный вызов system
- •3.9 Основные параметры, передаваемые процессу
- •3.10 Сеансы и группы процессов
- •4 Взаимодействие процессов
- •4.1 Сигналы
- •4.1.1 Отправка (генерация) сигнала
- •4.1.2 Наборы сигналов
- •4.1.3 Блокировка сигналов
- •4.2 Неименнованные каналы (трубы)
- •4.2.1 Размер канала и взоимодействие процессов при передаче данных
- •4.3 Именнованные каналы
- •4.4 Дополнительные средства межпроцессного взоимодействия
- •4.5 Механизмы межпроцессорного взаимодействия
- •4.5.1 Очереди сообщений
- •4.5.2 Семафоры Семафоры как теоретическая конструкция
- •4.5.3 Разделяемая память
- •4.5.4 Потоки
- •Int pthread_setschedparam(pthread_t tid, int policy, const struct sched_param *param);
- •Int pthread_getschedparam(pthread_t tid, int policy, struct schedparam *param);
- •5 Операционные системы
- •5.1 Понятие операционной системы
- •5.2 Характеристики современных ос
- •5.2.1 Многопоточность
- •5.2.2 Распределенные ос
- •5.2.3 Концепция ос на основе микроядра
- •5.2.4 Функции микроядра.
- •5.3 Принципы построения ос
- •5.4 Концептуальные основы ос
- •5.4.1 Процессы
- •Модель работы процесса с двумя приостановочными состояниями
- •Варианты решения:
- •Решение задачи взаимного исключения. Алгоритм Деккера.
- •Решение задачи взаимного исключения. Алгоритм Пэтерсона..
- •Синхронизирующие примитивы (семафоры).
- •Задача “производитель-потребитель” Общие семафоры
- •Задача “производитель-потребитель”, буфер неограниченного размера(Спящий парикмахер)
- •Задача “производитель-потребитель”, буфер ограниченного размера
- •5.4.2 Распределение ресурсов. Проблема тупиков
- •Алгоритм банкира
- •Применение алгоритма банкира
- •5.4.3 Монитороподобные средства синхронизации
- •Механизм типа «критическая область»
- •5.4.4 Виртуализация
- •5.4.5 Подсистема управления памятью
- •5.4.6 Виртуальная оперативная память
- •5.5 Аппаратные особенности процессоров Intel-архитектуры, направленных на поддержку многозадачности
- •5.5.1 Сегментация памяти. Ia-32
- •5.5.2 Распределение памяти в реальном режиме
- •5.5.3 Организация защиты в процессоре
- •5.5.4 Поддержка многозадачности в процессорах архитектуры ia-32
2.14.1 Организация файловой системы ext2
Вэтой файловой системе разбивается на группы блоков:
Структура блока же такова (основные его составляющие):
Под понятием суперблок понимается и копия суперблока (а в нулевой группе блоков содержится основной суперблок).
ТДГ – таблица дескрипторов групп.
БКЗБ – битовая карта занятости блоков.
БКЗ inode – битовая карта занятости inode.
Таблица inode – таблица индексных дескрипторов (информационных ухлов).
ДГ – дескриптор группы. Он определяет распространение служебной информации, т.е. для своей группы.
АБКБ – адрес битов карты блоков.
АБК inode – адрес битов карты inode.
АТ – адрес таблицы inode.
В таблице индексных дескрипторов распространяются сами индексные дескрипторы (при чем используется сквозная нумерация), т.е. если в таблице inode группы блоков 0 последний индексный дескриптор был InX, то в таблице inode группы блоков 1 дескрипторы будут начинаться с In(X+1), In(X+2) и т.д. Индексные дескрипторы описывают каждый свой файл и представляют собой:
IB – Indirect Block (КС –косвенная ссылка)
DIB – Double IB (ДКС – двойная КС)
TIB – Triple IB (ТКС – тройная КС)
Такой подход позволяет обеспечивать быстрый доступ к небольшим файлам (адрес прямо указан), но чем сложнее файл, тем сложнее доступ.
Далее ГБ похожи на ГБ 0, но могут быть небольшие отличия. К примеру, некоторые группы блоков могут не содержать копию суперблока, а главная задача этих копий состоит в возможности восстановления суперблока.
Все раздела диска разбивается на блоки фиксированного размера, кратного размеру диска (1024, 2048, 4096). Размер блока указывается при создании файловой системы на разделе жесткого диска. Для уменьшения фрагментации и количества перемещения головок жесткого диска, при чтении большого массива информации блоки объединяются в группы.
Базовым понятием файловой системы является информационный узел (файловый дескриптор) – это специальная структура, которая содержит информацию об атрибутах и физическом расположении файлов. Физическое расположение файлов представляет собой последовательность абсолютных номеров блоков, которые и содержат данные файла.
Суперблок – основной элемент файловой системы. Он содержит следующую информацию:
общее число блоков и информационных узлов в файловой системе
число свободных блоков и информационных узлов в файловой системе
размер блока файловой системы
количество блоков и информационных узлов в группе
размер информационных узлов (inode)
идентификатор файловой системы
номер первого блока данных (фактический номер блока, где располагается суперблок)
- если размер блока равен 1024 байта, то номер первого блока равен 1;
- если размер блока больше 1024 байт, то номер первого блока – 0.
это следует из того, что первые 1024 байта резервные для загрузчика ОС, а главная копия суперблока располагается со смещением 1024 байта.
Ранние версии системы ext создавались копии суперблока в начале каждой группы блоков. В более современных системах они хранятся в 0, 1, 3, 5, 7, … группах.
Каждая группа содержит информацию о занятости блоков и inode в виде битовой карты. Битовая карта занятости блоков обычно располагается в первом блоке группы. Если группа содержит копию суперблока, битовая карта располагается во втором блоке группы. Размер битовой карты равен одному блоку. Каждый бит карты обозначает состояние блока. Если 1 – блок занят, 0 – свободен.
Дескриптор группы – это структура, которая сожержит информацию об адресах битовой карты занятости блоков, битовой карты inode, таблицы inode соответствующей группы. Все дескрипторы групп содержаться в таблице дескрипторов групп, которая хранится в группе блоков 0. Для этой таблицы также создаются резервные копии. Информация, которая создается в дескрипторах групп, служит для доступа к файлу.
К примеру: задано имя файла, чтобы получить доступ к информации, изначально определяется номер индексного дескриптора. Следующим шагом определяется группа, по номеру группы выбирается номер индексного дескриптора, далее выделяется адрес данного файла. Только после этого возможен доступ к информации, содержащейся в данном файле.