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