
- •Управление процессами и потоками в мультипрограммных ос. Общие сведения о процессах и потоках в ос Windows. Понятие объекта ядра. Типы объектов ядра.
- •Описатель, командная строка, и переменные окружения процесса.
- •Создание процессов.
- •Завершение процесса.
- •Общие сведения о потоках. Создание потоков.
- •Выполнение потоков.
- •Завершение потоков.
- •Планирование потоков. Приостановка и возобновление процессов и потоков.
- •Приоритеты потоков. Классы приоритетов процессов и относительные приоритеты потоков.
- •Синхронизация процессов и потоков в мультипрограммных ос. Независимые и взаимодействующие процессы. Понятие критических ресурсов и критических секций.
- •Синхронизация процессов и потоков в ос Windows. Объекты синхронизации и функции ожидания.
- •Синхронизация с помощью критических секций.
- •Мьютексы.
- •События.
- •Семафоры.
- •Передача и обмен данными между процессами. Способы передачи данных и типы связей между процессами.
- •Средства передачи и обмена данными между процессами в ос Windows.
- •Обмен данными с помощью буфера обмена данными Clipboard.
- •Обмен данными по технологии dde.
- •Обмен данными по технологии ole. Понятие документно-ориентированной среды.
- •Принципы технологии ole.
- •Особенности ole 2.0
- •Обмен данными через разделяемые файлы.
- •Обмен данными через файлы, проецируемые в память. Создание файлов, проецируемых в память.
- •Обмен данными через проекцию файлов в память.
- •Обмен данными через страничный файл.
- •Обмен данными через программные каналы.
- •Средства организации анонимных и именованных каналов в Windows.
- •Концепция почтовых ящиков.
- •Создание почтовых ящиков.
- •Соединение клиентов с почтовым ящиком.
- •Обмен данными через почтовый ящик.
- •Закрытие почтового ящика.
- •Получение информации о почтовом ящике.
- •Обмен данными с помощью очередей сообщений.
- •Подсистема управления памятью. Функции подсистемы управления памятью.
- •Физическая и логическая память. Виртуальное (логическое) и физическое адресное пространство.
- •Способ построения вап процессов.
- •Способы распределения памяти на уровне управления процессами. Односвязное непрерывное распределение памяти.
- •Распределение памяти фиксированными разделами.
- •Распределение памяти динамическими и перемещаемыми разделами.
- •Виртуализация оперативной памяти. Свопинг и виртуальная память.
- •Страничное распределение памяти.
- •Преобразование адресов страниц прямым отображением.
- •Преобразование адресов страниц ассоциативным отображением.
- •Преобразование адресов страниц комбинированным ассоциативно-прямым отображением.
- •Совместное использование программ и данных в системах со страничной организацией памяти. Выбор размера страниц.
- •Сегментное распределение памяти.
- •Управление доступом в системах с сегментной организацией памяти.
- •Сегментно-страничное распределение памяти.
- •Реализация режима виртуальной памяти. Стратегии замещения страниц.
- •Стратегия замещения случайной страницы.
- •Стратегия замещения по принципу fifo.
- •Замещение страницы, которая использовалась наименее часто (lfu).
- •Замещение страницы, которая не использовалась в последнее время (nur).
- •Концепция локального и рабочего множества программ в системах с виртуальной памятью.
- •Уровни привилегий и защита по привилегиям.
- •Кеширование данных в памяти эвм. Иерархия устройств памяти. Понятие и принцип действия кэш-памяти.
- •Способы отображения основной памяти на кэш.
- •Двухуровневое кэширование.
- •Кеширование в процессорах моделей Pentium.
- •Структура линейного виртуального адресного пространства процесса в ос Windows.
- •Раздел 4 используется для хранения совместно используемых всеми процессами данных. Сюда же загружаются все системные .Dll модули, поэтому же доступны любому пользовательскому процессу.
- •Управление устройствами. Основные понятия и концепции организации.
Концепция локального и рабочего множества программ в системах с виртуальной памятью.
Большинство стратегий управления виртуальной памятью основывается на концепции локальности, сущность которой состоит в том, что распределение запросов процессов при их обращениях к памяти носит случайный характер с высокой степенью локальной концентрации.
Свойство локальной концентрации может проявляться в двух видах:
Во времени;
В пространстве.
В связи с этим существует два вида локальности:
Временная локальность;
Пространственная локальность.
Временная локальность – это концентрация каких-либо событий или явлений во времени.
Вероятность повторения события будет расти с уменьшением dt.
Пространственная локальность означает, что соседние объекты, то есть объекты, расположенные физически близко относительно друг друга, будут описываться одинаковыми или близкими свойствами.
Свойство локальной концентрации наблюдается в ОС. Здесь временная локальность означает, что к ячейкам памяти, к которым недавно выполнялось обращение, с большой вероятностью может появиться новое обращение в ближайший период времени. Это свойство объясняется наличием следующих факторов:
Использованием программных структур типа циклов.
Применением процедур и функций, параметры которых хранятся в стеках.
Применением структур данных типа стеков и очередей.
Использованием переменных, играющих роль счетчиков, а также переменных для накопления и подсчета итоговых сумм или произведений.
Пространственная локальность в системах управления памятью означает, что запросы к памяти концентрируются таким образом, что при обращении к некоторой ячейке памяти с большой вероятностью может появиться обращение к близлежащим ячейкам. Это объясняется следующими факторами:
Широким использованием структур данных типа массивов и записей.
Стремление программистов размещать описания взаимосвязанных переменных в относительной близости друг от друга.
Последовательным характером выполнения команд в программе.
Для изучения явления локальности проводились различные исследования, в частности, исследовалась зависимость частоты f прерываний процесса по отсутствию нужных страниц от объема выделенной для процесса памяти, который может быть оценен в виде доли k страниц процесса, находящихся в ОП.
a – теоретическая зависимость, b – реальная зависимость.
Если количество выделенной памяти начинает уменьшаться, то существует dk, в котором это уменьшение не сильно сказывается на частоте прерываний по отсутствию нужной страницы.
Но начиная с k ~ 0,25, при дальнейшем уменьшении выделяемых процессу страниц, частота прерываний резко возрастает. Кроме того, отмечается, что до тех пор, пока в ОП остается некоторое подмножество наиболее активно используемых в процессе страниц, частота прерываний меняется мало, но как только какие-либо из страниц этого подмножества удаляются из памяти, частота прерываний, то есть, по существу, интенсивность замещения страниц начинает возрастать. Этот вывод был сформулирован в виде концепции рабочего множества страниц.
Под рабочим множеством страниц понимается совокупность страниц процесса, которые используются в нем наиболее активно. Согласно этой концепции, для обеспечения эффективного выполнения процесса необходимо, чтобы его рабочее множество присутствовало бы в ОП как можно дольше. В противном случае, может возникнуть ситуация возрастания интенсивности замещения страниц, когда процесс будет многократно требовать использования одних и тех же страниц из ФВП. Это явление в системах управления виртуальной памятью называется «страничной пробуксовкой».
В общем случае, рабочим множеством процесса W(t, dt) для некоторого момента времени t, считается некоторый набор страниц, к которым процесс активно обращается в течение интервала [t-dt, t]. Интервал dt в данном случае называется размером окна рабочего множества.
В течение всего периода своего выполнения, процесс может иметь несколько рабочих множеств, которые могут динамически меняться, что связано с различным характером операций, выполняемых в процессе – чисто вычислительных и ввода/вывода.
Иногда к текущему множеству могут добавляться новые страницы, либо из него могут удаляться составляющие. Следовательно, рабочее множество меняется во времени.