Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsii_OS_pervaya_tret.docx
Скачиваний:
4
Добавлен:
15.04.2019
Размер:
3.1 Mб
Скачать

Ipc (обмен)

  • Каналы (pipe) именованные и неименованные, в режиме побайтного обмена или в режиме сообщений, двусторонние

  • Сокеты (socket) — типичный интерфейс BerkeleySockets

  • RemoteProcedureCall (RPC) — высокоуровневый интерфейс для обращения к коду на удалённых узлах

Ipc (синхронизация)

  • Семафорименованныйилинеименованный, защищённый ACL: CreateSemaphore(), OpenSemaphore(), DuplicateHandle(), ReleaseSemaphore(), WaitForSingleObject()

  • Мьютекс: CreateMutex(), OpenMutex(), ReleaseMutex(), WaitForSingleObject()

  • Критическая секция — «мьютекс пространства пользователя»: EnterCriticalSection(), LeaveCriticalSection()

  • Событие уведомления и синхронизации — объект ядра

  • Событие может быть в сигнализированном и несигнализированном состоянии

  • SetEvent(), ResetEvent(), PulseEvent()

Планирование

  • Нет центрального потока планирования

  • Квант — 20 мс / 180 мс

  • Квант для активного окна длиннее

  • Моменты планирования:

    • Блокирование на семафоре/вводе-выводе/...

    • Порождение события (up на семафоре, …)

    • Истечение кванта

    • Завершение операции ввода-вывода

    • Истечение времени ожидания

Приоритеты

  • 32 приоритета (31-16, 15-1)

  • Приоритет 0 для потока обнуления страниц

  • SetPriorityClass() — выбор класса приоритета для процесса и всех его потоков: real-time, high, abovenormal, normal, idle

  • SetThreadPriority() — выборотносительногоприоритетапотокавклассе: time critical, highest, above normal, normal, below normal, lowest, idle

Динамическое изменение приоритета

  • Приоритет повышается при:

    • Завершении операции ввода-вывода

    • Освобождении семафора/мьютекса/...

  • Приоритет понижается при:

    • Использовании потоком целого кванта

Концепции управления памятью

  • Каждый процесс имеет своё виртуальное адресное пространство

  • Для 32-битного режима 2 (3) ГБ используются для пространства пользователя, 2 (1) ГБ — для пространства ядра

  • В 64-битном режиме работает слой WOW64 для обеспечения работы 32-битных приложений, им выделяются полные 4 ГБ

Виртуальное адресное пространство

Организация адресного пространства

  • Страничная

  • Страница 4 кБ

  • Большая страница размером 4 МБ

  • Поддерживается CoW

  • Поддерживаются файлы, отображаемые в память

Страница виртуальной памяти

  • Недействительная (invalid)

  • Задействованная (commited)

  • Зарезервированная (reserved)

  • Читаемая

  • Записываемая

  • [Исполняемая]

Файл подкачки

  • Стратегия just-in-time — выделение дискового пространства под страницу тогда, когда надо её выгрузить

  • Инициализируется после запуска первого пользовательского процесса (smss.exe)

  • Страница в файле подкачки не освобождается, пока загруженная в память страница не изменится

  • До 16 файлов подкачки

Реализация управления памятью

  • Алгоритм замещения — LRU посредством бит A (access) и D (dirty)

  • Категории страничных ошибок:

    • Страница не сохранена (commited)

    • Нет привилегий на такое обращение

    • Попытка изменения CoW-страницы

    • Необходимо увеличение стека

    • Страница сохранена, но не отображена

  • Мягкие/жёсткие страничные ошибки

  • Диспетчер памяти может загружать страницы как по необходимости, так и по опережающей стратегии

  • Диспетчер памяти оперирует рабочими наборами, описываемыми максимальным и минимальным размерами (20/50 — 45/345)

  • Для задания (job) существует общий рабочий набор

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]