- •Основные элементы компьютерных систем. Регистры процессора.
- •Исполнение команд. Категории команд. Понятие прерывания.
- •Многозадачность. Обработка прерываний. Множественные прерывания.
- •4. Иерархия запоминающих устройств. Кэш памяти.
- •5. Технологии ввода-вывода.
- •6. Функции операционных систем. Уровни вычислительной системы.
- •7. Понятие процесса. Требования к многозадачной ос. Модель процесса с двумя состояниями. Родительский и дочерний процессы. Создание и завершение процессов.
- •8. Модель процессов с 5 состояниями. Очереди блокированных процессов.
- •9. Свопинг. Приостановленные процессы.
- •10. Описание процессов в ос. Атрибуты процессов.
- •12. Параллельные вычисления: основные проблемы, способы взаимодействия процессов.
- •13. Взаимоисключение, критические интервалы. Понятия взаимоблокировки и голодания.
- •14. Взаимодействие процессов: семафоры.
- •15. Взаимодействие процессов: мониторы.
- •16. Взаимодействие процессов: передача сообщений.
- •31. Устройства ввода-вывода, их классификация. Эволюция функций ввода-вывода
- •32. Основные цели при проектировании ввода-вывода в ос. Иерархия управления вводом-выводом.
- •33. Буферизация ввода-вывода.
- •34. Параметры производительности диска. Стратегии дискового планирования
- •35. Дисковый кэш. Алгоритмы замещения.
13. Взаимоисключение, критические интервалы. Понятия взаимоблокировки и голодания.
При конкуренции процессов за память возникает необходимость взаимоисключения (только один процесс может работать)
Критический интервал - часть программы, которая может быть выполнена только одним процессом целиком.
Взаимоблокировка возникает в многозадачных многопользовательских ОС. Чем большее количество различных задач выполняется на машине, и чем меньше ее ресурсы, тем больше вероятность возникновение взаимоблокировок. При этом ситуация напоминает подающий с горы снежный ком. Количество блокированных процессов быстро возрастает до тех пор, пока в системе не останется не одного работающего процесса. ОС практически полностью прекращает полезное функционирование а ЭВМ простаивает.
Имеются различные способы выхода из блокировок:
Снятие оператором выполняющихся процессов до тех пор, пока не исчезнет взаимоблокировка. Этот путь эффективен лишь в том случае, когда количество выполняющихся процессов не очень велико (например не более 100). При большом количестве выполняющихся процессов этот путь чаще всего не помогает преодолеть блокировку.
Перезагрузка системы этот путь преодоления блокировок наиболее радикальный, но и наиболее дорогой.
Рестарт системы с так называемой контрольной точки.
Голодание наступает в результате более сложной ситуации. Пусть есть три процесса P1, P2, P3. Каждый из которых нуждается в каком либо неразделяемом ресурсе. Пусть процесс P1 получил доступ к ресурсу и успешно его использует. Параллельно ресурс потребовался процессам P2 и P3. Пусть процессы P1 и P2 имеют больший приоритет, чем процесс P3. Тогда после завершения использования ресурса процессом P1 начнет продолжит выполняться процесс P2. Пусть в процессе использования ресурса процессом P2 данный ресурс вновь потребовался процессу P1, а потом он снова потребовался процессу P2, и т.д. В результате ресурс будет переходить от процесса P1 к процессу P2 и наоборот, а процесс P3 так и не получит возможность продолжить работу, хотя, формально, взаимоблокировки не наступало. Данная ситуация носит название голодания.
14. Взаимодействие процессов: семафоры.
Семафоры – все процессы могут взаимодействовать до сигнала.
S
signal(S) сигнал S+1
wait(S) S-1, если S<0, то процесс блокируется.
Бинарные семафоры используют только 0 или 1.
Сильный семафор – Сильный семафор поддерживает модель обслуживания «первым пришел —первым обслужен»
Слабый семафор - Слабый семафор не предоставляет никаких гарантий обслуживания конкретному потоку, в результате поток может попасть в состояние информационного голода.
15. Взаимодействие процессов: мониторы.
Мониторы – удобнее использовать локальные данные и несколько процедур.
1) Локальные переменные доступны только его процедурам.
2) Процесс входит в монитор с помощью вызова одной из его процедур.
3) В мониторе в определенный момент будет выполняться только один процесс.
1. cwait (c)
2. csignal (c)
16. Взаимодействие процессов: передача сообщений.
1) send ( получатель и что отправлено)
2) receive ( отправитель и содержание сообщения)
При обмене сообщений нужна синхронизация возможная реализация (комбинаций)
1) блокирующие получение, блокирующие отправление
2) не блокирующие отправление, блокирующие получение
3) не блокирующие отправление, не блокирующие получение
Это — минимальный набор операций, требующийся процессам для работы с системами передачи сообщений. Процесс посылает информацию в виде сообщения другому процессу, определенному как получатель, вызовом send. Получает информацию процесс при помощи выполнения примитива receive, которому указывает отправителя сообщения.
