Организация и функционирование компьютеров
bf1271d8

Операционная система UNIX


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

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

Операционная система UNIX состоит из ядра (Kernel), интерпретатора команд (Shell) и служебных программ – утилит. Утилиты UNIX делятся на пять групп:


- утилиты управления файловой системой;

-    утилиты управления процессами;

-    утилиты управления коммуникацией данных;

-    библиотеки служебных подпрограмм;

-    среда программирования.

Ядро в свою очередь можно условно разделить на четыре части:

-    управление памятью;

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

-    размещение системных ресорсов;

-    обеспечение прав доступа.

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


Содержание раздела