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