Среда выполнения процессов.
Программой называется исполняемый файл, а процессом называется последовательность операций программы или часть программы при ее выполнении. В системе UNIX может одновременно выполняться множество процессов (эту особенность иногда называют мультипрограммированием или многозадачным режимом), при чем их число логически не ограничивается, и множество частей программы (такой как copy) может одновременно находиться в системе. Различные системные операции позволяют процессам порождать новые процессы, завершают процессы, синхронизируют выполнение этапов процесса и управляют реакцией на наступление различных событий. Благодаря различным обращениям к операционной системе, процессы выполняются независимо друг от друга.
Например, процесс, выполняющийся в программе, приведенной на Рисунке 1.4, запускает операцию fork, чтобы породить новый процесс. Новый процесс, именуемый порожденным процессом, получает значение кода завершения операции fork, равное 0, и активизирует операцию execl, которая выполняет программу copy (Рисунок 1.3). Операция execl загружает файл “copy”, который предположительно находится в текущем каталоге, в адресное пространство порожденного процесса и запускает программу с параметрами, полученными от пользователя. В случае успешного выполнения операции execl управление в вызвавший ее процесс не возвращается, поскольку процесс выполняется в новом адресном пространстве. Тем временем, процесс, запустивший операцию fork (родительский процесс), получает ненулевое значение кода завершения операции, вызывает операцию wait, которая приостанавливает его выполнение до тех пор, пока не закончится выполнение программы copy, и завершается (каждая программа имеет выход в конце главной процедуры, после которой располагаются программы стандартных библиотек Си, подключаемые в процессе компиляции).
Например, если исполняемая программа называется run, пользователь запускает ее следующим образом:
main(argc,argv)
int argc;
char *argv[];
{
/* предусмотрено 2 аргумента: исходный файл и новый файл */
if (fork() == 0)
execl(“copy”,”copy”,argv[1],argv[2],0);
wait((int *)0);
printf(“copy done\n”);
}
Рисунок 1.4. Программа порождения нового процесса, выполняющего копирование файлов
run oldfile newfile
Процесс выполняет копирование файла с именем “oldfile” в файл с именем “newfile” и выводит сообщение. Хотя данная программа мало что добавила к программе “copy”, в ней появились четыре основных обращения к операционной системе, управляющие выполнением процессов: fork, exec, wait и exit.
Вообще использование обращений к операционной системе дает возможность пользователю создавать программы, выполняющие сложные действия, и как следствие, ядро операционной системы UNIX не включает в себя многие функции, являющиеся частью “ядра” в других системах.
Такие функции, и среди них компиляторы и редакторы, в системе UNIX являются программами пользовательского уровня. Наиболее характерным примером подобной программы может служить командный процессор shell, с которым обычно взаимодействуют пользователи после входа в систему.
Shell интерпретирует первое слово командной строки как имя команды: во многих командах, в том числе и в командах fork (породить новый процесс) и exec (выполнить порожденный процесс), сама команда ассоциируется с ее именем, все остальные слова в командной строке трактуются как параметры команды.
Shell обрабатывает команды трех типов. Во-первых, в качестве имени команды может быть указано имя исполняемого файла в объектном коде, полученного в результате компиляции исходного текста программы (например, программы на языке Си).
Во-вторых, именем команды может быть имя командного файла, содержащего набор командных строк, обрабатываемых shell’ ом.
Наконец, команда может быть внутренней командой языка shell (в отличие от исполняемого файла). Наличие внутренних команд делает shell языком программирования в дополнение к функциям командного процессора; командный язык shell включает команды организации циклов (for-in-do-done и while-do-done), команды выполнения по условиям (if-then-else-fi), оператор выбора, команду изменения текущего для процесса каталога (cd) и некоторые другие. Синтаксис shell’ а допускает сравнение с образцом и обработку параметров. Пользователям, запускающим команды, нет необходимости знать, какого типа эти команды.
Поскольку shell является пользовательской программой и не входит в состав ядра операционной системы, его легко модифицировать и помещать в конкретные условия эксплуатации.
Например, вместо командного процессора Баурна(называемого так по имени его создателя, Стива Баурна), являющегося частьюверсии V стандартной системы, можно использовать процессор команд Си, обеспечивающий работу механизма ведения истории изменений и позволяющий избегатьповторного ввода только что использованных команд. В некоторых случаях прижелании можно воспользоваться командным процессором shell с ограниченнымивозможностями, являющимся предыдущей версией обычного shell’а.
Система можетработать с несколькими командными процессорами одновременно. Пользователиимеют возможность запускать одновременно множество процессов, процессы же всвою очередь могут динамически порождать новые процессы и синхронизироватьих выполнение. Все эти возможности обеспечиваются благодаря наличию мощныхпрограммных и аппаратных средств, составляющих среду выполнения процессов.
- Лекции по курсу Сетевые операционные системы Введение.
- Введение в типы операционных систем. Типы операционных систем.
- Среда времени выполнения.
- Сетевая операционная система Novell NetWare. Серверы.
- Клиентская часть в NetWare.
- Основные понятия nds.
- Классификация объектов nds.
- Классификация “листьев” nds.
- Правила именования объектов nds.
- Свойства объектов.
- Особенности функционирования операционной системы Unix Введение
- Базовые понятия ос unix.
- Файловая система
- Среда выполнения процессов.
- Конструкционные блоки.
- Функции ядра.
- Предполагаемая аппаратная среда.
- Прерывания и особые ситуации.
- Уровни прерывания процессора
- Распределение памяти
- Архитектура операционной системы unix Общие положения.
- Процессы
- Контекст процесса
- Состояния процесса
- Переходы из состояния в состояние
- “Сон” и пробуждение
- Резюме.
- Взаимодействие процессов в unix.
- Сетевое взаимодействие в unix. Межмашинный интерфейс
- Сокеты.
- Windows nt
- Архитектура WindowsNt
- Исполняющая система Windows nt.
- Диспетчер виртуальной памяти.
- Средства вызова локальных процедур.
- Диспетчер Кеша(CashManager)
- Драйверы файловой системы.
- Драйвер аппаратных устройств
- Система безопасности Windows nt.
- Сетевые драйверы
- Модель сетевой архитектуры Windows nt.
- Транспортные протоколы
- Интерфейс драйвера транспорта
- Рабочие станции и серверы Windows nt
- Редиректоры
- Серверы Windows nt
- Провайдеры и интерфейс провайдера.
- NetBios и Windows сокеты
- NetBios
- Tcp/ip дляWindows nt.
- Tcp и сетевые возможности
- Базовая поддержка протоколов tcp/ip.
- Конфигурирование tcp/iPиSnmp. Маршрутизация и сетевые шлюзы.
- Процесс межсетевой маршрутизации с использованием шлюзов.
- Протокол динамической конфигурации хостов (dhcp).
- Распознавание имен в сетях на базе WindowsNt.
- NetBios поверхTcp
- Сервис wins.
- Wins в маршрутизируемой среде
- Работа с сетями InternetилиIntranet
- Общие проблемы работы с сетями
- Программы маршрутизации и Устройства Защиты.
- Типичные Сетевые Конфигурации Место Intranet
- Место Internet
- Интегрирование Вашего IntranetсInternet
- Администрирование серверов с Internet Service Manager.
- Обнаружение Других Компьютеров в Вашей Подсети.
- Соединение с Internet
- Как Выбирать Правильное Соединение Internet
- Типы Соединений Internet.
- Типы Соединений
- Ip Адреса и dns
- Другие Услуги Пользователя Internet
- Публикации на Intranet
- Имя разрешающей системы.
- Использование Компьютерных Имен с wins server
- Использование Компьютерных Имен и lmhosts
- Использование Имен Домена с dns Станциями
- Использование Доменных Имен и hosTs
- Использование dhcp в Вашем Intranet
- Использование urLs и Создание html Связей для Intranet
- Snmp Текущий контроль.
- Создание Виртуальных серверов
- Использование ftp и Gopher Сервиса ftp сервис и Gopher сервис
- Что такое ftp сервис?
- Когда необходимо использовать ftp сервис?
- Как работает ftp Сервис?
- Конфигурирования Сеанса.
- Просмотр Текущих Сеансов
- Конфигурирование ftp Входа в систему
- Управление Анонимными Соединениями Установка имени пользователя и пароля защиты:
- Настройка Сообщений
- Конфигурирование ftp Каталогов. Установка Исходного каталога
- Установка, Стиля просмотра
- Установка разрешения на чтение и запись.
- Чтение.
- Создание Файлов Аннотации
- Аннотация файлов
- Ошибки клиента броузера ftp, Directory Annotation Enabled
- Специальные Каталоги в Home каталоге
- Использование Имени Пользователя Directories
- Использование Анонимного Каталога
- Ftp Клиенты
- Что такое Gopher сервис?
- Конфигурирование Gopher сервиса
- Управление Защитой через Имя Пользователя и Passord’s. Установка имени пользователя и пароля защиты.
- Установка wais Индексные Запросы
- Tag файлы
- Создание tag Файлов. Создавать файл отметки
- Резюме содержания файла.
- Интерпретация элементов ввода