
- •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. Графические компоненты
2.Синхронизация посредством операции«проверка и установка»
TS
Вводится переменная common - общая для всех процессов.
Common=1, если какой-либо из процессов находится в своем CS. С каждым процессом связана переменная local1, local2, принимающая значение common при операции TS
и common установившееся в 1 (BTS) в Ассемблере.
Var common, local2, local1: integer;
begin
common:=0
begin
PR1: while true do
begin
local1:=1;
while local1=1 do TS ( local1, common)
CS1;
common:=0;
PR1;
end
and
PR2: while true do
begin
local2:=1;
while local2=1 do TS (local2, common)
CS2;
common:=0;
PR2;
end
end
end.
Пусть должен войти в CS PR1. При этом local1=1.
После TS (local1, common), local1=0, при этом common=1.
PR1 перейдет в CS. После выполнения CS1 common=0, что даст возможность PR2 войти в CS2.
3.Семафоры
Термин «семафор» введен Даркстройем.
Семафор – переменная специального типа, которая доступна параллельным процессам для проверки над ней только 2-х операций:
- «закрытия» P;
- «открытия» V;
Семафор выполняет роль критического ресурса.
Схема работы семафора:
Сначала исследуется состояние критического ресурса, идентифицируемое значение семафора, а затем осуществляется доступ к критическому ресурсу или отказ от него на время.
При отказе доступа к критическому ресурсу исполняется режим «пассивного ожидания» и является примитивами относительно семафора.
Смысл P(S) заключен в проверке текущего значения семафора, и если S<0 , то осуществляется переход к следующей за примитивом операции. В противоположном случае процесс находится в состоянии «пассивного ожидании».
V(S) связана с увеличением значения семафора на единицу перевода одного или нескольких процессов в состоянии готовности к центральному процессору.
initSem - инициализация семафора
initSem (имя семафора, начальное значение семафора)
var S: semafor;
begin initsem (S,1);
begin
PR1: while true do
begin P(S);
CS1
V(S)
end
and
PR2: while true do
begin P(S);
CS2
V(S)
end
end
end.
Семафор S имеет начальное значение равное P. Если PR1 и PR2 попытаются одновременно выполнить P(S), то это удастся успешно сделать только одному из них. Пусть это сделал PR2, тогда он закрывает семафор S, после чего выполняется CS2. PR1 в рассмотренном состоянии будет заблокирован на семафоре S. После выполняется V(S) процессором PR2семафор открывается, указывая на возможность захвата каким-либо процесса освободившегося критического ресурса. При этом производится перевод PR1 из заблокированного состояния в состояние готовности.
Мьютиксы – простейшие двоичные семафоры, которые могут находиться в одном из двух состояний – отличном или неотличном (открытом или закрытом).
Когда какая-либо задача, принадлежащая какому-либо процессу, становится объекта mutex, то mutex переводится в неотличное состояние. Если задача освобождает мьютекс, то его состояние становится отличным.
Createmutex - создать
Openmutex - открыть
WaitForSingleObject - ожидание
Releasemutex - освобождение