- •Основы файловой системы unix
- •Типы файлов
- •Структура файловой системы unix
- •Владельцы файлов
- •Права доступа к файлу
- •Дополнительные атрибуты файлов
- •1 Установить обязательное блокирование файлов при выполнении
- •Устройства
- •Процессы unix
- •Vhand диспетчер страничного замещения
- •Создание и управление процессами
- •Системные функции типа exec
- •Системный вызов _exit
- •Взаимодействие процессов посредством каналов
- •Сигналы
- •Обработка ошибок
- •Пользователи системы, Атрибуты пользователя
- •Форматы исполняемых файлов
- •Файлы отображаемые в памяти
- •Метаданные файла
- •Индексные дескрипторы
- •Имена файлов
- •Недостатки и ограничения файловой системы s5fs
- •Файловая система ffs (Fast File System)
- •Каталоги ffs
- •Сравнение процессов может быть произведено с использованием понятия "трасса" порядок и длительность пребывания процесса в допустимых состояниях на интервале существования.
- •Ресурсы, Понятие и классификация
- •Решение №1.
- •Сообщенная задача взаимного исключения
- •Синхронизирующие примитивы
- •V(свободно);
- •Взаимодействие через переменные состояния
- •Пример применения приоритетного правила
- •Проблема тупиков
- •Алгоритм банкира
- •Основными вопросами при решении такой задачи являются:
- •Применение алгоритма банкира
- •Основные направления совершенствования структуры
- •Системы с параллельным выполнением операций. Параллельные процессы.
- •Схемы типа окмд
- •Особенности организации процессоров по принципу окмд (одиночный поток команд – множественный поток данных)
- •Мультипроцессорные системы
- •Транспьютеры
- •Центральный процессор
- •Распределение памяти в транспьютерах
- •Диспетчеризация процессов
- •Ввод / вывод
Решение №1.
begin integer очередь;
очередь := 1;
parbegin
процесс 1: begin
L1: if (очередь = 2) then goto L1;
критический интервал 1;
очередь := 2;
остаток цикла 1;
goto L1;
end;
parend;
end;
процесс 2: begin
L2 if (очередь = 1) then goto L2;
критический интервал 2;
очередь := 1;
остаток цикла 2;
goto L2;
end;
Недостатки решения:
-
процессы могут входить в критический интервал строго последовательно
-
если кто-то из процессов останется в остатке цикла, то он затормозит и второй процесс
Решение №2.
begin integer С1,С2;
С1 := 1;
С2 := 1;
parbegin
процесс 1: begin
L1: if (С2 = 0) then goto L1;
С1 := 1;
критический интервал 1;
С1 := 0;
остаток цикла 1;
goto L1;
end;
parend;
end;
процесс 2: begin
L2 if (С1 = 1) then goto L2;
С2 := 0;
критический интервал 2;
С2 := 1;
остаток цикла 2;
goto L2;
end;
Недостаток: принципиально при развитии процессов строго синхронно они могут одновременно войти в критический интервал.
Решение №3.
begin integer С1,С2;
С1 := 1;
С2 := 1;
parbegin
процесс 1: begin
А1: С1 := 0;
L1: if (С2 = 0) then goto L1;
критический интервал 1;
С1 := 1;
остаток цикла 1;
goto А1;
end;
parend;
end;
процесс 2: begin
А2: С2 := 0;
L2 if (С1 = 1) then goto L2;
критический интервал 2;
С2 := 1;
остаток цикла 2;
goto А2;
end;
Недостаток: возникает другая проблема – может бесконечно долго решаться вопрос о том, кто первым войдет в критический интервал.
Решение №4.
begin integer С1,С2;
С1 := 1;
С2 := 1;
parbegin
процесс 1: begin
L1: С1 := 0;
if (С2 = 0) then begin
C1 := 0;
goto L1;
end;
критический интервал 1;
С1 := 1;
остаток цикла 1;
goto L1;
end;
parend;
end;
процесс 2: begin
L2: С2 := 0;
if (С1 = 0) then begin
C2 := 0;
goto L2;
end;
критический интервал 2;
С2 := 1;
остаток цикла 2;
goto L2;
end;
Решение №5.
begin integer С1,С2,очередь;
С1 := 1;
С2 := 1;
очередь := 1;
parbegin
процесс 1: begin
А1: С1 := 0;
L1: if (С2 = 0) then begin
if (очередь = 1) then goto L1;
C1 := 1;
B1: if (очередь = 2) then goto B1;
goto А1;
end;
критический интервал 1;
очередь := 2;
С1 := 1;
остаток цикла 1;
goto А1;
end;
parend;
end;
процесс 2: begin
А2: С2 := 0;
L2 if (С1 = 0) then begin
if (очередь = 2) then goto L2;
C2 := 1;
B2: if (очередь = 1) then goto B2;
goto А2;
end;
критический интервал 2;
очередь := 1;
С2 := 1;
остаток цикла 2;
goto А2;
end;
Для доказательства корректности задачи взаимного исключения необходимо проверить три положения:
-
Решение безопасно в том смысле, что два процесса не могут одновременно оказаться в своих критических интервалах
-
В случае сомнения, кому из двух процессов первому войти в критический интервал, выяснение этого вопроса не откладывается до бесконечности
-
Остановка какого-либо из процессов в остатке цикла не вызывает блокировки другого процесса.