Содержание
- 2. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.2. Пример monitor Буфер; сonstant ДлинаБуфера = 100; var
- 3. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 Обеспечивается взаимное исключение доступа к ресурсам, описанным в мониторе
- 4. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.4. Процедура доступа monitor Буфер; . . . procedure
- 5. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.4. Сигналы Операции над сигналами: Сигнал S = new
- 6. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.5. Использование сигналов в мониторе var Полон, Пуст: Сигнал;
- 7. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 function Прочитать(): Данное begin if(СчетчикЗаписей = 0) then wait(Пуст)
- 8. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 Поставщик Буфер var Полон, Пуст: Сигнал; procedure Записать function
- 9. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.6.1. Почему сигналы? Допустим, сигналов нет. Тогда просматриваются только
- 10. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.6.1.1. Почему сигналы? Процесс I Монитор function Действие: boolean;
- 11. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.6.1.2. Почему сигналы? 2.Процесс «сам анилизирует» возможность доступа и
- 12. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.7. Пример 1 - задача «Читатели-Писатели» Информационный фонд П1
- 13. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.7.1. Схема реализации monitor ЧП; var МожноЧитать, МожноПисать: Сигнал;
- 14. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.7.2. Начало чтения procedure НачалоЧтения(); begin if(КтоТоПишет)or(check(МожноПисать)>0) then wait(МожноЧитать)
- 15. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.7.3. Конец чтения procedure КонецЧтения(); begin Читатели:= Читатели -
- 16. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.7.4. Начало записи procedure НачалоЗаписи(); begin if(Читатели > 0)or(КтоТоПишет)
- 17. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.7.5. Конец записи procedure КонецЗаписи(); begin КтоТоПишет:= false; if(check(МожноЧитать)
- 18. 7. Монитор Сидельников В.В. [email protected] 2005 v.01 7.8. Пример 2 - реализация механизма семафоров через монитор
- 20. Скачать презентацию