Главная
Функционирование системы UNIX PDF Печать E-mail

Выполнение процессов

Процесс может выполняться в одном из двух состояний:

-                     пользовательском. Процесс выполняет пользовательскую программу и имеет доступ к пользовательскому сегменту данных;

-                     системном. Процесс выполняет программы ядра и имеет доступ к системному сегменту данных.

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

-                     аргументы;

-                     локальные переменные;

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

Диспетчерский процесс не имеет пользовательской фазы.

В ОС UNIX используется разделение времени, каждому процессу выделяется квант времени:

-                     процесс завершается сам до истечения отведенного ему кванта времени;

-                     процесс откладывается по истечении кванта времени.

Пользовательским процессам устанавливаются приоритеты в зависимости от количества получаемого ими процессорного времени:

-                     процессам, которые получили больше процессорного времени, назначаются более низкие приоритеты;

-                     процессам, которые получили небольшое количество процессорного времени, приоритет повышают.

Такой метод диспетчеризации обеспечивает хорошее время реакции для всех пользователей системы.

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

Подсистема ввода/вывода

В ОС UNIX команды ввода/вывода, применяемые к файлам и физическим устройствам, одни и те же. Физические устройства представлены специальными файлами в единой структуре файловой системы. Пользователь не может написать зависящую от устройства программу.  Стандартные файлы ввода и вывода, приписываемые пользовательскому терминалу, открывать не требуется.

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

Перенаправление ввода/вывода

Механизм перенаправления ввода/вывода является одним из наиболее элегантных, мощных и одновременно простых механизмов в ОС UNIX.  Для того чтобы обеспечить более гибкое использование программ ввода и вывода, желательно обеспечить им ввод из файла или из вывода других программ и направить их вывод в файл или на ввод других программ.

Реализация этого механизма основана на следующих свойствах ОС UNIX:

-                     любой ввод/вывод трактуется как ввод из некоторого файла и вывод в некоторый файл. Клавиатура и монитор тоже интерпретируются как файлы;

-                     доступ к любому файлу производится через его дескриптор:

o   файл с дескриптором 0 называется файлом стандартного ввода (stdin);

o   файл с дескриптором 1 называется файлом стандартного вывода (stdout);

o   файл с дескриптором 2 называется файлом стандартного вывода  диагностических сообщений (stderr);

-                     программа, запущенная в некотором процессе, наследует от породившего процесса все дескрипторы открытых файлов.

Файл стандартного ввода – клавиатура, файлы стандартного вывода и вывода диагностических сообщений – экран терминала.

При запуске любой команды можно сообщить интерпретатору:

-                     какой файл или вывод какой программы должен служить файлом стандартного ввода для запускаемой программы:

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

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

Все, что требуется для нормального функционирования механизма перенаправления ввода/вывода, - придерживаться соглашения об использовании дескрипторов stdin, stdout и stderr.

 
« Пред.   След. »

Календарь новостей

 
« 29 Авг 2008 »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
             

Опросы

Ваш дистрибутив Linux

Кто на сайте?

Экспорт новостей


При копировании материалов с сайта, ссылка на источник SlackGuide.com Обязательна.
Copyright © 2002-2007 | Powered by Lookinfo.net © 2007.

Страница сгенерирована за 0.065377 секунд