- •Вопрос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. Обходы тупиков. Алгоритм банкира. Примеры.
Вопрос 25. Обходы тупиков. Алгоритм банкира. Примеры.
Методы обхода тупика можно считать методами предотвращения тупика, но не при проектировании системы, а в процессе ее функционирования.
Наиболее известным алгоритмом предотвращения тупика (или его обхода) является “алгоритм банкира”, предложенный Дейкстрой. Этот алгоритм как бы имитирует действия банкира, который, обладая определенным капиталом, выдает ссуды и принимает платежи.
Банкир (ведет себя соответственно). Клиенты – процессы.
При удовлетворении запроса – ресурс выделяется, если система останется в надежном состоянии.
Надежное состояние – если все процессы системы в течение конечного времени смогут завершить свою работу.
Недостатки алгоритма:
а) для каждого процесса, необходимо указать максимальное количество ресурсов, необходимых для выполнения (сообщается «банкиру» – ОС). При динамическом распределении ресурсов трудно оценить максимальные потребности пользователей.
б) он требует, что бы число работающих пользователей оставалось постоянным.
в) не слишком корректное использование конечного времени выполнения.
г) алгоритм требует, чтобы клиенты гарантированно возвращали ресурсы. В реальных системах требуются гораздо более конкретные гарантии.
ПРИМЕР 1: пусть всего имеется 12 ресурсов.
|
Выделено ресурсов |
МАХ |
Поток 1 |
1 |
4 |
Поток 2 |
4 |
6 |
Поток 3 |
5 |
8 |
В сумме по таблице выделено 1+4+5 = 10, значит 12 – 10 = 2 – резерв.
Надежное состояние, так как потоку 2 можно отдать резерв, он завершится и освободит ресурсы, которые можно перераспределить между 1 и 3.
В ненадежное состояние система перейдет, если первый поток запросит 2 ресурса и они ему будут выделены.
ПРИМЕР 2: пусть всего имеется 12 ресурсов.
|
Выделено ресурсов |
МАХ |
Поток 1 |
8 |
10 |
Поток 2 |
2 |
5 |
Поток 3 |
1 |
3 |
В сумме по таблице выделено 8+2+1 = 11, значит 12 – 11 = 1 – резерв.
Ненадежное состояние.
