Презентация на тему: Управление ресурсами компьютера

Реклама. Продолжение ниже
Управление ресурсами компьютера
Состояния процессов
Переходы между состояниями
Переходы между состояниями
Состояния потока в QNX
Операции с процессами
Контекст и дескриптор процесса. PCB.
Очередь процессов
Создание процесса
Динамическое создание процесса
Действия при создании процесса
Создание нового процесса в Unix
Создание нового процесса в unix
Создание нового процесса в unix
Создание нового процесса в Windows
Запуск процесса на выполнение
Приостановка процесса
Блокирование процесса
Разблокирование процесса
Завершение процесса
Переключение контекста
Уровни многозадачности
Потоки ядра (нити)
Потоки ядра (нити)
Потоки пользователя
Green threads
Волокна (fiber)
Модели потоков
Кольца защиты
Режимы работы CPU
Обращения процессов к операционной системе
Системные вызовы
Передача сообщений
1/33
Средняя оценка: 4.7/5 (всего оценок: 33)
Код скопирован в буфер обмена
Скачать (243 Кб)
Реклама. Продолжение ниже
1

Первый слайд презентации: Управление ресурсами компьютера

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

Изображение слайда
1/1
2

Слайд 2: Состояния процессов

Выполнение Процесс обладает всеми необходимыми ресурсами и выполняется процессором. Ожидание Процесс заблокирован по своим внутренним причинам. Его выполнение возможно после наступления какого-либо события. Готовность Процесс обладает всеми необходимыми ресурсами но в данный момент не выполняется (ожидает освобождения процессора).

Изображение слайда
1/1
3

Слайд 3: Переходы между состояниями

Ожидание Выполнение Готовность Событие произошло Ожидание события Вытеснение Выбран на исполнение

Изображение слайда
1/1
4

Слайд 4: Переходы между состояниями

Ожидание Выполнение Готовность Событие произошло Ожидание события Приостановка Выбран на исполнение Рождение Допуск к планированию Закончил исполнение Завершение процесса

Изображение слайда
1/1
5

Слайд 5: Состояния потока в QNX

Изображение слайда
Изображение для работы со слайдом
1/2
6

Слайд 6: Операции с процессами

Создание процесса Приостановка процесса Блокирование процесса Завершение процесса Запуск процесса Разблокирование процесса Изменение приоритета процесса

Изображение слайда
Изображение для работы со слайдом
1/2
7

Слайд 7: Контекст и дескриптор процесса. PCB

Контекст процесса Состояние среды процесса Регистры CPU IP Открытые файлы Операции ввода-вывода Коды ошибок системных вызовов … Дескриптор процесса Оперативная информация для планирования: ID процесса Состояние Уровень приоритета Место нахождения сегмента кода …

Изображение слайда
1/1
Реклама. Продолжение ниже
8

Слайд 8: Очередь процессов

Дескриптор процесса1 следующий Дескриптор процесса2 следующий Дескриптор процесса3 следующий

Изображение слайда
1/1
9

Слайд 9: Создание процесса

Когда происходит создание процессов? При запуске системы Динамически

Изображение слайда
1/1
10

Слайд 10: Динамическое создание процесса

Процесс, инициировавший создание нового процесса называется процессом-родителем (parent process). Созданный процесс – ребёнком ( child process). Процесс 1 Процесс 2 Процесс 3 Процесс 4 Процесс 5 Процесс 6 Процесс 6 Процесс 8 Процесс 7 Процесс 9 Процесс 10 Процесс 11

Изображение слайда
1/1
11

Слайд 11: Действия при создании процесса

Создаётся PCB процесса Процесс получает уникальный идентификатор Выделяются ресурсы для нового процесса Процесс может получить часть ресурсов от процесса-родителя и использует их совместно Процесс получает новые ресурсы от ОС Устанавливаются начальные значения контекста процесса, включая регистры процессора Дублируется контекст процесса-родителя (Unix, Windows) Запускается новая программа (Windows, VAX/VMS) Состояние процесса изменяется на «готовность»

Изображение слайда
1/1
12

Слайд 12: Создание нового процесса в Unix

При создании нового процесса создаётся его копия, отличающаяся от родителя только следующим: Дочерний процесс имеет уникальный id Дочерний процесс имеет другой id родителя Дочерний процесс получает копию дескрипторов системных объектов, ссылающихся на те же объекты Счётчики использования ресурсов сбрасываются Все интервальные таймеры сбрасываются

Изображение слайда
1/1
13

Слайд 13: Создание нового процесса в unix

if(child_id>0) printf(“child created“); else if(child_id==0) printf(“I am child”); if(child_id>0) printf(“child created“); else if(child_id==0) printf(“I am child”); pid_t child_id; child_id=fork(); Родитель, child_id – идентификатор созданного ребёнка Ребёнок, child_id =0

Изображение слайда
1/1
14

Слайд 14: Создание нового процесса в unix

Код родителя pid_t child_id; char *argv[]; char *env[]; … if((child_id=fork())==0) execve(“child”,argv,env); else if(child_id>0) printf(“child created”); Код процесса child if((child_id=fork())==0) execve(“child”,argv,env); // загрузка child int main(argc,argv,env) …

Изображение слайда
1/1
Реклама. Продолжение ниже
15

Слайд 15: Создание нового процесса в Windows

Родитель if(CreateProcess(…)) { printf(“child created”); } Ребёнок //C оздание нового процесса системой main() { …

Изображение слайда
1/1
16

Слайд 16: Запуск процесса на выполнение

Выбирается один из процессов в состоянии готовность Обеспечивается наличие в оперативной памяти необходимой для выполнения информации Контекст процесса восстанавливается из PCB Состояние процесса изменяется на выполнение Управление передаётся коду, на который указывает IP процесса.

Изображение слайда
1/1
17

Слайд 17: Приостановка процесса

Происходит прерывание CPU c охраняет регистр IP и некоторые другие регистры Запускается обработчик прерывания ОС сохраняет контекст процесса Состояние процесса изменяется на готовность

Изображение слайда
1/1
18

Слайд 18: Блокирование процесса

Процесс обращается к ОС с помощью специального вызова ОС обрабатывает вызов Процесс регистрируется в очереди ожидающих события Контекст процесса сохраняется в PCB Состояние процесса изменяется на ожидание

Изображение слайда
1/1
19

Слайд 19: Разблокирование процесса

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

Изображение слайда
1/1
20

Слайд 20: Завершение процесса

Состояние процесса изменяется на «завершение работы» Освобождаются использованные процессом ресурсы PCB процесса может оставаться в системе Что происходит с дочерними процессами при смерти родительского? Дети уничтожаются ( VAX/VMS) Дети усыновляются специальным системным процессом ( Unix) Дети становятся корнями новых деревьев ( Windows)

Изображение слайда
1/1
21

Слайд 21: Переключение контекста

Процесс 1 Процесс 2 Исполнение Исполнение Готовность Ожидание Прерывание Сохранение контекста Обработка прерывания Планирование Восстановление контекста Выполнение кода ОС Работа hardware Выполнение кода пользователя Готовность

Изображение слайда
1/1
22

Слайд 22: Уровни многозадачности

Процессы ( process) Потоки ядра (kernel thread) Потоки пользователя (user thread) Волокна (fiber)

Изображение слайда
1/1
23

Слайд 23: Потоки ядра (нити)

Поток ( thread) – результат разделения процесса выполнения программы на две или более одновременно выполняющиеся задачи. Процессы: Независимы Большое количество информации о состоянии Различные адресные пространства Взаимодействуют только через механизмы IPC Медленное переключение Потоки: Входят в процессы Разделяют многие ресурсы Одно адресное пространство Могут взаимодействовать через механизмы IPC Быстрое переключение

Изображение слайда
1/1
24

Слайд 24: Потоки ядра (нити)

Имеют собственные: IP Стек Регистры Состояние Нити-потомки TLS Разделяют: Адресное пространство Глобальные переменные Объекты и ресурсы ОС Статистическую информацию

Изображение слайда
1/1
25

Слайд 25: Потоки пользователя

Потоки могут быть реализованы с помощью пользовательских библиотек и работать без какого-либо вмешательства ОС. Небольшие накладные расходы на создание и переключение Пользователь может контролировать алгоритм планирования Как правило не могут использовать несколько ядер Один заблокированный поток может привести к блокировке остальных

Изображение слайда
1/1
26

Слайд 26: Green threads

Зелёные потоки – потоки, управление которыми осуществляет виртуальная машина ( Java 1.1, Ruby 1.9, Smalltalk,…)

Изображение слайда
1/1
27

Слайд 27: Волокна (fiber)

Волокна – пользовательские потоки, работающие в режиме невытесняющей многозадачности. Самые низкие накладные расходы на создание и переключение. Отсутствие проблем с race condition. Как правило не могут использовать несколько ядер. Один заблокированный поток может привести к блокировке остальных.

Изображение слайда
1/1
28

Слайд 28: Модели потоков

1 :1 – потоки ядра Все создаваемые потоки отображаются как объекты планирования ядра N:1 – потоки пользователя Все потоки пользователя отображаются на один объект планирования ядра N:M – гибридные потоки Обеспечивается выполнение потоков пользователя с использованием нескольких объектов планирования ядра

Изображение слайда
1/1
29

Слайд 29: Кольца защиты

Иерархические домены защиты называют кольцами защиты Кольцо 3 - приложения Кольцо 2 - драйвера Кольцо 1 - драйвера Кольцо 0 - ядро

Изображение слайда
1/1
30

Слайд 30: Режимы работы CPU

Современные процессоры поддерживают режимы работы с разным уровнем привилегий (не менее двух) В привилегированном режиме возможно выполнение любых команд В режимах с меньшими уровнями часть команд может быть не доступна Команды ввода-вывода Обращения к определённым областям памяти … ОС могут использовать режимы CPU для реализации колец защиты

Изображение слайда
1/1
31

Слайд 31: Обращения процессов к операционной системе

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

Изображение слайда
1/1
32

Слайд 32: Системные вызовы

Для реализации системных вызовов создаётся библиотека, содержащая соответствующие функции Процесс обращается к функции Функция подготавливает данные и передаёт управление коду защищённого режима Прерывания Специальная команда процессора Код ядра анализирует параметры функции, проверяет допустимость операции и выполняет запрошенную функцию.

Изображение слайда
1/1
33

Последний слайд презентации: Управление ресурсами компьютера: Передача сообщений

Пользовательский процесс создаёт сообщение, описывающее требуемое действие С помощью специальной функции сообщение передаётся процессу ОС Пользовательский процесс блокируется на время выполнения запроса По завершению обработки ОС отсылает сообщение с результатами пользовательскому процессу и тот разблокируется

Изображение слайда
1/1
Реклама. Продолжение ниже