- •13. Преобразование адресов в вс
- •14. Построение загрузочного модуля простой структуры
- •15. Загрузочный модуль оверлейной структуры (с перекрытием)
- •16. Загрузочные модули динамической структуры
- •17. Однократно и повторно используемые и повторно входимые программные модули
- •18. Сопрограммы
- •19. Структура и организация управляющей программы ос
- •20. Оценка времени простоя цп в мультипрограммном режиме
- •21. Управление памятью, распределенной статическими разделами.
- •22. Управление памятью, распределенной динамическими разделами.
- •23. Способы уменьшения фрагментации оп.
- •24. Управление страничной памятью по запросам.
- •25. Методы замещения страниц fifo, lru.
- •26. Явление пробуксовки в страничных системах и стратегия рабочего множества.
- •27. Управление памятью с сегментным распределением.
- •28. Управление памятью с сегментно-страничным распределением.
- •29. Понятие процесса. Представление процессов в ос.
- •30. Понятие ресурса. Виды ресурсов.
- •31. Алгоритмы диспетчеризации процессов.
- •32. Взаимодействие и синхронизация процессов. Проблемы "критической секции", "поставщик-потребитель", "читатели-писатели".
- •34. Механизмы синхронизации: post/wait
- •35. Синхронизация посредством обмена сообщениями.
- •36. Тупиковые ситуации в ос
- •37. Прямой и косвенный ввод-вывод.
- •38. Монопольно используемые, разделяемые и виртуальные устройства.
- •39. Планирование запросов для последовательно-разделяемых устройств
- •42. Организация ввода-вывода в диалоговой системе (прямой вв-в)
- •43. Логическая система вв-в
- •44. Буферизация
- •45. Функции системы управления данными
- •46. Доступ к информационному ресурсу
- •47. Управление оп в unix
- •48. Управление процессами в unix
32. Взаимодействие и синхронизация процессов. Проблемы "критической секции", "поставщик-потребитель", "читатели-писатели".
Естественный параллелизм.
Есть несколько физич процессоров, на которых могут выполняться несколько процессов.
START
READ
WATT
END
Проц. вв/выв
может выполняться на ЦП, до тех пор пока он может выполняться без данных введенных и перейдет в процесс ожидания
WATT – синхронизация вв/выв и основной программы.
Логический параллелизм.
Если смесь задач, выполн паралл. Задачи предоставляется квант времени.
Если смесь задач, кот поочередно становятся активными.
Квант времени может принудительно выставляться, либо определяется самим процессом. (∆t=∞ -пакетный режим).
Проблема "критической секции"
M=0
LOAD
R,M INC
R LOAD
M,R
LOAD
R,M INC
R LOAD
M,R
CS CS
C переменной M может работать 2 процесса.
M – число запущенных процессов.
Нельзя, чтобы код CS прерывался, иначе он не выдаст нужное значение.
Ресурс, который допускает обслуживание только одного пользователя назыв "критическим ресурсом"
Если несколько процессов хотят использовать ресурс, то им след. Синхронизировать такие действия, чтобы один пользователь польз. критич ресурсом в данным момент времени.
Внутри каждого процесса – CS работает с крит. ресурсом.
Процессы должны синхронизироваться на основе взаимного исключения.
Условия взаимного исключения.
Если процесс наход в крит секции, то ни какой процесс не может войти в сою крит секцию.
Процесс не должен бесконечно находится в своей критич. секции.
Процесс не может ждать бесконечно долго входа в критич секцию.
Проблема "поставщик-потребитель"
PI0
Pc
F- очередь полных буферов
E – пустых буферов
В начальный момент E=n F=0
PI0 : M: if E=0 goto M - занятое активное ожидание
E--
<ввести запись>
F++
Goto M
Pc : M: if E=0 goto M
F--
<взять запись>
E++
Goto M
E,F - критические ресурсы
Проблема "читатели-писатели"
Есть некоторый множество процессов.
Писатели –пишут инф-ю в некоторый файл
Читатели – читают инф-ю из файла
Если писатель пишет файл, то никто к нему доступ не имеет.
Читатели совместно могут пользоваться файлом.
w=false – кто-то пишет файл
w – возможность доступа к файлу.
R – кол-во читателей
wRi : L: if не w or не (R=0) then goto L;
w=false;
<Запись в файл>
w=true;
end;
Ri: L: if not w then goto L;
R++
<читать >
R--
End
33. Механизмы синхронизации: активное ожидание, семафоры.
Активное ожидание.
Команды процессора не прерываются.
IBM 370: TEST AND SET (проверить и установить)
Записывает FFh
Выдает результат – 0 – предыдущее значение байта 0
1 - перд. значение байта <0
Семафоры.
S – семафор ресурса, открытие или закрытие доступа к этому ресурсу.
Операции над семафорами.
P(S) – Если S > 0 – S—
S=0, то процесс который выдал эту функцию переходит в состояние ожидания
V(S) – S++
Свойства P(S) и V(S)
Непрерываемые
Атрибутивные
V – переводит ожидание в состояние готовности
Пример. Взаимное исключение процессов.
S=1; // семафор открыт, доступ возможен
P1: L1: P(S); CS1; V(S); ….
………………..
Pi: Li: P(S); CSi; V(S); ….
…………………..
Pn: Ln: P(S); CSn; V(S); ….