Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
124
Добавлен:
20.06.2014
Размер:
6.61 Mб
Скачать

25. Понятие «процесс» в ос unix. Контекст процесса; свойства процесса; состояние процесса.

Процесс – можно понимать программу, кот выполн-ся под упр-ем ОС. Контекст процесса вкл: пользоват контекст(код и данные располож в адресном пр-ве процесса) и контекст ядра(стек ядра, образуется в режиме ядра и данные ядра). Данные ядра –UID –идентификатор пользователя , PID - процесса, GID - группы. Св-ва процесса:1) сегмент кода, 2)сегмент данных,3)стек,4)состояние процессора PSW,5)права и полномочия для UNIX,6)ресурсы. В каждый момент времени процесс может исполн и не исполн, причем кот не исполн готов к исполнению, так и не готов. Схема состояния процесса:

Всостоянии блокировке процесс м.попасть, если процесс произвел такой сист вызов, после кот его продолжение невозможно. В ОСUNIX легковесный процесс –представл собой доп единицу планировки в рамках одного обыч процесса. Обычн процесс может представ как группу легковесных. Легковесный процесс – поток, нить – thread. У каждой нити есть свой собств стек и свой счетчик команд из PSW. При прогр-и легковесн процессов говорим об парал программ-е с разделен данными. Св-ва процесса в Unix: 1)код, м.б. разделяемый, св-во доступно только на чтение.2)сегмент данных вкл стек, доступно Read/WR.3)сост-е регистра – контекст, вкл счетчик команд, PSW, указатель стека и все РОН. Пока прогр-е не в сост-и выполнения содержимое его регистров храниться в спуц структуре данных – ядре.4)таблица дискрипторов – привяз номера к реальн структуре в ядре.5)команд строка – структура данных из массивов указателей на аргументы команд.строки. >ls –l -a /usr/local.

Argv – ссылка на массив указателей:

char*argv:

6)окружение – стр-ра данных содерж указатели на строки переменных окружения.

Строки заканчиваются \0.

7)текущий каталог – люб процесс наход в каталоге файловой системы.

8)корневой каталог - в UNIX м. организовать файл систему и всем его потомкам, частью дерева каталогов, имеющий общий корень. Процессу можно определить корнев каталог jal, а каталоги за его перелом будут невидимы.

9)umask – при создании новых файлов значение этого пар-ра побитово вычисляется из прав доступа

10) идентификаторы – UID и GID – факт полномочия программы, определяют права процесса в файловой системе. Эти прог-мы выполн с правами пользователя, владещ правами программы, а не тот кто запустил.

11)идентификатор процесса

12)диспозиция обработки сигнала – это то как процесс реаг-ет на определен сигналы.

13) счетчики потребл-х ресурсов.

26.Создание процессов и упр-е ими.

Процесс в UNIX создается системным вызовом fork():

#include <sys/types.h> #include <unistd.h>

Pid_t fork(void)

Процесс, сделавший вызов fork называется родительским, а вновь созданный процесс —дочерним. Новый процесс является точной копией породившего его процесса. Как это ни удивительно, но новый процесс имеет те же инструкции и данные, что и его родитель. Более того, выполнение родительского и дочернего процесса начнется с одной и той же инструкции, следующей за вызовом fork, причем знач-е возвращ-мое fork различны, в род процессе fork вернет PID потомка, а в потомок вернет 0. Каждый процесс имеет одного родителя, но может иметь несколько дочерних процессов. Тем не менее между родительским и дочерним процессом имеется ряд различий: 1) Дочернему процессу присваивается уникальный идентификатор PID,отличный от родительского. 2) Соответственно и идентификатор родительского процесса PPID для родителя и потомка различны. 3) Дочерний процесс получает собственные файловые дескрипторы, хотя он разделяет те же записи файловой таблицы. 4) счетчик потребл ресурсов у созданного обнуляется. 5) Для дочернего процесса очищаются все ожидающие доставки сигналы. Пример: дочерний печатает – ребенок

Main()

{int pid; pid=fork();

If (pid==-1) {perror(“error fork\n”);exit(1);}

If (pid==0) {printf(“this Child\n”);} else

{printf(“this parent\n”);} Return 0;}

Последовательность печати не определена, а зависит от оставшего кванта времени на родительский процесс, если у родителя мал, то он переходит в ожидание, а дочерний порождает и печатаетthis Child. Создавшая ситуация гонок.