Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
81
Добавлен:
02.05.2014
Размер:
89.09 Кб
Скачать
    1. Взаимодействие процессов

Как правило, процессы могут взаимодействовать через общие буферы данных. Взаимодействие заключается в передаче данных между процессами или совместном использовании некоторых ресурсов и обычно реализуется с помощью таких механизмов, как транспортеры, очереди, сигналы и семафоры.

В ОС OS/2 иWindowsсуществует специальный механизм для взаимодействия процессов в реальном масштабе времени –DDE(DynamicDataExchange). Он стандартизует процесс обмена командами, сообщениями и объектами для обработки между задачами. Наиболее распространенным процессом. Для которого используетсяDDE, является печать.

Другим способом обмена данными является OLE(ObjectLinkingandEmbedding– связывание и встраивание объектов). Этот интерфейс позволяет хранить объекты, созданные одной программой, в объектах созданных другой программой. Пример – буфер обмена (clipboard).

    1. Тупики

Тупик – это ситуация, когда процесс ожидает события, которое никогда не произойдет вследствие занятости необходимого процессу ресурса другим процессом, который также ожидает какого-либо события. Типики приводят к зависаниям системы.

Для борьбы с тупиками ОС должна их обнаруживать и нарушать одно из условий существования тупика или игнорировать тупик. Большинство ОС (Unix, Windows) игнорируют тупики.

  1. Управление данными

При запуске любой программы созданный ей процесс должен быть размещен в оперативной памяти. Методы размещения процессов в ОЗУ делятся на смежные и несмежные.

Смежное размещениеявляется простейшим и предполагает, что в памяти, начиная с некоторого начального адреса, выделяется один непрерывный участок адресного пространства. Принесмежном размещениипрограмма разбивается на множество частей, которые располагаются в различных, необязательно смежных участках адресного пространства.

    1. Страничная и сегментная организация памяти

Страничная организация памяти (paging)относится к методам несмежного размещения процессов в памяти. Основное достоинство – она позволяет свети к минимуму общую фрагментацию за счет полного устранения внешней фрагментации и минимизации внутренней фрагментации.

Адресное пространство основной и внешней памяти разбивается на блоки фиксированного размера, называемое страницами. Процесс загружается в память постранично. Каждый адрес, генерируемый процессором, состоит из 2 частей – номера страницы и смещения в пределах страницы. Таблица страниц содержит начальные адреса всех страниц, в которых размещена программа. Указатель на таблицу страниц хранится в PCB соответствующего процесса.

Размер страницы обычно составляет 512 байт, 2 или 4 Кбайт.

Сегментная организацияпреследует ту же идею, но сегменты, в отличие от страниц, могут иметь переменный размер. Каждый сегмент – линейная последовательность адресов, начинающихся с 0. Каждый сегмент имеет имя, размер, уровни привилегий и флаги. В отличие от страничной организации, где программист задает только 1 адрес, который разбивается на номер страницы и смещение, в сегментной схеме, программист должен самостоятельно указывать имя сегмента и смещение относительно его начала. Размер и кол-во сегментов зависит от того, как написана программа.

Аппаратная поддержка сегментации памяти реализована в процессорах Intel.

В настоящее время используется сегментно-страничная организация памяти. В ней большие сегменты делятся на небольшие страницы.