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

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

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

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

2

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

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

3

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

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

4

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

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

5

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

6

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

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

7

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

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

8

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

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

9

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

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

10

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

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

11

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

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

12

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

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

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

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) …

15

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

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

16

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

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

17

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

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

18

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

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

19

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

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

20

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

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

21

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

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

22

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

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

23

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

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

24

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

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

25

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

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

26

Слайд 26: Green threads

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

27

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

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

28

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

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

29

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

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

30

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

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

31

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

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

32

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

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

33

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

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

Похожие презентации

Ничего не найдено