Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 7 лет назад пользователемЗугайрат Гитинова
1 Процессы и потоки
2 Процессы В общем представлении, процесс - это программа, выполняющаяся в оперативной памяти компьютера. Реально, все гораздо сложней. Под понятием процесса понимается некоторая совокупность набора исполняющихся команд, ассоциированных с ним ресурсов (выделенная для исполнения память или адресное пространство, стеки, используемые файлы, устройства ввода- вывода и т. д.) и текущего момента его выполнения (значения регистров, программного счетчика, состояние стека и значения переменных).
3 Основные операции над процессами создание процесса – завершение процесса (одноразовые); приостановка процесса (перевод из состояния «исполнение» в состояние «готовность») – запуск процесса (перевод из состояния «готовность» в состояние «исполнение»); блокирование процесса (перевод из состояния «исполнение» в состояние «ожидание») – разблокирование процесса (перевод из состояния «ожидание» в состояние «готовность»).
4 У процесса выделяют следующие контексты регистровый (содержимое всех регистров процессора); системный (запись в таблице процессов, управляющая информация о процессе и пр.); пользовательский (код и данные).
5 PID В пользовательском пространстве процессы представлены идентификаторами (PID). С точки зрения пользователя PID представляет собой число, уникальным образом идентифицирующее процесс. новый процесс - всегда копия существующего Первый процесс в системе запускается при инициализации ядра. Данный процесс называется - init и имеет PID=1. Это прародитель всех процессов в системе. Для отображения выполняемых процессов следует набрать команду ps в терминале.
6 Состояния процессов Активен (R=Running) – процесс находится в очереди на выполнение, то есть либо выполняется в данный момент, либо ожидает выделения ему очередного кванта времени центрального процессора. «Спит» (S=Sleeping) – процесс находится в состоянии прерываемого ожидания, то есть ожидает какого-то события, сигнала или освобождения нужного ресурса. Находится в состоянии непрерываемого ожидания (D=Direct) – процесс ожидает определенного («прямого») сигнала от аппаратной части и не реагирует на другие сигналы; Приостановлен (T) – процесс находится в режиме трассировки (обычно такое состояние возникает при отладке программ). «Зомби» (Z=Zombie) – это процесс, выполнение которого завершилось, но относящиеся к нему структуры ядра по каким-то причинам не освобождены.
7 Состояния процессов Для просмотра состояний запущенных процессов используется команда ps с ключом -h.
8 Приоритет процесса Приоритет процесса определяет, как часто данный процесс, по сравнению с другими процессами, стоящими в очереди на выполнение процессора, будет исполняться процессором. Изменить приоритет процесса можно командой renice. C помощью команды nice можно запускать процессы с определенным приоритетом.
9 Перевод заданий в фоновый режим и уничтожение заданий /home/larry# yes y
10 /home/larry# yes > /dev/null
11 Один способ перевести процесс в фоновый режим – приписать символ «&» к концу команды. Пример /home/larry# yes > /dev/null & \verb+[1] 164+ /home/larry#
12 Статус процесса Для того, чтобы узнать статус этого процесса, нужно исполнить команду jobs, которая является внутренней командой оболочки /home/larry# jobs [1]+ Running yes >/dev/null &- /home/larry#
13 Для того, чтобы прервать работу задания, используется команда kill. В качестве аргумента этой команде дается либо номер задания, либо PID. В рассмотренном выше случае номер задания был 1, так что команда /home/larry# kill %1 Теперь введем команду jobs снова, чтобы проверить результат предыдущего действия: /home/larry# jobs [1]+ Terminated yes >/dev/null /home/larry#
14 команда /home/larry# kill 164 эквивалентна команде /home/larry# kill %1
15 Приостановка и продолжение работы заданий /home/larry# yes > /dev/null {ctrl-Z} [1]+ Stopped yes >/dev/null /home/larry#
16 Приостановка и продолжение работы заданий Для выполнения задания на переднем плане можно использовать команду fg (от слова «foreground» – передний план) /home/larry# fg yes >/dev/null фоновый режим командой bg (от слова «background» – фон) /home/larry# bg [1]+ yes &>/dev/null & /home/larry#
17 Приостановка и продолжение работы заданий /home/larry# yes & /home/larry# fg %2 помещает задание номер 2 на передний план, а команда /home/larry# bg %3 помещает задание номер 3 в фоновый режим. Замечание Использовать PID в качестве аргументов команд fg и bg нельзя.
18 Приостановка и продолжение работы заданий /home/larry# %2 будет эквивалентна команде /home/larry# fg %2
19 Механизмы межпроцессного взаимодействия в ОС Linux создание, завершение процесса, получение информации о процессе: fork, exit, getpid, getppid и т. д.; синхронизация процессов: signal, kill, sleep, alarm, wait, paus), semop, semctl, semcreate и т. д.; создание информационного канала, разделяемой памяти, очереди сообщений и работа с ними: pipe, mkfifo, read, write, msgget, shmget, msgctl, shmctl и т. д.
20 Механизм межпроцессного взаимодействия (Inter-Process Communication Facilities – IPC) средства, обеспечивающие возможность синхронизации процессов при доступе к совместно используемым ресурсам – семафоры (semaphores); средства, обеспечивающие возможность посылки процессом сообщений другому произвольному процессу – очереди сообщений (message queries); средства, обеспечивающие возможность наличия общей для процессов памяти – сегменты разделяемой памяти (shared memory segments); средства, обеспечивающие возможность «общения» процессов, как родственных, так и нет, через пайпы или каналы (pipes).
21 Потоки Поток (thread) можно определить как часть процесса, включающая управляющую последовательность команд и использующая системные ресурсы этого процесса.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.