Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мои шпоры ОСиСП(1).doc
Скачиваний:
34
Добавлен:
26.09.2019
Размер:
1.63 Mб
Скачать

Отличительные черты ос unix

1. Система написана на языке высокого уровня, что делает её доступной к пониманию, изменению и переносу на другие платформы. UNIX является одной из наиболее открытых систем.

2. UNIX – многозадачная, многопользовательская система. Один сервер может обслуживать запросы большого количества пользователей. При этом необходимо администрирование только одной системы.

3. Наличие стандартов. Основой семейства UNIX является принципиально одинаковая архитектура и ряд стандартных интерфейсов, что упрощает переход пользователей с одной системы на другую.

4. Простой, но мощный модульный пользовательский интерфейс. Имеется определенный набор утилит, каждая из которых решает узкоспециализированную задачу, и из них можно сконструировать сложные программные обрабатывающие комплексы.

5. Использование единой иерархической файловой системы, которая обеспечивает доступ к данным, хранящимся в файлах, и к устройствам системы.

6. Достаточно большое количество приложений, в том числе свободно распространяемых.

2. Взаимодействие процессов. Задача взаимного исключения. Вариант 4 (1, 16, 18) – 146

Если двум или более процессам необходимо взаимодействовать друг с другом, то они должны быть связаны, то есть иметь средства для обмена информацией. Предполагается, что процессы связаны слабо. Под этим подразумевается, что кроме достаточно редких моментов явной связи эти процессы рассматриваются как совершенно независимые друг от друга. В частности, не допускаются какие-либо предположения об относительных скоростях различных процессов. В качестве примера рассматривается два последовательных процесса, которые удобно считать циклическими. В каждом цикле выполнения процесса существует критический интервал. Это означает, что в любой момент времени только один процесс может находиться внутри своего критического интервала. Чтобы осуществить такое взаимное исключение, оба процесса имеют доступ к некоторому числу общих переменных. Операции проверки текущего значения такой общей переменной и присваивание нового значения общей переменной рассматриваются как неделимые. То есть, если два процесса осуществляют присваивание новое значение одной и той же общей переменной одновременно, то присваивание происходит друг за другом и окончательное значение переменной одному из присвоенных значений, но никак не их смеси. Если процесс поверяет значение переменной одновременно с присваиванием ей значения другим процессом, то первый процесс обнаруживает либо старое, либо новое значение, но никак не их смесь.

int flag[2]; begin integer С1,С2;

С1 := 1; С2 := 1;

void P0() parbegin

{ процесс 1: begin L1: С1 := 0;

while (1) if (С2 = 0) then begin

{ C1 := 1;

flag[0]=1; goto L1;

while (flag[1]) end;

{ критический интервал 1;

flag[0]=0; С1 := 1;

задержка; остаток цикла 1;

flag[0]=1; goto L1;

} end;

критический интервал 1; процесс 2: begin L2: С2 := 0;

flag[0]=0; if (С1 = 0) then begin

. C2 := 1;

} goto L2;

} end;

void P1() критический интервал 2;

{ С2 := 1;

while (1) остаток цикла 2;

{ goto L2;

flag[1]=1; end;

while (flag[0]) parend;

{ end;

flag[1]=0;

задержка;

flag[1]=1;

}

критический интервал 2;

flag[1]=0;

.

}

}

void main()

{

flag[0]=0;

flag[1]=0;

parbegin(P0,P1);

}

Для доказательства корректности задачи взаимного исключения необходимо проверить три положения.

1. Решение безопасно в том смысле, что два процесса не могут одновременно оказаться в своих критических интервалах

2. В случае сомнения, кому из двух процессов первому войти в критический интервал, выяснение этого вопроса не откладывается до бесконечности

3. Остановка какого-либо из процессов в остатке цикла не вызывает блокировки другого процесса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]