
- •Управление процессами и потоками в мультипрограммных ос. Общие сведения о процессах и потоках в ос Windows. Понятие объекта ядра. Типы объектов ядра.
- •Описатель, командная строка, и переменные окружения процесса.
- •Создание процессов.
- •Завершение процесса.
- •Общие сведения о потоках. Создание потоков.
- •Выполнение потоков.
- •Завершение потоков.
- •Планирование потоков. Приостановка и возобновление процессов и потоков.
- •Приоритеты потоков. Классы приоритетов процессов и относительные приоритеты потоков.
- •Синхронизация процессов и потоков в мультипрограммных ос. Независимые и взаимодействующие процессы. Понятие критических ресурсов и критических секций.
- •Синхронизация процессов и потоков в ос Windows. Объекты синхронизации и функции ожидания.
- •Синхронизация с помощью критических секций.
- •Мьютексы.
- •События.
- •Семафоры.
- •Передача и обмен данными между процессами. Способы передачи данных и типы связей между процессами.
- •Средства передачи и обмена данными между процессами в ос Windows.
- •Обмен данными с помощью буфера обмена данными Clipboard.
- •Обмен данными по технологии dde.
- •Обмен данными по технологии ole. Понятие документно-ориентированной среды.
- •Принципы технологии ole.
- •Особенности ole 2.0
- •Обмен данными через разделяемые файлы.
- •Обмен данными через файлы, проецируемые в память. Создание файлов, проецируемых в память.
- •Обмен данными через проекцию файлов в память.
- •Обмен данными через страничный файл.
- •Обмен данными через программные каналы.
- •Средства организации анонимных и именованных каналов в Windows.
- •Концепция почтовых ящиков.
- •Создание почтовых ящиков.
- •Соединение клиентов с почтовым ящиком.
- •Обмен данными через почтовый ящик.
- •Закрытие почтового ящика.
- •Получение информации о почтовом ящике.
- •Обмен данными с помощью очередей сообщений.
- •Подсистема управления памятью. Функции подсистемы управления памятью.
- •Физическая и логическая память. Виртуальное (логическое) и физическое адресное пространство.
- •Способ построения вап процессов.
- •Способы распределения памяти на уровне управления процессами. Односвязное непрерывное распределение памяти.
- •Распределение памяти фиксированными разделами.
- •Распределение памяти динамическими и перемещаемыми разделами.
- •Виртуализация оперативной памяти. Свопинг и виртуальная память.
- •Страничное распределение памяти.
- •Преобразование адресов страниц прямым отображением.
- •Преобразование адресов страниц ассоциативным отображением.
- •Преобразование адресов страниц комбинированным ассоциативно-прямым отображением.
- •Совместное использование программ и данных в системах со страничной организацией памяти. Выбор размера страниц.
- •Сегментное распределение памяти.
- •Управление доступом в системах с сегментной организацией памяти.
- •Сегментно-страничное распределение памяти.
- •Реализация режима виртуальной памяти. Стратегии замещения страниц.
- •Стратегия замещения случайной страницы.
- •Стратегия замещения по принципу fifo.
- •Замещение страницы, которая использовалась наименее часто (lfu).
- •Замещение страницы, которая не использовалась в последнее время (nur).
- •Концепция локального и рабочего множества программ в системах с виртуальной памятью.
- •Уровни привилегий и защита по привилегиям.
- •Кеширование данных в памяти эвм. Иерархия устройств памяти. Понятие и принцип действия кэш-памяти.
- •Способы отображения основной памяти на кэш.
- •Двухуровневое кэширование.
- •Кеширование в процессорах моделей Pentium.
- •Структура линейного виртуального адресного пространства процесса в ос Windows.
- •Раздел 4 используется для хранения совместно используемых всеми процессами данных. Сюда же загружаются все системные .Dll модули, поэтому же доступны любому пользовательскому процессу.
- •Управление устройствами. Основные понятия и концепции организации.
Распределение памяти динамическими и перемещаемыми разделами.
В данном способе, физическая память заранее не делится на фиксированные разделы. Перед началом выполнения множества процессов вся физическая память, за исключением области ОС, считается свободной.
Каждому поступающему процессу на этапе его подготовки к выполнению выделяется вся необходимая для его выполнения память на основе предварительных требований процесса по памяти. Если оказывается, что достаточный свободный объем памяти отсутствует, то процесс временно не принимается к выполнению. После завершения одного из процессов, занятая им память освобождается, и на это место могут быть загружены программы и данные нового процесса.
В произвольный момент времени физическая память представляет собой случайную последовательность занятых и свободных разделов произвольного размера.
Подсистема управления памятью при использовании данного метода распределения должна выполнять следующие функции:
Создавать и поддерживать системные таблицы свободных и занятых участков памяти, в которых указываются их начальные адреса и размеры;
При подготовке вновь поступающего процесса должен выполняться анализ требований этого процесса по памяти, просмотр таблиц свободных участков, и выбор того из них, размер которого достаточен для размещения программ и данных. Выбор подходящего участка памяти может осуществляться по различным принципам, которые называют стратегиями распределения памяти, например:
выделяется первый попавшийся свободный участок достаточного размера;
выбор раздела, имеющего наименьший достаточный для нового процесса размер;
выбор раздела, имеющего наибольший достаточный для данного процесса размер;
Загрузка программ и данных процесса в выделенный участок, преобразование ВАП в ФАП, корректировка содержимого таблиц занятых и свободных областей памяти. Данный способ предполагает, что программа процесса не перемещаются во время выполнения, поэтому отображение ВАП на ФАП может быть выполнено единовременно во время загрузки процесса в память;
Выполнение корректировки системных таблиц свободных и занятых участков после завершения каждого процесса.
По сравнению с предыдущим способом, данный способ обладает заметным преимуществом, которое состоит в отсутствии необходимости статического разделения памяти на разделы до начала выполнения процессов. Это позволяет повысить адаптируемость системы к меняющимся требованиям со стороны процессов по памяти.
Вместе с тем, имеется недостаток, а именно – потенциально высокий уровень фрагментации памяти, то есть возможность появления большого количества несмежных друг с другом фрагментов. Фрагментация ведет к тому, что на каком-то этапе работы системы ни один из новых процессов не сможет быть загруженным в память несмотря на наличие достаточного пространства в несмежных фрагментах.
Одним из способов борьбы с фрагментацией является перемещение всех занятых участков в направлении младших или старших адресов памяти, так, чтобы вся появившаяся в результате свободная память образовывала бы одну непрерывную область. Подобная процедура называется уплотнением или сжатием памяти. Выполнение данной процедуры является дополнительной функцией подсистемы управления памятью, наряду с перечисленными функциями, которые выполняются при распределении динамическими разделами. Сам способ распределения памяти называется распределением перемещаемыми разделами. Уплотнение может выполняться каждый раз после завершения какого-либо процесса, либо только тогда, когда для нового процесса отсутствует раздел достаточного размера.
В первом варианте требуется меньше затрат времени на корректировку системных таблиц свободных и занятых участков памяти, а во втором случае – процедура уплотнения выполняется реже, и следовательно, уменьшаются потери времени, связанные с этой процедурой. Эти потери возникают в связи с перемещением кодов программ и данных в памяти, то есть, в результате многочисленных операций пересылки по адресам памяти.
Еще одна особенность состоит в том, что поскольку программы процессов в ходе выполнения могут перемещаться в памяти, то выполнение преобразования виртуальных адресов в физические может быть реализовано только динамическим способом.