Управление
<<  Управление процессами Управление процессами  >>
Управление процессами
Управление процессами
Определение процесса
Определение процесса
Жизненный цикл процесса
Жизненный цикл процесса
Модельная ОС
Модельная ОС
Модель пакетной однопроцессной системы
Модель пакетной однопроцессной системы
Модель пакетной мультипроцессной системы
Модель пакетной мультипроцессной системы
Модель ОС с разделением времени
Модель ОС с разделением времени
Модель ОС с разделением времени (модификация)
Модель ОС с разделением времени (модификация)
Типы процессов
Типы процессов
Типы процессов
Типы процессов
Понятие «процесс»
Понятие «процесс»
Контекст процесса
Контекст процесса
Процессы в UNIX
Процессы в UNIX
Определение процесса Unix
Определение процесса Unix
Определение процесса в UNIX
Определение процесса в UNIX
Контекст процесса
Контекст процесса
...
...
Контекст процесса
Контекст процесса
Контекст процесса
Контекст процесса
Базовые средства организации и управления процессами
Базовые средства организации и управления процессами
Второе определение процесса в UNIX
Второе определение процесса в UNIX
Создание нового процесса
Создание нового процесса
Создание нового процесса
Создание нового процесса
Создание нового процесса
Создание нового процесса
Схема создания нового процесса
Схема создания нового процесса
Пример
Пример
Семейство системных вызовов exec()
Семейство системных вызовов exec()
Семейство системных вызовов exec()
Семейство системных вызовов exec()
Семейство системных вызовов exec()
Семейство системных вызовов exec()
Пример
Пример
Использование схемы fork-exec
Использование схемы fork-exec
Завершение процесса
Завершение процесса
Завершение процесса
Завершение процесса
Завершение процесса
Завершение процесса
Получение информации о завершении своего потомка
Получение информации о завершении своего потомка
Получение информации о завершении своего потомка
Получение информации о завершении своего потомка
Пример
Пример
Жизненный цикл процессов
Жизненный цикл процессов
Начальная загрузка
Начальная загрузка
Инициализация Unix системы
Инициализация Unix системы
Инициализация системы
Инициализация системы
Инициализация системы
Инициализация системы
Схема дальнейшей работы системы
Схема дальнейшей работы системы

Презентация: «Управление процессами». Автор: ter. Файл: «Управление процессами.ppt». Размер zip-архива: 134 КБ.

Управление процессами

содержание презентации «Управление процессами.ppt»
СлайдТекст
1 Управление процессами

Управление процессами

2 Определение процесса

Определение процесса

Основные понятия

Процесс — совокупность машинных команд и данных, которая исполняется в рамках вычислительной системы и обладает правами на владение некоторым набором ресурсов.

Ресурсы могут принадлежать только одному процессу, либо ресурсы могут разделяться между процессами — разделяемые ресурсы.

Выделение ресурсов процессу

Предварительная декларация — до начала выполнения динамическое пополнение списка принадлежащих процессу ресурсов

Количество допустимых процессов в системе — ресурс ВС.

3 Жизненный цикл процесса

Жизненный цикл процесса

Основной из задач ОС является поддержание жизненного цикла процесса.

Типовые этапы обработки процесса в системе

Жизненный цикл процесса в системе: Образование (порождение) процесса Обработка (выполнение) процесса Ожидание (по тем или иным причинам) постановки на выполнение Завершение процесса

4 Модельная ОС

Модельная ОС

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

5 Модель пакетной однопроцессной системы

Модель пакетной однопроцессной системы

0. Поступление процесса в очередь на начало обработки ЦП (процесс попадает в БВП) 1. Начало обработки процесса на ЦП (из БВП в БОП) 2. Завершение выполнения процесса, освобождение системных ресурсов.

Ожидание начала обработки

Обработка ЦП

Завершение

0

1

2

6 Модель пакетной мультипроцессной системы

Модель пакетной мультипроцессной системы

Бвп

Боп

Обработка ЦП

Ожидание начала обработки

Завершение

5

0

1

4

2

Ожидания операции в/в

Очередь на выполнение

3

7 Модель ОС с разделением времени

Модель ОС с разделением времени

Бвп

Боп

Обработка ЦП

Ожидание начала обработки

Завершение

6

0

1

4

2

5

Ожидания операции в/в

Очередь на выполнение

3

8 Модель ОС с разделением времени (модификация)

Модель ОС с разделением времени (модификация)

Бвп

Боп

Обработка ЦП

Ожидание начала обработки

Завершение

6

0

1

4

2

5

Ожидания операции в/в

Очередь на выполнение

3

Свопинг

Диск

9 Типы процессов

Типы процессов

«Полновесные» процессы «легковесные» процессы

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

10 Типы процессов

Типы процессов

Однонитевая организация процесса — «один процесс — одна нить»:

Многонитевая организация процесса:

Процесс

Нить

Процесс

Нить

Нить

Нить

Нить

11 Понятие «процесс»

Понятие «процесс»

Понятие «процесс» включает в себя следующее: исполняемый код собственное адресное пространство, которое представляет собой совокупность виртуальных адресов, которые может использовать процесс ресурсы системы, которые назначены процессу ОС хотя бы одну выполняемую нить

12 Контекст процесса

Контекст процесса

Контекст процесса — совокупность данных, характеризующих актуальное состояние процесса.

Пользовательская составляющая — текущее состояние программы (совокупность машинных команд, размещенных в ОЗУ) Системная составляющая ? информация идентификационного характера (PID процесса, PID «родителя»…) ? информация о содержимом регистров (РОН, индексные регистры, флаги...) ? информация, необходимая для управления процессом (состояние процесса, приоритет....)

13 Процессы в UNIX

Процессы в UNIX

Ситемно-ориентированные определения процесса Контекст процесса 3.1. Пользовательская составляющая (тело процесса) 3.2. Разделение сегмента кода 3.3. Аппаратная составляющая 3.4. Системная составляющая

14 Определение процесса Unix

Определение процесса Unix

Процесс

Объект, зарегистрированный в таблице процессов ОС

Объект, порожденный системным вызовом fork()

15 Определение процесса в UNIX

Определение процесса в UNIX

Процесс в UNIX — объект, зарегистрированный в таблице процессов UNIX.

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

Таблица процессов

Пользовательский (тело процесса)

Адресное пространство процесса

Контекст процесса

PID

Системный

Аппаратный

Адресное пространство ядра

16 Контекст процесса

Контекст процесса

Контекст процесса

Пользовательская составляющая (тело процесса)

Аппаратная составляющая

Системная составляющая

Сегмент кода

Сегмент данных

Статические данные

Статические переменные

Машинные команды Неизменяемые константы

Фактические параметры в функциях Автоматические переменные Динамическая память

Разделяемая память

Стек

17 ...

...

Разделение сегмента кода

Процесс 1

Процесс 2

Процесс N

Сегмент кода программы

Для идентичных процессов имеется возможность запускать только один сегмент кода:

Сегмент данных N

Сегмент данных 1

Сегмент данных 2

18 Контекст процесса

Контекст процесса

Счетчик команд регистр состояния процессора аппарат виртуальной памяти регистры общего назначения и т. Д.

Контекст процесса

Пользовательская составляющая (тело процесса)

Аппаратная составляющая

Системная составляющая

все регистры и аппаратные таблицы ЦП, используемые исполняемым процессом

19 Контекст процесса

Контекст процесса

Контекст процесса

Пользовательская составляющая (тело процесса)

Аппаратная составляющая

Системная составляющая

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

20 Базовые средства организации и управления процессами

Базовые средства организации и управления процессами

Второе определение процесса UNIX Создание нового процесса. Системный вызов fork() Семейство системных вызовов exec() Использование схемы fork() — exec() Завершение процесса. Системный вызов exit() Получение информации о завершении потомка. Системный вызов wait()

21 Второе определение процесса в UNIX

Второе определение процесса в UNIX

Процесс в UNIX — это объект, порожденный системным вызовом fork().

Системный вызов — обращение процесса к ядру ОС за выполнением тех или иных действий.

22 Создание нового процесса

Создание нового процесса

#include <sys/types.h> #include <unistd.h> pid_t fork ( void );

При удачном завершении возвращается: ? сыновнему процессу значение 0 ? родительскому процессу PID порожденного процесса При неудачном завершении возвращается –1, код ошибки устанавливается в переменной errno

Заносится новая запись в таблицу процессов Новый процесс получает уникальный идентификатор Создание контекста для сыновнего процесса

23 Создание нового процесса

Создание нового процесса

Составляющие контекста, наследуемые при вызове fork()

Окружение Файлы, открытые в процессе-отце Способы обработки сигналов Разрешение переустановки эффективного идентификатора пользователя Разделяемые ресурсы процесса-отца Текущий рабочий каталог и домашний каталоги …

24 Создание нового процесса

Создание нового процесса

Составляющие контекста, не наследуемые при вызове fork()

Идентификатор процесса (PID) Идентификатор родительского процесса (PPID) Сигналы, ждущие доставки в родительский процесс Время посылки ожидающего сигнала, установленное системным вызовом alarm() Блокировки файлов, установленные родительским процессом

25 Схема создания нового процесса

Схема создания нового процесса

PID = 2757

PID = 2757

PID = 2760

Сегмент кода

Сегмент кода

Сегмент кода

Предок: выполняются операторы в if-секции

Потомок: выполняются операторы в else-секции

main() { … if ( (pid=fork()) > 0 ) { … } else { … } }

main() { … if ( (pid=fork()) > 0 ) { … } else { … } }

main() { … if ( (pid=fork()) > 0 ) { … } else { … } }

26 Пример

Пример

int main ( int argc, char **argv ) { printf ( "PID = %d; PPID = %d \n", getpid(), getppid() ); fork (); printf ( "PID = %d; PPID = %d \n", getpid(), getppid() ); return 0; }

27 Семейство системных вызовов exec()

Семейство системных вызовов exec()

#include <unistd.h> int execl (const char *path, char *arg0, …, char *argn, 0);

Path — имя файла, содержащего исполняемый код программы arg0 — имя файла, содержащего вызываемую на выполнение программу arg1, …, argn — аргументы программы, передаваемые ей при вызове

Возвращается: в случае ошибки –1

28 Семейство системных вызовов exec()

Семейство системных вызовов exec()

Схема работы системного вызова exec()

PID = 2760

PID = 2760

Main() { // реализация программы ls }

main() { execl(“/bin/ls”, ”ls”, ” l”, (char*)0); }

29 Семейство системных вызовов exec()

Семейство системных вызовов exec()

Сохраняются: Идентификатор процесса Идентификатор родительского процесса Таблица дескрипторов файлов Приоритет и большинство атрибутов

Изменяются: Режимы обработки сигналов Эффективные идентификаторы владельца и группы Файловые дескрипторы (закрытие некоторых файлов)

30 Пример

Пример

#Include <unistd.H> int main ( int argc, char **argv ) { … /* тело программы */ … execl ( “/bin/ls”, ”ls”, ”-l”, (char*) 0 ); /* или execlp ( “ls” ,”ls”, ”-l”, (char*) 0 ); */ printf ( “это напечатается в случае неудачного обращения к предыдущей функции, к примеру, если не был найден файл ls.\N” ); … }

31 Использование схемы fork-exec

Использование схемы fork-exec

PID = 2757

PID = 2760

PID = 2757

PID = 2760

main() { if((pid=fork())== 0) { execl(“/bin/ls”, ”ls”, ” -l”, (char*)0); } else {…} }

Main () { // реализация программы }

main() { if((pid=fork())== 0) { execl(“/bin/ls”, ”ls”, ” -l”, (char*)0); } else {…} }

main() { if((pid=fork())== 0) { execl(“/bin/ls”, ”ls”, ” -l”, (char*)0); } else {…} }

32 Завершение процесса

Завершение процесса

Системный вызов _exit() Выполнение оператора return, входящего в состав функции main() Получение сигнала

33 Завершение процесса

Завершение процесса

#include <unistd.h> void _exit ( int status );

Status : = 0 при успешном завершении # 0 при неудаче (возможно, номер варианта)

34 Завершение процесса

Завершение процесса

Освобождается сегмента кода и сегмента данных процесса Закрываются все открытые дескрипторы файлов Если у процесса имеются потомки, их предком назначается процесс с идентификатором 1 Освобождается большая часть контекста процесса (кроме статуса завершения и статистики выполнения) Процессу-предку посылается сигнал SIGCHLD

35 Получение информации о завершении своего потомка

Получение информации о завершении своего потомка

#include <sys/types.h> #include <sys/wait.h> pid_t wait ( int *status );

Status по завершению содержит: в старшем байте — код завершения процесса-потомка (пользовательский код завершения процесса) в младшем байте — индикатор причины завершения процесса-потомка, устанавливаемый ядром UNIX (системный код завершения процесса)

Возвращается: PID завершенного процесса или –1 в случае ошибки или прерывания

36 Получение информации о завершении своего потомка

Получение информации о завершении своего потомка

Приостановка родительского процесса до завершения (остановки) какого-либо из потомков После передачи информации о статусе завершения предку, все структуры, связанные с процессом-«зомби» освобождаются, удаляется запись о нем из таблицы процессов

37 Пример

Пример

Использование системного вызова wait()

#include <stdio.h> int main ( int argc, char **argv ) { int i; for ( i=1; i<argc; i++ ) { int status; if ( fork () > 0 ) { wait( &status ); printf( “process-father\n” ); continue; } execlp ( argv[i], argv[i], 0 ); exit (); } }

38 Жизненный цикл процессов

Жизненный цикл процессов

Зомби

Создан

Планирование процессов

exit()

wait()

Готов к выполнению очередь готовых процессов

Выполняется

fork()

В режиме ядра

Прерывание

В пользовательском режиме

Блокирован ожидает внешнего события

Внешнее событие

39 Начальная загрузка

Начальная загрузка

Начальная загрузка — загрузка ядра системы в оперативную память, запуск ядра.

Чтение нулевого блока системного устройства аппаратным загрузчиком Поиск и считывание в память файла /unix Запуск на исполнение файла /unix

40 Инициализация Unix системы

Инициализация Unix системы

Начальная инициализация компонентов компьютера (установка часов, инициализация контроллера памяти и пр.) Инициализация системных структур данных Инициализация процесса с номером “0”: не имеет кодового сегмента существует в течении всего времени работы системы

0

Контекст процесса

Кодовый сегмент

41 Инициализация системы

Инициализация системы

Создание ядром первого процесса Копируется процесс “0” (запись таблицы процессов) Создание области кода процесса “1” Копирование в область кода процесса “1” программы, реализующей системный вызов exec(), который необходим для выполнения программы /etc/init

0

1

1

1

Контекст процесса

Контекст процесса

Контекст процесса

Контекст процесса

Кодовый сегмент

Кодовый сегмент

Кодовый сегмент

exec()

42 Инициализация системы

Инициализация системы

Замена команды процесса “1” кодом из файла /etс/init (запуск exec() ) Подключение интерпретатора команд к системной консоли Создание многопользовательской среды

getty

getty

“1”? “init”

init

getty

Терминал 1

Терминал 2

Терминал N

43 Схема дальнейшей работы системы

Схема дальнейшей работы системы

init

Окончание работы

fork()/ exec()

Верный пароль

Неверный пароль

Ввод пароля

init После окончания работы shell создает новый getty

getty Печатает login: и ожидает входа в систему

shell Выполняет пользовательские программы

login Запрашивает пароль и проверяет его

«Управление процессами»
http://900igr.net/prezentacija/ekonomika/upravlenie-protsessami-258388.html
cсылка на страницу

Управление

18 презентаций об управлении
Урок

Экономика

125 тем
Слайды
900igr.net > Презентации по экономике > Управление > Управление процессами