Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
My_shpore_v02.doc
Скачиваний:
61
Добавлен:
21.09.2019
Размер:
2.18 Mб
Скачать

2. Процессы в операционных системах. Общие понятия. Ресурсы процесса. Создание и уничтожение процесса.

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

В большинстве ОС процессы разделяются на системные (выполняющие части ядра ОС) и прикладные (выполняющие задачи пользователя). Процессы в ОС имеют следующие атрибуты (приведено на примере UNIX, в большинстве ОС есть либо прямые, либо косвенные аналоги этих атрибутов)

  • И

    16(2)

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

  • Идентификатор родительского процесса PPID

  • Приоритет процесса

  • Устройство терминала

  • Реальный и эффективный идентификаторы пользователя и группы

При работе процесса ему выделяются ресурсы, предоставляемые ОС – оперативная память, доступ к файлам (файловые дескрипторы), процессорное время. В случае многопроцессной ОС возникает проблема распределения ресурсов между процессами. Для этого служит планировщик задач, механизм защиты памяти и механизм блокировки файлов и устройств. Основная функция планировщика задач – балансировка нагрузки на систему между процессами – распределение процессорного времени согласно приоритету процессов.

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

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

В ОС UNIX существуют механизмы для создания процесса и для запуска новой программы. Системный вызов fork() создает новый процесс, который является точной копией родительского. Тем не менее, между процессами существуют некоторые различия

  • Дочернему процессу присваивается уникальный идентификатор PID, отличный от родительского

  • Идентификатору PPID присваивается значение PID родительского процесса

  • Дочерний процесс получает собственные файловые дескрипторы

  • Для дочернего процесса очищаются все ожидающие доставки сигналы

  • Временная статистика выполнения процесса в таблицах ОС обнуляется

  • Блокировки памяти и записи, установленные в родителе, не наследуются.

При этом процесс наследует следующие свойства:Аргументы командной строки программы,Окружение,UID, GID, EUID, EGID,Приоритет,Установки сигналов – игнорируемые, по умолчанию, установки обработчиков

Уничтожение процесса происходит по получению процессом сигнала SIGSTOP или SIGKILL или по выполнению функции exit(). При этом

  • Отключаются все сигналы

  • Закрываются все открытые файлы

  • Статистика использования ресурсов сохраняется в proc

  • Извещается процесс родитель и переставляется PPID у потомков

  • Статус процесса переводится в zombie

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]