
- •Раздел II. Задачи и функции ос
- •Управление заданиями (процессами, задачами)
- •Классификация процессов
- •Планирование процессов
- •Взаимодействие процессов
- •Управление данными
- •Страничная и сегментная организация памяти
- •Свопинг (swapping)
- •Управление виртуальной памятью
- •Управление внешней памятью. Файлы.
- •Разделение доступа к данным в ос
Взаимодействие процессов
Как правило, процессы могут взаимодействовать через общие буферы данных. Взаимодействие заключается в передаче данных между процессами или совместном использовании некоторых ресурсов и обычно реализуется с помощью таких механизмов, как транспортеры, очереди, сигналы и семафоры.
В ОС OS/2 иWindowsсуществует специальный механизм для взаимодействия процессов в реальном масштабе времени –DDE(DynamicDataExchange). Он стандартизует процесс обмена командами, сообщениями и объектами для обработки между задачами. Наиболее распространенным процессом. Для которого используетсяDDE, является печать.
Другим способом обмена данными является OLE(ObjectLinkingandEmbedding– связывание и встраивание объектов). Этот интерфейс позволяет хранить объекты, созданные одной программой, в объектах созданных другой программой. Пример – буфер обмена (clipboard).
Тупики
Тупик – это ситуация, когда процесс ожидает события, которое никогда не произойдет вследствие занятости необходимого процессу ресурса другим процессом, который также ожидает какого-либо события. Типики приводят к зависаниям системы.
Для борьбы с тупиками ОС должна их обнаруживать и нарушать одно из условий существования тупика или игнорировать тупик. Большинство ОС (Unix, Windows) игнорируют тупики.
Управление данными
При запуске любой программы созданный ей процесс должен быть размещен в оперативной памяти. Методы размещения процессов в ОЗУ делятся на смежные и несмежные.
Смежное размещениеявляется простейшим и предполагает, что в памяти, начиная с некоторого начального адреса, выделяется один непрерывный участок адресного пространства. Принесмежном размещениипрограмма разбивается на множество частей, которые располагаются в различных, необязательно смежных участках адресного пространства.
Страничная и сегментная организация памяти
Страничная организация памяти (paging)относится к методам несмежного размещения процессов в памяти. Основное достоинство – она позволяет свети к минимуму общую фрагментацию за счет полного устранения внешней фрагментации и минимизации внутренней фрагментации.
Адресное пространство основной и внешней памяти разбивается на блоки фиксированного размера, называемое страницами. Процесс загружается в память постранично. Каждый адрес, генерируемый процессором, состоит из 2 частей – номера страницы и смещения в пределах страницы. Таблица страниц содержит начальные адреса всех страниц, в которых размещена программа. Указатель на таблицу страниц хранится в PCB соответствующего процесса.
Размер страницы обычно составляет 512 байт, 2 или 4 Кбайт.
Сегментная организацияпреследует ту же идею, но сегменты, в отличие от страниц, могут иметь переменный размер. Каждый сегмент – линейная последовательность адресов, начинающихся с 0. Каждый сегмент имеет имя, размер, уровни привилегий и флаги. В отличие от страничной организации, где программист задает только 1 адрес, который разбивается на номер страницы и смещение, в сегментной схеме, программист должен самостоятельно указывать имя сегмента и смещение относительно его начала. Размер и кол-во сегментов зависит от того, как написана программа.
Аппаратная поддержка сегментации памяти реализована в процессорах Intel.
В настоящее время используется сегментно-страничная организация памяти. В ней большие сегменты делятся на небольшие страницы.