
- •Вопрос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. Обходы тупиков. Алгоритм банкира. Примеры.
Вопрос 16. Модель системы с повторно используемыми ресурсами (граф повторно используемых ресурсов). Примеры.
Повторно используемый ресурс (ПИР или ресурс типа SR) - это ресурс, состоящий из конечного множества идентичных единиц со следующими свойствами:
число единиц ресурса постоянно;
отсутствует возможность разделения ресурса (параллельного использования одних и тех же единиц ресурса несколькими процессами) - ресурс захватывается процессом, которому он выделен, в монопольное использование;
процесс может освободить только те единицы ресурса, которые ему были ранее распределены по его запросам.
Состояние системы с повторно используемыми ресурсами может изменяться только тремя операциями:
request (Ri, k) - запрос процесса pj, выполняющего данную операцию, на k единиц ресурса Ri ;
приобретение ресурса (выделение ресурса процессу pj в соответствии с выполненным им ранее запросом);
release (Ri, k) - освобождение процессом pj k единиц ранее выделенного ему ресурса Ri .
Операции запроса на ресурс и освобождения ресурса выполняются процессом, а операция выделения ресурса - системой в ответ на запрос, сделанный процессом.
Граф ПИР (SR-граф) - ориентированный двудольный граф
SR = (N, E),
где N есть множество вершин:
N =
( = { p1 , p2 , ..., pn}- конечное множество вершин, представляющих процессы в ВС, = { R1 , R2 , ..., Rm} - множество вершин, соответствующих SR-ресурсам ВС; = ), а E - множество дуг графа:
E ( ) ( ),
причем элементы графа обладают следующими свойствами:
Ri - вершина, представляющая повторно используемый ресурс Ri , имеет пометку - пару (ci, ti ), где ci - емкость данного ресурса, а ti - количество единиц ресурса, доступных для распределения (свободных) в данный момент;
pj - вершина, представляющая процесс pj в системе;
pj k Ri - ребро ( pj , Ri ) с весом | ( pj , Ri ) | = k, представляющее вып олненный процессом pj , но пока не удовлетворенный запрос на k единиц повторно используемого ресурса Ri ;
R
i k pj - ребро ( Ri, pj ) с весом | ( Ri, pj ) | = k, представляющее все распределения ресурса Ri процессу pj по его удовлетворенным запросам ;
каждый запрос, выполняемый процессом pj на ресурс Ri должен удовлетворять ограничению:
| ( Ri, pj ) | + | ( pj , Ri ) | ci,
т
о
есть сумма выполненных распределений
и запросов конкретного ресурса
относительно любого из процессов не
может превышать количества единиц
ресурса, имеющихся в системе для всех
i
и j
(i
= 1, m,
j
= 1, n
); в противном случае запрос считается
ошибочным и не может быть выполнен;
в общей сложности в системе для каждого ресурса Ri может быть сделано не более чем ci назначений, то есть
n
| ( Ri, pj ) | ci
j = 1
-
Процесс 1
Процесс 2
process P1 ;
begin ...
request ( R1, 1) ;
...
request ( R2, 1) ;
...
release ( R2, 1) ;
...
release ( R1, 1) ;
...
end.
process P2 ;
begin ...
request ( R2, 1) ;
...
request ( R1, 1) ;
...
release ( R2, 1) ;
...
release ( R1, 1) ;
...
end.
Предположим, что процессы выполняют свои операции над ресурсами в порядке, который приводит к изменению состояний системы, показанному последовательно изменяемыми графами ПИР, приведенными на рис.2.10. Последний граф ПИР соответствует тупиковому состоянию системы S7 (процессы P1 и P2 взаимно блокируют друг друга). Другая последовательность выполнения операций могла бы позволить процессам успешно завершиться.
Пример 2. В системе выполняются n процессов и существует разделяемый повторно используемый ресурс R емкости m. Описание программы каждого процесса выглядит следующим образом:
process P1 ;
begin ...
request ( R, 1) ;
...
request ( R, 1) ;
...
release ( R, 1) ;
...
release ( R, 1) ;
...
end.