Процессы и потоки. Процессы В общем представлении, процесс - это программа, выполняющаяся в оперативной памяти компьютера. Реально, все гораздо сложней.

Презентация:



Advertisements
Похожие презентации
Учебный курс Основы операционных систем Лекция 2 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Advertisements

Управление процессами. Определение процесса. Основные понятия Процесс совокупность машинных команд и данных, которая обрабатывается в рамках вычислительной.
Управление процессами. Определение процесса. Основные понятия Процесс совокупность машинных команд и данных, которая исполняется в рамках вычислительной.
Системы реального времени Лекция 4: процессы. Понятие процесса Процесс - фундаментальное понятие любой операционной системы С помощью процессов происходит.
Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Кооперация процессов Процессы Бленда Николай Андреевич 2009.
Основы современных операционных систем Лекция 8. (C) В.О. Сафонов, Понятие процесса Состояния процесса Блок управления процессом Диспетчеризация.
Операционная система MS Windows* Развитие ОС: пакетная обработка, интерактивные системы, ОС реального времени, системы с разделением времени. Истинная.
Лекция 4. Режимы работы микропроцессора. Взаимодействие микропроцессора с остальными устройствами Взаимодействие МП с остальными устройствами МПС происходит.
6. Средства синхронизации и взаимодействия процессов 6.1. Проблема синхронизации Процессам Процессам часто нужно взаимодействовать друг с другом, например,
Операционные системы, среды и оболочки Процессы в операционных системах.
Операционные системы Подготовила Подготовила студентка студентка 1 курса группы Э курса группы Э-108 Шпудейко Кристина Шпудейко Кристина.
Лекция 3. Исключения и прерывания в встроенных системах.
Архитектура ввода и вывода. DMA(Direct memory access). Предмет : Архитектура компьютера. Выполнила : Мадиярова Азиза.
Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009.
Современные операционные системы UNIX UNIX Linux Linux QNX QNX.
АРХИТЕКТУРА КОМПЬЮТЕРА При рассмотрении компьютерных устройств принято различать их архитектуру и структуру. Архитектурой компьютера называется его описание.
Реализация взаимодействия процессов. Взаимодействие процессов взаимодействие в рамках локальной ЭВМ (одной ОС) взаимодействие в рамках сети родственные.
Современные операционные системы UNIX UNIX Linux Linux QNX QNX.
Основные виды ресурсов и возможности их разделения.
Транксрипт:

Процессы и потоки

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

Основные операции над процессами создание процесса – завершение процесса (одноразовые); приостановка процесса (перевод из состояния «исполнение» в состояние «готовность») – запуск процесса (перевод из состояния «готовность» в состояние «исполнение»); блокирование процесса (перевод из состояния «исполнение» в состояние «ожидание») – разблокирование процесса (перевод из состояния «ожидание» в состояние «готовность»).

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

PID В пользовательском пространстве процессы представлены идентификаторами (PID). С точки зрения пользователя PID представляет собой число, уникальным образом идентифицирующее процесс. новый процесс - всегда копия существующего Первый процесс в системе запускается при инициализации ядра. Данный процесс называется - init и имеет PID=1. Это прародитель всех процессов в системе. Для отображения выполняемых процессов следует набрать команду ps в терминале.

Состояния процессов Активен (R=Running) – процесс находится в очереди на выполнение, то есть либо выполняется в данный момент, либо ожидает выделения ему очередного кванта времени центрального процессора. «Спит» (S=Sleeping) – процесс находится в состоянии прерываемого ожидания, то есть ожидает какого-то события, сигнала или освобождения нужного ресурса. Находится в состоянии непрерываемого ожидания (D=Direct) – процесс ожидает определенного («прямого») сигнала от аппаратной части и не реагирует на другие сигналы; Приостановлен (T) – процесс находится в режиме трассировки (обычно такое состояние возникает при отладке программ). «Зомби» (Z=Zombie) – это процесс, выполнение которого завершилось, но относящиеся к нему структуры ядра по каким-то причинам не освобождены.

Состояния процессов Для просмотра состояний запущенных процессов используется команда ps с ключом -h.

Приоритет процесса Приоритет процесса определяет, как часто данный процесс, по сравнению с другими процессами, стоящими в очереди на выполнение процессора, будет исполняться процессором. Изменить приоритет процесса можно командой renice. C помощью команды nice можно запускать процессы с определенным приоритетом.

Перевод заданий в фоновый режим и уничтожение заданий /home/larry# yes y

/home/larry# yes > /dev/null

Один способ перевести процесс в фоновый режим – приписать символ «&» к концу команды. Пример /home/larry# yes > /dev/null & \verb+[1] 164+ /home/larry#

Статус процесса Для того, чтобы узнать статус этого процесса, нужно исполнить команду jobs, которая является внутренней командой оболочки /home/larry# jobs [1]+ Running yes >/dev/null &- /home/larry#

Для того, чтобы прервать работу задания, используется команда kill. В качестве аргумента этой команде дается либо номер задания, либо PID. В рассмотренном выше случае номер задания был 1, так что команда /home/larry# kill %1 Теперь введем команду jobs снова, чтобы проверить результат предыдущего действия: /home/larry# jobs [1]+ Terminated yes >/dev/null /home/larry#

команда /home/larry# kill 164 эквивалентна команде /home/larry# kill %1

Приостановка и продолжение работы заданий /home/larry# yes > /dev/null {ctrl-Z} [1]+ Stopped yes >/dev/null /home/larry#

Приостановка и продолжение работы заданий Для выполнения задания на переднем плане можно использовать команду fg (от слова «foreground» – передний план) /home/larry# fg yes >/dev/null фоновый режим командой bg (от слова «background» – фон) /home/larry# bg [1]+ yes &>/dev/null & /home/larry#

Приостановка и продолжение работы заданий /home/larry# yes & /home/larry# fg %2 помещает задание номер 2 на передний план, а команда /home/larry# bg %3 помещает задание номер 3 в фоновый режим. Замечание Использовать PID в качестве аргументов команд fg и bg нельзя.

Приостановка и продолжение работы заданий /home/larry# %2 будет эквивалентна команде /home/larry# fg %2

Механизмы межпроцессного взаимодействия в ОС Linux создание, завершение процесса, получение информации о процессе: fork, exit, getpid, getppid и т. д.; синхронизация процессов: signal, kill, sleep, alarm, wait, paus), semop, semctl, semcreate и т. д.; создание информационного канала, разделяемой памяти, очереди сообщений и работа с ними: pipe, mkfifo, read, write, msgget, shmget, msgctl, shmctl и т. д.

Механизм межпроцессного взаимодействия (Inter-Process Communication Facilities – IPC) средства, обеспечивающие возможность синхронизации процессов при доступе к совместно используемым ресурсам – семафоры (semaphores); средства, обеспечивающие возможность посылки процессом сообщений другому произвольному процессу – очереди сообщений (message queries); средства, обеспечивающие возможность наличия общей для процессов памяти – сегменты разделяемой памяти (shared memory segments); средства, обеспечивающие возможность «общения» процессов, как родственных, так и нет, через пайпы или каналы (pipes).

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