- •Раздел 1. Операционная система unix. Введение в операционную систему unix
- •Отличительные черты ос unix
- •Основы архитектуры операционной системы unix Модель системы unix.
- •Структура ядра ос unix.
- •Основы файловой системы ос unix
- •Типы файлов
- •Структура файловой системы unix
- •Владельцы файлов
- •Права доступа к файлу
- •Дополнительные атрибуты файлов
- •Устройства
- •Маска создания файла
- •Программы Oc unix
- •Процессы ос unix
- •Типы процессов
- •Атрибуты процесса
- •Процесс создания и запуска программ
- •Системный вызов завершения процесса exit
- •Системные функции типа exec
- •Обработка ошибок
- •Ограничения для процессов
- •Пользователи системы, Атрибуты пользователя
- •Средства ВзаимодействиЯ между процессАми
- •Сигналы
- •Посылка сигналов.
- •Int raise (int sig); // посылает сигнал вызывающему процессу (т.Е. Самому себе).
- •Обработка сигналов.
- •Набор сигналов.
- •Файловая подсистема ос unix
- •Индексный дескриптор
- •Блоки хранения данных
- •Недостатки и ограничения файловой системы s5fs
- •Файловая система ffs (Fast File System)
- •Основные отличия ffs от s5fs
- •Ограничения ffs
- •Каталоги ffs
- •Раздел 2. Взаимодействие процессов. Процесс, Понятие и классификация
- •Ресурсы, Понятие и классификация
- •Взаимодействие процессов Задача взаимного исключения
- •Integer очередь;
- •ОБобщенная задача взаимного исключения
- •Integer очередь;
- •Синхронизирующие примитивы (семафоры)
- •Процесс 1 :
- •Процесс 2 :
- •V(свободно);
- •Задача “производитель-потребитель” применение ОбщиХ семафорОв
- •Задача “производитель-потребитель” (буфер ограниченНый)
- •Взаимодействие через переменные состояния
- •Integer array желание[1:n], сп[1:n];
- •Integer чпб, бб, рб, чсеб, I;
- •Integer разм_п, n, max, nmax;
- •Проблема тупиков
- •Алгоритм банкира
- •Integer Св_Деньги; boolean Безопасно;
- •If ((Завершение_под_сомнением [I]) and
- •Применение алгоритма банкира
- •V(Взаимн_искл);
- •V(Возвращенные_Талеры[Номер_Клиента[m]]);
- •If (Попытка_выдать_талер_клиенту(h))
- •Монитороподобные средства синхронизации
- •Механизм типа «критическая область»
- •Механизм типа «условная критическая область»
- •Var s : semaphore; считывание : boolean; m : t;
- •Раздел 3. Вычислительные структуры. Машины, управляемые контроллерами (устройствами управления)
- •Усовершенствованная структура вычислительной машины, управляемой контроллерОм
- •Системы с операционным конвейером
- •Мультипроцессорные системы
- •Транспьютеры
- •Распределение памяти в транспьютерах
- •Диспетчеризация процессов
- •Организация ВводА / выводА в транспьютере.
- •Гарвардская архитектура на примере процессоров семейства adsp
Файловая подсистема ос unix
Базовая файловая система UNIX S5FS:
Каждый жесткий диск состоит из одного или нескольких разделов. Расположение и размер разделов определяется при разбиении и форматировании диска. Разделы выступают в качестве независимых устройств, доступ к которым осуществляется как к различным носителям данных. В разделе может располагаться только одна файловая система.
Файловая система S5FS состоит из трех основных компонентов:
Суперблок – важнейший компонент файловой системы, содержащий информацию для монтирования и управления работой файловой системы в целом. В каждой файловой системе существует только один суперблок, расположенный в начале раздела. Суперблок считывается в память при монтировании файловой системы и находится там до её отключения или размонтирования. Содержит следующую информацию:
тип файловой системы;
размер файловой системы в логических блоках, включая суперблок, массив индексных дескрипторов и блоки хранения данных;
размер массива индексных дескрипторов;
число свободных блоков, доступных для размещения;
число доступных индексных дескрипторов, свободных для размещения;
флаги;
размер логического блока;
список номеров свободных индексных дескрипторов;
список адресов свободных блоков
Список свободных индексных дескрипторов и список свободных блоков целиком в суперблоке не хранятся. В списке свободных индексных дескрипторов хранится только часть свободных дескрипторов. У каждого дескриптора есть поле, которое показывает, занят дескриптор или нет.
Когда число свободных блоков (дескрипторов) приближается к нулю в списке суперблока, ядро ОС просматривает массив индексных дескрипторов и вновь формируется список свободных индексных дескрипторов.
Для списка свободных блоков такой подход применить не возможно, т.к. по содержимому блока нельзя определить, свободен этот блок или занят. Список свободных блоков может занимать несколько блоков хранения данных, но в суперблоке хранится только один такой блок. Выделение свободных блоков для размещения файла производится с конца списка, находящегося в суперблоке. Нулевой элемент списка является указателем на блок данных, в которых храниться продолжение списка. Когда достигается конец списка, новый блок записывается в суперблок. Такой подход позволяет использовать дисковое пространство под списки пропорционально свободному месту в файловой системе. Когда свободного места становиться мало, список адресов свободных блоков целиком помещен в суперблоке.
Индексный дескриптор
БХД
- – блок хранения данных;
R1 = Rбл*10;
R2 = Rбл *10 + 256* Rбл;
R3 = Rбл *10 + 256*256*Rбл 256* Rбл
R4= Rбл *10 + 256*256*256*Rбл+256*256* Rбл+ 256* Rбл
...
Массив индексных дескрипторов содержит метаданные всех файлов файловой системы. Индексный дескриптор содержит информацию о файле, необходимую для обработки данных, хранящихся в файле. Каждый файл ассоциируется с одним индексным дескриптором, хотя в файловой системе может быть несколько имен в файловой системе, каждое из которых указывает на один и тот же индексный дескриптор. При открытии файла ядро помещает копию дискового индексного дескриптора в память в специальную таблицу, которая содержит несколько дополнительных полей. Основные поля индексного дескриптора следующие:
первое поле хранит атрибуты файла, такие, как тип файла, дополнительные атрибуты выполнения и права доступа к файлу, а также три бита под модификацию прав доступа.
три группы прав доступа.
Владелец.
Группа-владелец
Остальные пользователи.
поле, определяющее количество имён, которые имеет файл в файловой системе. Когда поле = 0, это значит , что файл удалён.
идентификаторы владельца-пользователя и группы
размер файла в байтах. (для специальных файлов это поле содержит старшие и младшие номера устройства).
время последнего доступа к файлу
время последней модификации файла.
время последней модификации индексного дескриптора (не означает модификацию полей времён).
12 адресов дисковых блоков хранения данных. Если файл небольшого размера (< R1), то адрес блоков обозначается в индивидуальном дескрипторе. Если файл большего размера (< R2), то хранение происходит в di_addr[10] (первый уровень косвенности). И т.д. используется 3 уровня вложенности:
di_addr[10] <R2
di_addr[11] <R3
di_addr[12] <R4
Такой подход позволяет адресовать файлы достаточно больших размеров (но не бесконечно). Ядро обращается к индексным дескрипторам по индексу в массиве индексных дескрипторов. Один индексный дескриптор является корневым. Через него обеспечивается доступ к структуре каталогов и файлов после монтирования файловой системы. Размер массива индексных дескрипторов является фиксированным и задаётся при создании файловой системы.
Файловая система S5FS имеет ограничения по числу файлов, которые могут храниться независимо от размера этих файлов.