КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Наиболее важные атрибуты и параметры процессов.Атрибуты – признаки, отличающие один процесс от другого. Параметры – значения, которые могут меняться в течении жизненного цикла. PID (Process IDentifier) – идентификатор процесса, целое положительное число. Максимальное число зависит от ОС. Уникальный атрибут, ОС управляет процессом и его PID на 1 больше (если он не занят другим процессом) или ближайший не занятый номер, чем имел предыдущий запущенный процесс, не зависимо от того, завершился он или нет. После достижения max N счетчик номеров сбрасывается. Новые процессы начинают нумерацию с наименьших свободных NN. Первым (PID=1) всегда является init. При запуске дочернего процесса, родительский процесс получает от ОС его PID и наоборот и тем самым может посылать ему сигналы, следить за его завершением, за его статусом. PPID Parent PID – идентификатор родительского процесса. Этот идентификатор процесса получает во время запуска и может тоже получить информацию о родителе и передавать ему сигналы. Если родительский процесс завершается раньше , чем дочерний процесс, то ОС назначает процесс init родительским по отношению к дочернему процессу и изменяет PPID у дочернего процесса на значение 1. UID – реальный идентификатор пользователя, GID – реальный идентификатор группы, EUID – эффективный идентификатор пользователя, EGID – эффективный идентификатор группы. Эти атрибуты определяют принадлежность процесса и его права доступа к ресурсам ЭВМ. Реальные идентификаторы совпадают с идентификаторами пользователя, который запустил процесс, и группы, которой он принадлежит. Программа login устанавливает оболочке сессии те оболочки UID и GID, которые указаны в файле паролей данного пользователя. Эти атрибуты наследуются всеми дочерними процессами, и не могут быть изменены. Права доступа процесса к ресурсам ЭВМ определяются EUID и EGID равными UID и GID. Пользовательские процессы обычно имеют те же права, что и пользователь. Но, есть исключение(!) : Если у исполняемого файла установлен атрибут SUID, при запуске программы эффективный идентификатор пользователя устанавливается равным идентификатору владельца файла. Права доступа такого процесса равны правам доступа владельца файла. То же относится и к группе, если файл имеет атрибут SGID. Некоторые системные программы, доступные рядовым пользователям, должны иметь права системного администратора или другого привилегированного пользователя для того, чтобы во время своего исполнения процесса мы производили чтение/запись системных файлов, недоступных рядовым пользователям. Список таких программ различается в разных версиях ОС(это: ps, top(в Linux нет), passwd, mail, pine, slogin, ssh, lpr, lpg).
Общие сведения. Основные понятия. Процесс – ключевое понятие ОС. Каждая программа выполняется в рамках процесса. Процесс – программа в момент выполнения + необходимый набор системных данных, создаваемый ОС (среда выполнения процесса). Процесс – абстрактное понятие, описывающее работу программы. Процесс – исполнитель программы, с которой связана некоторая часть памяти и множество доступных файлов. Процесс ‑ это активность некоторого рода. У него есть программа, входные и выходные данные и состояние.
С каждым процессом связывается его адресное пространство (список адресов, которые процесс может читать и в которые может писать) – программу, данные и стек. С каждым процессом связывается некоторый набор регистров, счетчик команд, указатель стека и другая информация, необходимая для запуска программы (указатели открытых файлов,…) чтобы он был запущен из того состояния, в котором он был оставлен. Во многих ОС эта информация о процессе хранится в таблице ОС – таблице процессов (массив или связный список структур). Т.о. приостановленный процесс: собственное пространство + структура(ы) из таблицы процессов (образ памяти core image)
Главные системные вызовы, которые управляют процессами являются вызовы, связанные с созданием и окончанием процесса. Например: процесс –оболочка(интерпрет.команд - shell) ждет ввода команды. Пользователь напечатал команду вывода компилятора. Теперь оболочка создает новый процесс для запуска компилятора. Когда компилятор закончит работу, он выполнит системный вызов завершения самого себя.
Процесс может создавать дочерние процессы, а они, в свою очередь, свои дочерние процессы. Т.о. может формироваться дерево процессов. Связные процессы – те, которые объединены для выполнения некоторой задачи и они часто передают данные от одного к другому (синхронизируют свою деятельность). Такая связь называется межпроцессным взаимодействием. Другие системные вызовы: запрос на предоставление дополнительной памяти или на ее освобождение; ожидание завершения дочерних процессов; наложение одной программы на другую и т.д.
Аналогия процесса: Пример: повар печет торт. У него есть рецепт, кухня, кухонное оборудование и ингредиенты для торта. Рецепт – программа (алгоритм) Повар – исполняет роль процессора. это процесс Ингредиенты – входные данные Торт – выходные данные Процесс может быть прерван: прибежал сын, его укусила пчела и повар переключился на процесс оказания первой помощи, а потом вернулся к торту.
|