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