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

2.Взаимодействие последовательных процессов. Задача взаимного исключения. Вариант2.

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

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

void P0() С1 := 1; С2 := 1;

{ parbegin

while (1) процесс 1: begin L1: if (С2 = 0) then goto L1;

{ С1 := 0;

while (flag[1]); критический интервал 1;

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

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

flag[0]=0; goto L1;

. end;

} процесс 2: begin L2: if (С1 = 0) then goto L2;

} С2 := 0;

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

{ С2 := 1;

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

{ goto L2;

while (flag[0]); end;

flag[1]=1; parend;

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

flag[1]=0;

.

}

}

void main()

{

flag[0]=0;

flag[1]=0;

parbegin(P0,P1);

}

Недостаток. При развитии процессов строго синхронно они могут одновременно войти в критический интервал.

3. Описание процесса, таблица процесса (6) – 136

ОС можно представить как некий механизм, управляющий тем, как процессы используют системные ресурсы. И т.к. одна из задач ОС - управление процессами и ресурсами, то ОС должна располагать информацией о текущем состоянии каждого ресурса и процесса. Для этих целей ОС создает и поддерживает таблицы с информацией по каждому объекту управления. Общая структура таблиц:

Таблицы памяти используются для того, чтобы следить за основной и вторичной (виртуальной) памятью. Часть основной памяти резервируется для ОС, остальная доступна процессам.

Эти таблицы включают следующую информацию:

1) объем основной памяти, отведенной процессу;

2) объем вторичной или виртуальной памяти, отведенной процессу;

3) все атрибуты защиты блоков основной и виртуальной памяти;

4) всю информацию, необходимую для управления виртуальной памятью.

Таблицы ввода-вывода.

Используются для управления устройствами ввода-вывода и каналами компьютерной системы. В каждый момент времени устройство ввода-вывода может быть либо свободным, либо отданным в распоряжение какому-либо процессу. Если выполняется операция ввода-вывода, то должна быть информация о состоянии этой операции. Например, какие адреса ОП задействованы в этой операции, кто является отправителем и получателем отправляемой информации.

Таблицы файлов.

В них находится информация о существующих файлах, их расположение на магнитных носителях, текущем состоянии и других атрибутов. В ОС может быть специальная подсистема управления памятью.

Таблицы процессов.

Содержат сведения о процессах, располагая которыми ОС может управлять процессами.

Для эффективного управления информацией, которая хранится в таблицах, должны иметься перекрестные ссылки и находится в определенном взаимодействии, особенно в таблицах процессов по отношению к таблицам ресурсов. Для создания этих таблиц ОС должна иметь информацию о конфигурации вычислительной системы: объем основной памяти, количество и вид устройств ввода/вывода, отнесение портов ввода/вывода к устройствам, информация о внешних устройствах хранения данных и т.п. Эти данные могут создаваться с участием оператора или с помощью специальных программ определения конфигурации вычислительной системы.

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