Читайте также:
|
|
Пусть два процесса используют один и тот же диск. При выдаче команды чтения с диска запускается новый процесс - процесс чтения, который подводит головку к нужному месту диска, считывает некоторое число байтов в указанное место памяти и возвращает управление в процесс, выдавшей команду "читать".
Пусть головка установлена на необходимый участок файла первого процесса. Первый процесс заблокирован, пока данные к нему не поступят. ЦП свободен. Предположим, что второй процесс начал выполняться тоже с команды чтения, но другого файла. Если не предпринять никаких мер, он переустановит головку под себя. В это время команда чтения первого процесса прочтет уже не свой участок диска, а чужой, так как головка переустановлена.
Чтобы такого не произошло, ОС не будет выполнять чтение для второго процесса, пока не выполнит чтение (все три действия) для первого процесса. Все эти действия выполняются как неделимый процесс, как одна команда. Все другие процессы не смогут работать с этим ресурсом (общий диск), пока не будет обслужен первый процесс.
Под взаимоисключением понимают, когда каждый процесс, обращающийся к разделяемым ресурсам, исключает для всех других процессов возможность одновременной работы с ним.
Под разделяемым ресурсом понимают такой ресурс, который разделяется между процессами, т.е. является общим (поля памяти, ПУ, файлы и т.п.).
Дата добавления: 2015-10-02; просмотров: 75 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Взаимодействие процессов | | | Критические интервалы |