- •12 Спо часть 1 Лек 1_11 (Кузнецова а.В.)
- •Процессы в unix. (пользовательский аспект).
- •Запуск – завершение процесса.
- •Отношение между процессами.
- •Общие сведения. Основные понятия.
- •Когда и с кем создаются процессы? (Создание процесса).
- •Когда и кем уничтожаются процессы? (Завершение процесса).
- •Создание процессов в unix.
- •Взаимодействие процессов
- •Управление процессами с помощью системных функций.
- •Контекст и дескриптор процесса (из учеб. Пособия Мохова)
12 Спо часть 1 Лек 1_11 (Кузнецова а.В.)
Процессы в unix. (пользовательский аспект).
ОС управляет набором процессов, приостанавливая выполнение одних, активизируя другие, создавая новые и уничтожая те, которые уже выполнили свою задачу или по каким-либо причинам не смогли это сделать. Некоторыми процессами может управлять пользователь (те, которые он запустил на выполнение путем ввода команд или запуска программы, создающей/уничтожающей другие процессы), а некоторыми – только суперпользователь.
Многозадачность UNIX состоит в том, что в системе одновременно выполняется множество процессов. Организация взаимодействия между процессами требует специальных усилий при программировании. Одна программа может породить и несколько процессов (но чаще для работы 1-ой программы запускают один процесс). Программе, запущенной в одном процессе недоступны данные, с которых работают другие программы в других П., т.е. П. имеют собственное адресное пространство.
Часть данных из среды П. доступна:
ОС
самому П.
другим П.
Другим процессам доступна та часть, которая не является частью самой программы (программы, системные таблицы, общие наборы данных,...). Управление процессами со стороны заключается в распределении (ОП) или предоставлении (процессор) процессам необходимых ресурсов. Т.о. ресурсы бывают разделяемые и неразделяемые (нельзя разделять принтер, не желательно! Делить диск тоже не желательно, но можно).
Одновременное выполнение нескольких процессов и более реальным (не многопроцессорной ЭВМ) и виртуальным (псевдо-, квази- реальным), когда один процессор переключается с одного процесса на другой.
Независимые П. конкурируют за ресурсы , но не обмениваются информацией.
Взаимодействующие П. либо обмениваются информацией, либо их выполнение определен. образом об упорядоченном (синхронизировано).
Механизмы UNIX для взаимодействия процессов:
-сигналы;
-программные каналы;
разделяемая память;
-семафоры;
-сообщения;
-общие файлы.
Запуск – завершение процесса.
После загрузки ядра ОС запускается специальный процесс с именем init, который является прародителем всех других процессов (PID=1). В некоторых версиях планировщик (sheduler) является частью ядра, а в некоторых – специальным процессом с (PID=0); планировщик и запускает init . Init, в свою очередь, запускает процесс getly (один или несколько), который осуществляет связь с терминалом(и) ЭВМ. Процесс getly выводит приглашение и вместо себя вызывает программу (процесс) login. Login осуществляет ввод имени и пароля и проверяет эту информацию в системных файлах пароля (letc/passwd и etc/shadow). Если информация корректна, login вызывает вместо себя оболочку, с которой затем и работает пользователь. В некоторых версиях UNIX login не завершает работу, а ждет окончание работы оболочки. Она в свою очередь, и порождает новые процессы, в рамках которых выполняются команды, вводимые пользователем. После окончания сессии командой logout или exit оболочка завершает работу, освобождая терминал. Init запускает новую getty (программу), и другой пользователь может начать работу за этим терминалом.