Мультипроцессорные системы. Семафорная техника синхронизации и упорядочивания процессов. Стек – средство обработки структурированных программ, страница 7

Сегмент данных содержит данные, которые считываются и записываются только одним процессом. Для системных данных, относящихся к процессу, отводится отдельный системный сегмент, который откачивается всегда вместе с процессом. Он служит документом, удостоверяющим личность активного процесса. В этом сегменте следующие данные:

состояние регистров ЦП;

дескрипторы открытых файлов;

данные для расчётов за использование машины;

область рабочих данных;

стек для системной фазы выполнения процессов.

В UNIX всегда активным является только один процесс. Для каждого процесса выделяется квант времени ЦП. В памяти может находиться в минимальной конфигурации до пяти процессов.

Таблица управления процессами.

 


     таблица процедур

В системе UNIX процессы создаются с помощью системных вызовов.

1)  Системный примитив FORK позволяет расщепить исходный процесс на два независимых параллельных процесса. У этих процессов нет общей первичной памяти, но они могут

использовать совместно все открытые файлы. Для дочернего процесса формируются все копии данных исходного.

2)  Второй примитив (exec) позволяет процессору выполнять файл, что приводит к замене текущего выполняемого сегмента на сегменты, заданные в файле.

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

стоит в примитиве eventwait. Только один активный процесс на      этом примитиве не стоит. Для уничтожения процесса системным программистом может быть использован примитив kill.

Главная цель планирования процессов в системе UNIX – обеспечение высокой реактивности для интерактивных пользователей. Планирование процессов производится в соответствии с их приоритетами. Для несистемных процессов высший приоритет имеет процесс, который обрабатывает событие и ожидание. Следующий приоритет имеет дисковая операция. Третий (последний) приоритет у событий, связанных с терминалами.

Приоритет пользовательских процессов зависит от полученного машинного времени: чем оно больше, тем ниже приоритет.

Центральный процессор выделяет время для процессов в виде квантов времени. Это приводит к тому, что UNIX не является системой реального времени.

SWAPPING процессов.

Swapping – это вталкивание и выталкивание процессов на диске. Он объясняется наличием стратегии выделения памяти: первый подходящий. Если процессу требуется память, то при наличии ему выделяется новая секция в памяти, и содержимое старой секции переписывается в новый выделенный кусок памяти. Если нужного куска нет, то процесс выталкивается на диске. Это выталкивание обеспечивает процесс подкачки. Этот процесс конкурирует за время

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

принципу: первый вытолкнутый, первый и вталкивается. Завершается процесс по следующим причинам:

 Преднамеренное завершение по примитиву exit;

1)  Непреднамеренное завершение (запись по некорректным адресам, выполнение команд с несуществующим кодом операции).

Все эти ситуации отображаются в образе процесса, который можно затем проанализировать. При этом используются два примитива: interrupt и quit.

Система ввода вывода.

1)  Блочный ввод – вывод;

2)  Посимвольный ввод – вывод.

Примитивы ввода – вывода в UNIX:

OPEN, CLOSE, READ, WRITE, SEEK.

Физические устройства в UNIX представляются специальными файлами в единой структуре файловой системы. Ввод – вывод в UNIX ориентирован на работу с потоком более, чем с записью.

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

Файл в UNIXмножество символов с произвольным доступом. Структура файла полностью определяется пользователем.

Структура файловой системы.

 


2

3

         оперативная память                                       диски

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

2 – активная таблица i-ого узла файловой системы. Она имеет ссылки на «4».

3 – таблица открытых файлов на систему в целом.

«2» и «3» находятся в оперативной памяти.

4 – механизм размещения файлов.

5 – i – список, который состоит из описаний файлов, относящихся к данному i-ому узлу.

6 – область хранения файлов.

I – список содержит следующую информацию:

·  Идентификатор владельца;

·  Идентификатор группы владельцев;

·  Биты защиты;

·  Физические адреса на диске начала файла;

·  Размер файла;

·  Время создания;

·  Время последнего использования;

·  Время последнего изменения;

·  Число связей – ссылок, указывающих на файл;

·  Признак (директория, обычный файл и специальный файл).

На диске есть список свободных блоков файлов. В начале всей системы стоит супер - блок.

I - список

 


           Супер                     Ф1   Ф2      Ф3

           блок

В этой файловой системе различают системные и обычные директории.

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