Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Синхронизация межпроцессного взаимодействия





· Семафоры

· Мьютексы

· Критические регионы (не являются объектами ядра)

· События

Создание процесса. Процесс создается другим процессом при помощи вызова интерфейса Win32 CreateProcess. Этот вызов обращается (в режиме пользователя) к процедуре в динамической библиотеке kernel32.dll, которая в несколько этапов создает процесс.

Планирование. В системе нет отдельного потока планировщика. Вместо этого, отработавший поток переходит в режим ядра и сам запускает планировщик. Планирование происходит в следующих случаях:

· поток блокируется на семафоре, мьютексе, событии, операции ввода-вывода и т. Д;

· поток сигнализирует каким-либо объектом (например, выполняет операцию up на семафоре);

· истекает квант времени работающего потока.

Планировщик также запускается в следующих случаях:

· Завершается операция ввода-вывода

· Истекает ожидание таймера

Планирование ведется на уровне потоков с использованием приоритетов. Приоритет определяется от приоритета процесса и потока.

Алгоритм планирования – в системе хранится массив [0..31], каждый элемент массива указывает на начало очереди потоков соответствующего приоритета. Для выполнения выбирается поток в начале очереди непустого подмножества самого высокого приоритета. После выполнения, поток перемещается в конец соответствующей очереди.

При определенных условиях текущий приоритет пользовательского потока может быть поднят:

· завершается операция ввода-вывода (1 для диска, 2 для последовательной линии, 6 для клавиатуры и 8 для звуковой карты)

· если поток ждал семафора или мьютекса

· если это поток переднего плана

Система следит, сколько времени прошло с тех пор, когда готовый к работе поток запускался в последний раз. Если какой-либо поток превысит определенный интервал времени, он получает на два кванта времени приоритет 15.

Управление памятью.

В операционной системе Windows 2000 сложная система виртуальной памяти. В ней существует множество функций Win32 для использования виртуальной памяти и часть исполняющей системы плюс шесть выделенных потоков ядра для управления ею.

В операционной системе Windows 2000 у каждого пользовательского процесса есть собственное виртуальное пространство. Виртуальные адреса 32-разрядные, поэтому у каждого процесса 4 Гб виртуального адресного пространства. Нижние 2 Гб за вычетом 256 Мб доступны для программы и данных процесса, верхние 2 Гб защищенным образом отображаются на память ядра. Страницы виртуального адресного пространства имеют фиксированный размер и подгружаются по требованию.

При запуске процесса в памяти не находится ни одной страницы процесса. Используется таблица страниц. При необходимости считывается с диска не 1 страница а сразу несколько.

Алгоритм замещения страниц. У каждого процесса есть рабочий набор. Этот набор состоит из отображенных страниц, при обращении к которым не вызывается страничных прерываний. Рабочий набор каждого процесса имеет 2 показателя – минимальное и максимальное число отображенных страниц. При страничном прерывании если действительное число отображенных страниц меньше минимальной границы то подгружаются еще страницы. Если же отображенных страниц больше максимальной границы то страницы удаляются из рабочего набора. Эти два параметра меняются со временем для каждого процесса.

Раз в секунду выделенный демон - поток ядра, называемый менеджером балансового множества, проверяет, достаточно ли в системе свободных страниц. Если свободных страниц меньше, чем нужно, он запускает менеджер рабочих наборов, который исследует рабочие наборы и освобождает дополнительные страницы.

Используется бит обращения. Если он равен 0, то значение счетчика для этой страницы увеличивается на 1. Если же он равен 1, то счетчик сбрасывается. Удаляется страницы с наибольшим значением счетчика.







Date: 2016-06-06; view: 458; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию