
- •1. Эволюция операционных систем Операционные системы
- •Эволюция ос
- •2. Операционные системы (ос). Классификация ос по особенностям алгоритмов управления.
- •4. Поддержка многонитевости систем
- •3. Операционная система. Классификация спо по особенности аппаратных платформ.
- •1. Ос больших машин
- •Особенности методов построения.
- •5. Процесс, состояния процесса, свойства процессов.
- •Свойства процессов.
- •Процесс. Классификация процессов.
- •7. Ресурс, свойства ревурсов.
- •Свойства ресурсов
- •Ресурсы. Классификация ресурсов
- •6.По функциональной избыточности (изменчивости):
- •8.По восстанавливаемости:
- •9.По характеру использования:
- •Реализация понятия последовательного процесса в операционной системе
- •Потоки (нити, треды)
- •Дисциплины диспетчеризации
- •Планирование и диспетчеризация процессов и задач
- •10. Прерывания
- •Виды прерываний:
- •Дисциплины диспетчеризации
- •12. Архитектура ос.
- •Вспомогательные модули
- •Средства аппаратной поддержки ос
- •Микроядерная архитектура
- •2.Расширяемость
- •15. Файловая система. Структура магнитного диска.
- •16. Физическая организация fat
- •Загрузочная запись dos
- •17. Файловая система hpfs
- •Структура раздела hpfs.
- •18. Ntfs
- •19.Проектирование взаимодействующих вычислительных процессов (взаимное исключение). Синхронизация посредством операции ‘проверка - устаовка’.Семафоры.
- •1.Проектирование взаимодействующих вычислительных процессов (взаимное исключение).
- •2.Синхронизация посредством операции«проверка и установка»
- •3.Семафоры
- •20. Мониторы хоара. Почтовые ящики, конвейеры, тупики. Мониторы хоара.
- •Почтовые ящики
- •Конвейеры
- •Тупики:
- •21. Структура современных систем программирования.
- •22. Основные принципы построения транслятора.
- •4. Построение на основе хэш – функции.
- •23. Лексический анализатор, синтаксический разбор основные принципы построения транслятора.
- •24. Семантический анализ, подготовка к генерации кода, генерация кода основные принципы построения транслятора.
- •25. Регистры общего назначения. Команда mov.
- •Команда mov.
- •26. Назначение сегментов. Реализация арифметических операций на ассемблере. Назначение сегментов
- •Операция умножения
- •Операция деления
- •Определение данных. Организация условного и безусловного перехода на ассемблере
- •28. Логика и организация циклических вычислений с помощью команды loop
- •Команды логических операций
- •29. Регистрфлагов
- •30. Команды обработки строковых данных в ассемблере.
- •Команды обработки строк
- •31. Понятие объектно-ориентированной модели программных компонент delphi
- •31. Структура интерфейса визуальной среды delphi
- •35. Объект: понятие, свойства.
- •Понятие Свойства и События
- •34.Основные события
- •32.Описание и назначение основных компонент выбора вариантов стандартной панели
- •Отладка модулей проекта
- •Отладка синтаксических ошибок
- •Отладка логических ошибок
- •37. Графические компоненты
20. Мониторы хоара. Почтовые ящики, конвейеры, тупики. Мониторы хоара.
Так как семафоры слишком примитивны, т.е. не указывают на синхронизирующее устройство, с которым он связан, или на критический ресурс. Алгоритмы становятся сложными, ненаглядными.
Поэтому разработали мониторы Хоара.
Монитор – пассивный набор разделяемых переменных и повторно входимых процедур доступа к ним, которым процессы пользуются в режиме разделения, причем в каждый момент им может пользоваться только один процесс.
Процесс, желающий получить доступ к разделяемым переменным, должен обратиться к монитору, который либо предоставит доступ, либо
Откажет в нем. Если ресурс занят, то процедура монитора выдает команду ожидание WAIT с указанием условия ожидания.
Если со временем процессы ожидают освобождение данного ресурса, то монитор выполняет команду извещение SIGNAL, чтобы один из ожидающих процессов мог получить данный ресурс и покинуть монитор.
Пример монитора Хоара:
monitor resourse;
conolition free; { условие свбодный}
var busy: Boolean { busy - занят}
procedure REQUEST;
begin
if busy then WAIT (free);
busy:=true;
take off; {выдать ресурс}
end;
procedure RELEASE;
begin
take on;
busy:=false;
SIGNAL (free)
end;
begin
busy:=false;
end.
Ресурс динамически запрашивается и освобождается процессами, которые обращаются к процессу REQUEST и RELEASE. Если PR обращается к REQUEST в тот момент, когда ресурс используется, busy:=true и REQUEST выполняет операцию монитора WAIT (free). Эта операция блокирует процесс, обратившихся к процедуре REQUEST. Процесс помещается в конец очереди процессов, ожидающих, пока не будет выполнено условие free.
Когда PR, использует ресурс и обращается к RELEASE, операция монитора SIGNAL деблокирует процесс, находящийся в начале очереди, не позволяя, исполнятся никакой другой процедуре внутри того же монитора. Если SIGNAL выполняется в то время, когда нет процесса, ожидаемого условия вне, то никакие действия не выполняются.
Почтовые ящики
Для хранения посланного, но ещё не полученного сообщения необходимо место – буфер сообщений (почтовый ящик).
Для того чтобы послать процессору Р2 какое-то сообщение, процессР1 просто помещает это сообщение в почтовый ящик, откуда процесс Р2 может его в любое время взять.
Почтовый ящик состоит из головного элемента, в котором находится информация в данном почтовом ящике, и из нескольких буферов, в которые помещают сообщения.
Двунаправленные почтовые ящики, позволяют подтверждать прием сообщений.
Реализация – с помощью примитивных операторов P и V, или с помощью процедур:
- SEND_MESSAGE (получать, сообщение, буфер)- переписать сообщение;
- WAIT_MESSAGE (отправитель, сообщение, буфер) – блокировать процесс и т.д., пока в очереди не появится сообщение и т.д.