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