Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Взаимодействие процессов



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

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

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

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

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

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

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

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

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

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

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

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

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

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

Свопинг (перекачка) – это метод управления памятью, основанный на том, что все процессы, участвующие в мультиобработке, хранятся во внешней памяти.

Основное применение – системы разделения времени со стратегией RR планирования процессов в CPU. Процесс, которому выделен CPU, временно перемещается в основную память, в случае прерывания работы процесса он возвращается во внешнюю память.

Свопинг иногда используется при приоритетном планировании CPU. В этом случае только низкоприоритетные процессы перемещаются во внешнюю память.

В целом эта технология замедляет доступ к процессам, но освобождает оперативную память, поэтому в современных ОС используются модифицированные варианты свопинга. Так, в большинстве Unix-систем свопинг включается только тогда, когда кол-во процессов в памяти становится слишком большим.

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

Управление внешней памятью. Файлы.

Файл – поименованная совокупность записей одинаковой структуры на внешнем носителе. Все данные, хранящиеся на каком-либо диске должны быть в составе какого-либо файла.

Любой файл имеет имя, которое записывается в соответствии со стандартом POSIX: до 255 символов имени + 3 символа расширения.

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

Обычные файлы можно подразделить по их содержимому на текстовые и бинарные. Текстовые файлы содержат символы кода ASCII, простейшие управляющие символы (CR – возврат каретки, LF – перевод строки, TAB – табуляция, NP – новая страница).

Бинарные файлы – файлы с произвольной последовательностью бит, которые имеют некоторую внутреннюю структуру, например, архивные файлы.

Любой файл имеет атрибуты: имя, тип файла; устройство и начальный адрес, а также размер файла; владелец, права доступа к файлу. Список атрибутов зависит от типа используемой ОС. Список атрибутов обычно хранится в структуре директорий, обеспечивающий доступ к файлу.

Цикл обработки файла:

1. Открытие файла – занятие устройства (точнее, его контроллера), на котором файл размещен, создание в ОЗУ управляющего блока, в котором записывается справка о состоянии файла и буфера для хранения текущей обрабатываемой записи файла;

2. Организация цикла, управляемого файлом (заканчивается по исчерпании записей файла – наступление состояния EOF – end-of-file), после чего выполняется освобождение устройства. Цикл должен содержать команду типа READ (заголовок цикла), GET (ввод записи), PUT, WRITE (вывод записи), REWRITE (обновить запись).

3. Закрытие файла – выполнение операций по внесению всех изменений в файл, освобождение памяти, отведенной под файл и устройства, на котором он размещался.

Таким образом, цикл обработки файла выглядит так: считывание (ввод) порции (блок) данных с ВЗУ через его контроллер → помещение его во входной буфер в ОЗУ → извлечение данных из буфера, их обработка и помещение обратно или в другой (выходной) буфер → вывод (запись) результатов на выходной накопитель в виде одного или нескольких блоков.

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

Магнитная поверхность накопителей разбивается на дорожки (нумеруются с 0-го), каждая из которых – на секторы (начиная с 1-го). Пакет магнитных дисков, каждый из которых имеет по 2 стороны, называется цилиндром (нумеруется с 0). Таким образом, мельчайшей единицей хранения информации на магнитном ВЗУ является сектор (512 байт).

Всякая ОС создает на каждом томе (логическом диске) совокупность системных данных, которая называется файловой системой.

Файловая система создается при инициализации (разметке) тома с помощью операции форматирования, затем корректируется ОС при работе с файлами.

Кластер – минимальный размер места на диске, которое может быть выделено файловой системой для хранения одного файла. Размер кластера определяется автоматически при форматировании тома в зависимости от размера последнего! Кластер может иметь размер от 512 байт до 64 Кбайт, соответственно содержать от 1 до 128 секторов.

Таким образом, главная задача файловой системы – поставить в соответствие имя файла, кластеры, выделенные под его хранение и их физический секторный адрес.

Файловая система включает таблицу содержания и область данных. Таблица содержания может иметь разные имена – VTOC, FAT, MFT, FDT. Эта таблица состоит из 3 областей: область файлов (таблица с их именами и блоками, занимаемыми файлами); список свободных блоков; список сбойных блоков.

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

С каждым файлом в ОС связана пара идентификаторов – пользовательский (User ID - UID) и групповой (Group ID - GID). Файл наследует эти идентификаторы от эффективных идентификаторов процесса, создавшего данный файл. Процесс, эффективный пользовательский ID которого совпадает с пользовательским ID файла, считается владельцем данного файла.

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

Таким образом, всех пользователей системы можно разделить на:

1. Владельцы (UID = эффективный UID)

2. Члены группы (GID = эффективный GID)

3. Прочие

Именно по этому принципу в ОС Unix каждому файлу выданы атрибуты в формате 9-битного кода, содержащего 3 поля для каждой группы: rwxrwxrwx. R – read, w – write, x – execute. В каждом поле задается код, соответствующий правам каждой группы. Эти поля проверяются при операциях чтения, записи или исполнения файла.





Дата публикования: 2015-10-09; Прочитано: 539 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...