|
1. Пусть в системе есть два процесса P1 и P2 и два единичных повторно используемых ресурса R1 и R2. Процессы имеют следующее описание:
Процесс 1 | Процесс 2 |
process P1; begin... While true do begin … request ( R1, 1 ); ... request ( R2, 1 ); ... release ( R2, 1 ); ... release ( R1, 1 ); ... end ... end. | process P2; begin... While true do begin … request ( R2, 1 ); ... request ( R1, 1 ); ... release ( R2, 1 ); ... release ( R1, 1 ); ... end ... end. |
Постройте граф состояний системы (опишите множество процессов, множество ресурсов и все возможные состояния системы и переходы между ними). Возможны ли в системе тупиковые состояния? Обоснуйте ответ теоретически (с точки зрения выполнения необходимых условий возникновения тупика). Покажите тупиковые состояния, если они есть, в построенном графе. Есть ли безопасные состояния в построенном графе? Покажите состояния, в которых процессы заблокированы, но не находятся в тупике.
-тупиковые состояния - процесс заблокирован, но не в тупике
Тупиковые состояния возможны т.к. выполняются условия:
1) мультизадачная система
2) монополизация ресурса – взаимное исключение при работе с разделяемыми ресурсами (для последовательно используемых ресурсов).
ожидание ресурса – процесс, запросивший ресурс, не отказывается от своего запроса.
3) неперераспределяемость ресурса – ресурс, который выделен процессу, не может быть перераспределен другому процессу, пока 1-й его не освободит.
4) циклическое ожидание: Если графически представить процессы и ресурсы как вершины графа, операции запроса и выделения ресурса дугами, то циклическое ожидание означает цикл в таком графе ”смертельные объятия”
2. Для описанной выше системы с ПИР покажите, как будут меняться состояния при выполнении процессов, представляя их графами ПИР (выполните «трассировку» для трех возможных вариантов параллельного выполнения процессов). Если имеется тупиковое состояние, покажите с помощью операций над графом ПИР, последовательно выполняя их в соответствии с кодом процессов, каким образом система может перейти в тупиковое состояние.
3. Пусть в системе есть два процесса P1 и P2 и два потребляемых ресурса R1 и R2, используемых этими процессами. Ресурс R1 производится процессом P1, а R2 – P2. Процессы имеют следующее описание:
Процесс 1 | Процесс 2 |
process P1; begin... While true do begin … request ( R2, 1 ); ... release ( R1, 1 ); ... end ... end. | process P2; begin... While true do begin … request ( R1, 1 ); ... release ( R2, 1 ); ... end ... end. |
Постройте граф состояний системы (опишите множество процессов, множество ресурсов и все возможные состояния системы и переходы между ними). Возможны ли в системе тупиковые состояния? Обоснуйте ответ теоретически (с точки зрения выполнения необходимых условий возникновения тупика). Покажите тупиковые состояния, если они есть, в построенном графе. Есть ли безопасные состояния в построенном графе? Покажите состояния, в которых процессы заблокированы, но не находятся в тупике. Проанализируйте ситуации для различных начальных состояний системы.
Тупиковых состояний нет. Есть только ситуации, когда 1 из процессов остается заблокированным, но не в тупике. Такие ситуации достигаются если в начальный момент времени количество ресурсов: R1=n R2=k, тогда если отработал только процесс 1 k-раз, то ресурс R2 кончится, а чтобы его восстановить надо отработать процессу 1. Тоже самое произойдет и когда процесс 2 в одиночку отработает n-раз.
(эти состояния обозначены )
Тупиковое состояние возникло, если бы в начальный момент времени n=0 и k=0.
4. Для описанной выше системы с ПР покажите, как будут меняться состояния при выполнении процессов, представляя их графами ПР (выполните «трассировку» для различных возможных вариантов параллельного выполнения процессов). Если имеется тупиковое состояние, покажите с помощью операций над графом ПР, последовательно выполняя их в соответствии с кодом процессов, каким образом система может перейти в тупиковое состояние.
Процесс 1 | Процесс 2 |
process P1; begin... While true do begin … request ( R1, 1 );... request ( R2, 1 );... release ( R2, 1 );... release ( R1, 1 );... end... end. | process P2; begin... While true do begin … request ( R2, 1 );... request ( R1, 1 );... release ( R2, 1 );... release ( R1, 1 );... end... end. |
5. Для описанной выше системы с ПИР (задание 1 в данной теме) покажите, покажите, каким образом изменится ее состояние, если процессы «успеют» выполнить следующие действия (в том порядке, который показан ниже – в таблице); впишите в ячейки таблицы операции, которые выполняет система в том порядке (система выделяет ресурсы в ответ на запросы), который обеспечивает данную трассу процессов:
Номер операции при параллельном выполнении процессов | Задание А | |
Процесс 1 | Процесс 2 | |
|
| |
| request ( R2, 1 ); | |
request ( R1, 1 ); |
| |
|
| |
request ( R2, 1 ); |
| |
|
| |
release ( R2, 1 ); |
| |
|
| |
| request ( R1, 1 ); | |
|
| |
release ( R1, 1 ); |
| |
|
| |
| release ( R2, 1 ); | |
|
| |
| release ( R1, 1 ); | |
|
|
Дата добавления: 2015-08-27; просмотров: 48 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Моряк это надо тебе! Читать до конца! Если в голове что то есть - поймешь многое ))) 5 страница | | | Я вспоминаю пару молодых людей, которые много лет назад с улицы пришли на наше служение, Джеймс и Мэри Томас. Эта пара была бездомными бродягами, которые воровали для удовлетворения своего |