- •№1 Типы и поколения ос. Эволюция ос и ее связь с развитием аппаратных ресурсов эвс.
- •№2 Понятие об операционной системе, ее функциях и составе.
- •№3 Концепция процесса. Состояния процесса.
- •№4 Описание процесса в ос. Операции над процессами.
- •№5 Граф состояний процесса. Управление переходами.
- •№6 Процессы и потоки.
- •№7 Архитектуры ос. Функции ядра.
- •№8 Управление потоками. Многопоточное программирование.
- •№9 Проблема тупиков в ос. Необх условия возникновения тупиков
- •№10 Предотвращение тупиков. Принципы Хавендера.
- •№11 Обнаружение тупиков
- •№12 Обход тупиков. Алгоритм банкира.
- •№13 Прерывания ос и bios. Обработка прерываний.
- •№14. Организация оперативной памяти. Однопрограммные системы. Оверлеи.
- •№15. Организация оперативной памяти. Мультипрограммные системы.
- •№ 16 Основные функции системы управления памятью.
- •№17 Организация оперативной памяти. Основные способы.
- •№18 Организация оперативной памяти. Системы со свопингом.
- •№19. Виды памяти вычислительных систем.
- •№20 Виртуальная память, назначение, основные проблемы. Методы организации.
- •№21 Задачи менеджера виртуальной памяти.
- •№22 Страничная организация виртуальной памяти.
- •№23 Сегментная организация виртуальной памяти.
- •№24 Сегментно-страничная организация виртуальной памяти.
- •№25 Концепция локальности и теория рабочего множества.
- •№26 Стратегии решения задачи замещения страниц при управлении виртуальной памятью.
- •№27 Управление процессами, переключение контекста, приоритеты.
- •№28 Управление процессами. Основные стратегии.
- •№29 Управление процессами. Цели и критерии.
- •№30. Организация файлов. Функции файловой системы. Распределение внешней памяти.
- •№31.Файловая система. Методы поблочного отображения.
- •№32. Hpfs, ntfs и cdfs. Управление доступом к файлам.
- •№33.Устройство нмд. Управление дисками. Критерии планирования.
- •№34.Управление дисками. Основные стратегии управления.
- •№35. Пути повышения производительности дисковых накопителей. Raid0, raid1
- •№36. Пути повышения производительности дисковых накопителей. Raid5, raid6.
- •№37.Пути повышения производительности дисковых накопителей. Raid7, matrix raid.
- •№38. Параллельные асинхронные процессы. Проблемы управления.
- •№39. Программное решение задачи взаимного исключения.
- •№40.Способы синхронизации процессов.
- •№41. Семафоры. Синхронизация и взаимоисключение при помощи семафоров.
- •№42.Межпроцесная коммуникация. Разделяемая память, сообщения.
- •№43.Межпроцесная коммуникация. Pipes и sockets.
- •№44. Защита операционных систем. Цели и методы. Методы идентификации пользователей.
- •45.Защита от вирусов. Методы.
- •№46. Особенности работы операционных систем в сетях.
- •№47.Кластерные вычислительные системы типа CoPc.
- •№48. Параллельные вычисления. Метод Монте-Карло.
- •№49. Параллельные вычисления. Численное интегрирование.
- •№50. Методы распределения нагрузки в параллельных системах.
- •№51.Основные направления развития ос.
- •№52. Прерывания. Обработчики прерываний. Маскирование прерываний.
- •Типы прерываний
№10 Предотвращение тупиков. Принципы Хавендера.
Хавендер показал, что для предотвращения тупика необходимо нарушить одно из необходимых условий его возникновения.
Принципы Хавендера:
Процесс запрашивает все нужные ресурсы сразу. До выделения – ждет.
Нарушается условие возникновения тупиков - Удержание ресурсов на время ожидания следующего;
Плюс: простота реализации.
Минусы:
Как определить набор всех необходимых процессу ресурсов?
Простой свободных ресурсов.
Накапливание ресурсов приводит к высоким издержкам.
Если процессу не выделяется очередной ресурс, он должен отдать уже выделенные.
Нарушается условие возникновения тупиков- Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);
Минусы:
Как сохранить промежуточные результаты работы процесса?
Возможность бесконечного откладывания (дефицитный ресурс).
Вводим линейную упорядоченность на типы ресурсов. Процесс может запросить ресурсы только в порядке увеличения номера ресурса.
Нарушается условие возникновения тупиков - Существование кольцевой цепи запросов.
Плюс: кажущаяся простота реализации.
Минусы:
Сложно вводить в систему новые ресурсы (ОС).
Кто знает «правильную» последовательность ресурсов?
Трансляторы тоже должны знать номера ресурсов, а это сложно и снижает мобильность систем.
Условие монопольного управления Хавендер не нарушает
№11 Обнаружение тупиков
Обнаружение тупика – установление факта наличия в системе процессов ожидающих «нереализуемое» состояние.
Основной подход к решению – построение графа распределения ресурсов и нахождение в нем циклов. (Чрезвычайно затратный подход. На практике в чистом виде не используется.)
Восстановление работы системы – продолжение работы некоторых процессов после устранения причины тупика.
Сложности решения:
Неочевидность тупика.
Трудно остановить процесс в произвольной точке кода.
Большие накладные расходы на реализацию сохранения результатов.
В системах с большим числом разноприоритетных процессов трудно удалить процессы с высоким приоритетом.
Виртуализация ресурсов – средство борьбы с тупиками
Система не устраняет условий возникновения тупиков – при возникновении конкурирующих запросов ВСЕ ресурсы могут быть заменены на «виртуальный аналог».
Особенности решения:
Алгоритмически простое решение.
Формально, не боится большого числа процессов.
Сложность возврата из «виртуального мира» в реальный в случае иерархической виртуальности.
№12 Обход тупиков. Алгоритм банкира.
Алгоритм банкира – ресурсы процессу можно выдавать только в том случае, если состояние системы останется надежным.
Надежное состояние – ОС гарантирует всем процессам завершение в конечное время.
Введем следующие обозначения:
M(i) – максимальная потребность i-го процесса в ресурсе;
L(i) – текущая величина ресурса, выделенного i-му процессу;
С(i) – текущая потребность в ресурсе, C(i)=M(i)-L(i);
Т – суммарный ресурс, имеющийся в системе;
а – остаточный ресурс, а=Т-L(i);
Пусть в некоторый момент времени в системе существуют три процесса.
|
L(i) |
M(i) |
C(i) |
Process 1 |
1 |
4 |
3 |
Process 2 |
4 |
6 |
2 |
Process 3 |
5 |
8 |
3 |
a |
2 |
Решение примера