
- •Вопрос1. Понятие программного обеспечения (по). Классификация программного обеспечения по выполняемым функциям. Основные свойства системного программного обеспечения и структура системного по.
- •Вопрос 2 .Операционные системы как ядро системного программного обеспечения
- •1)Управление процессами (программ во время выполнения);
- •Вопрос3 Классификация ос (по структуре и архитектурным принципам построения, по режимам работы). Примеры.
- •4) Общие принципы построения ос. Основные характеристики современных ос. Примеры реализации общих принципов и особенности организации и функционирования ос.
- •Вопрос 5. Определение и классификация ресурсов
- •Вопрос 6.Определение и классификация процессов. Примеры. Процессы и потоки.
- •Вопрос 7. Состояние процессов и функции ос по управлению процессами. Задачи, решаемые ос при реализации функций. Примеры решения.
- •Вопрос 8 . Проблема взаимного исключения. Понятие критической секции, её свойства, условия реализации. Примеры.
- •Вопрос 9. Программные методы реализации взаимного исключения. Примеры.
- •Вопрос 10. Понятие семафора, семафорные примитивы. Примеры объектов диспетчеризации в ms Windows, которые могут использоваться как «семафоры».
- •Вопрос 11. Применение бинарных семафоров для реализации взаимного исключения и синхронизации процессов.
- •Вопрос 12. Общие семафоры, решение задачи «писателей и читателей» при работе с циклическим буфером.
- •Вопрос 13. Проблема тупика и задачи, связанные с решение проблемы тупика. Примеры.
- •Вопрос 14. Задача предотвращения тупика, подходы к решению. Примеры.
- •Вопрос 15. Математическая модель для определения тупика. Определение заблокированных процессов, процессов, находящихся в тупике. Определение состояния тупика. Понятие выгодного состояния. Примеры.
- •Вопрос 16. Модель системы с повторно используемыми ресурсами (граф повторно используемых ресурсов). Примеры.
- •Вопрос 17. Модель системы с потребляемыми ресурсами (граф потребляемых ресурсов). Примеры.
- •Вопрос 18. Система с повторно используемыми и потребляемыми ресурсами (граф обобщённых ресурсов). Примеры.
- •Вопрос 19. Решение задачи распознавания тупика для систем с повторно используемыми ресурсами: основная теорема о тупике. Примеры редукции.
- •Вопрос 21. Распознавание тупиков в системах с повторно используемыми ресурсами с ограничениями на запросы. Примеры.
- •Вопрос 22. Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: алгоритм редукции. Примеры.
- •Вопрос 23. Распознавание тупиков в системах с потребляемыми ресурсами и в системах с обобщёнными ресурсами: системы с ограничениями на выполнение операций. Примеры.
- •Вопрос 24. Вывод системы из тупика. Общий подход и частный случай.
- •Вопрос 25. Обходы тупиков. Алгоритм банкира. Примеры.
Вопрос 17. Модель системы с потребляемыми ресурсами (граф потребляемых ресурсов). Примеры.
Для систем с потребляемыми ресурсами также можно ввести графовую модель для исследования проблемы тупика - граф потребляемых ресурсов (ПР).
Потребляемый ресурс (ресурс типа CR) - это ресурс, обладающий следующими свойствами:
число единиц потребляемого ресурса изменяется по мере того, как приобретаются (расходуются) процессами-потребителями и освобождаются (производятся) процессами производителями отдельные его элементы; потенциально число таких элементов неограниченно (но конечно в каждый момент времени);
процесс-производитель увеличивает число единиц ресурса, освобождая одну или более единиц этого ресурса, которые он создает;
процесс-потребитель уменьшает число единиц ресурса, запрашивая и приобретая одну или более единиц этого ресурса; приобретенные единицы ресурса не возвращаются в систему.
В качестве потребляемых ресурсов могут выступать, например, записи, размещенные в буфере программой ввода и считываемые прикладной программой, сигналы, передаваемые процессами друг другу.
Теоретически нет ограничений на число запрашиваемых и освобождаемых единиц потребляемых ресурсов при условии, что запрашивается и освобождается всегда конечное их количество.
Системы с потребляемыми ресурсами также обладают свойствами, которые отличают их от систем с повторно используемыми ресурсами:
состояние является тупиковым тогда и только тогда, когда все процессы заблокированы (в противном случае, если есть хотя бы один незаблокированный процесс, он может произвести требуемое количество какого-либо ресурса, активизировав таким образом процессы, ожидающие появления этого ресурса, и так далее);
ни одно состояние системы с ПР не является безопасным, так как все незаблокированные процессы могут последовательно запросить количество ресурсов, превышающее имеющиеся их запасы.
В системах с потребляемыми ресурсами должны быть известны их производители. Допустим, что процессы-производители для каждого потребляемого ресурса известны априори. Это значит, что множество процессов, которые могут выполнять операции освобождения ресурсов, определено и фиксировано.
При сформулированных ограничениях можно ввести определение графа ПР (CR-графа), представляющего состояние системы с потребляемыми ресурсами.
Граф потребляемых ресурсов - это ориентированный двудольный граф
CR = (N, E),
где N есть множество вершин:
N =
( = { p1 , p2 , ..., pn}- конечное множество вершин, представляющих процессы в ВС, = { R1 , R2 , ..., Rm} - конечное множество вершин, соответствующих CR-ресурсам ВС; = ), а E - множество дуг графа:
E ( ) ( ),
причем элементы графа обладают следующими свойствами:
Ri - вершина, представляющая потребляемый ресурс Ri , имеет пометку - неотрицательное целое число ti, обозначающее число доступных для распределения в данный момент единиц этого ресурса;
pj - вершина, представляющая процесс pj в системе;
для каждого ресурса Ri существует непустое множество процессов-производителей этого ресурса (Ri) и граф ПР содержит дугу производителя ( Ri, pj ) для каждого pj (Ri) по всем Ri ;
Ri pj - обозначение ребра (дуги) производителя ресурса Ri ;
ребра производителя являются постоянными в графе потребляемых ресурсов и никогда не уничтожаются;
pj k Ri - дуга ( pj , Ri ) с весом | ( pj , Ri ) | = k, представляющая выполненный процессом pj , но пока не удовлетворенный запрос на k единиц потребляемого ресурса Ri .
-
Процесс 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.