Архитектура операционных систем. Процессы и потоки

Смотреть слайды в полном размере
Презентация Архитектура операционных систем. Процессы и потоки

Презентация «Архитектура операционных систем. Процессы и потоки» содержит 35 слайдов и доступна в формате ppt. Размер файла: 99.97 KB

Вы можете предварительно ознакомиться с презентацией, просмотреть текст и слайды к ней, а также, в случае, если она вам подходит - скачать файл для редактирования или печати.

Просмотреть и скачать

Pic.1
Архитектура операционных систем 3. Процессы и потоки
Архитектура операционных систем 3. Процессы и потоки
Pic.2
Процесс Определения: Это программа в состоянии выполнения Объект, выполняемый на процессоре Процессы
Процесс Определения: Это программа в состоянии выполнения Объект, выполняемый на процессоре Процессы – фундаментальное понятие в ОС Как исполняемый объект, процесс позволяет параллельное выполнение …
Pic.3
Процесс 2 Процесс состоит из трех основных компонент Исполняемого программного кода Ассоциированных
Процесс 2 Процесс состоит из трех основных компонент Исполняемого программного кода Ассоциированных с ним данных, необходимых для выполнения этой программы Контекста (информация, необходимая ОС для …
Pic.4
Образ процесса Это выделенное место в памяти Каждый процесс выполняется в собственном виртуальном ад
Образ процесса Это выделенное место в памяти Каждый процесс выполняется в собственном виртуальном адресном пространстве, которое состоит из: Сегмента стэка: используется для вызовов функций и …
Pic.5
Структуры управления процессом Таблица процессов. Одна запись на каждый процесс Блок управления проц
Структуры управления процессом Таблица процессов. Одна запись на каждый процесс Блок управления процессом: Process Control Block (PCB) Описывает свой процесс и его текущее состояние Образ процесса …
Pic.6
Process Control Block Содержит всю информацию, необходимую для приостановки и последующего возобновл
Process Control Block Содержит всю информацию, необходимую для приостановки и последующего возобновления процесса Идентификатор процеса № процесса, информация о пользователе, … Состояние процессора …
Pic.7
Диспетчеризация «Диспетчер» отправляет процессы на выполнение: выделяет время ЦП, переключает ЦП с о
Диспетчеризация «Диспетчер» отправляет процессы на выполнение: выделяет время ЦП, переключает ЦП с одного процесса на другой В любой момент времени, процесс может находится в каком-либо состоянии …
Pic.8
Модель состояний процесса 1 Можно выделить три основных состояния Выполнения (исполняется на ЦП) Гот
Модель состояний процесса 1 Можно выделить три основных состояния Выполнения (исполняется на ЦП) Готовности (временно остановлен) Блокировки (ожидает внешнего события)
Pic.9
Модель состояний процесса 2 Модель из пяти состояний Новый: процесс создан, но ещё не помещён операц
Модель состояний процесса 2 Модель из пяти состояний Новый: процесс создан, но ещё не помещён операционной системой в пул выполняемых процессов. Создан PCB, но процесс ещё не в памяти Готовность: …
Pic.10
Планирование процессов В ОС есть различные очереди (или списки) для планирования процессов Очередь з
Планирование процессов В ОС есть различные очереди (или списки) для планирования процессов Очередь задач: множество всех процессов в системе Очередь готовых: множество всех процессов, готовых для …
Pic.11
Управление процессами Используется одна очередь «готовых» и одна очередь «заблокированных» Недостатк
Управление процессами Используется одна очередь «готовых» и одна очередь «заблокированных» Недостатки: При наступлении события, все ожидающие этого события процессы нужно переместить из …
Pic.12
Создание процесса Загрузка системы При инициализации системы создаются несколько процессов В Unix, э
Создание процесса Загрузка системы При инициализации системы создаются несколько процессов В Unix, это процессы «демоны» sched (pid 0), init (pid 1), и другие более высокоуровневые (веб-сервер, …
Pic.13
Создание процесса 2 Присвоить уникальный идентификатор новому процессу Выделить место для процесса П
Создание процесса 2 Присвоить уникальный идентификатор новому процессу Выделить место для процесса Программа, данные, стэк Инициализировать PCB Добавить процесс в очередь «готовых» к выполнению
Pic.14
Иерархия процессов (UNIX) Строгая иерархия между процессами: дочерний и родительский процессы всегда
Иерархия процессов (UNIX) Строгая иерархия между процессами: дочерний и родительский процессы всегда взаимосвязаны Группы процессов Напр. интерпретатор командной строки (shell) является родительским …
Pic.15
Иерархия процессов (Windows) Её нет. Все равны. Хэндл процесса: когда новый процесс создаётся родите
Иерархия процессов (Windows) Её нет. Все равны. Хэндл процесса: когда новый процесс создаётся родительским, то родитель получает хэндл дочернего процесса. Т. о. может им управлять. Этот хэндл можно …
Pic.16
Создание процесса (UNIX) Процессы создаются через fork() / exec() fork() создаёт точный клон вызываю
Создание процесса (UNIX) Процессы создаются через fork() / exec() fork() создаёт точный клон вызывающего процесса, т. н. «дочерний» процесс exec() заменяет образ процесса этого клона новой …
Pic.17
Создание процесса (UNIX) 2
Создание процесса (UNIX) 2
Pic.18
Создание процесса (UNIX) 3 Как же создать новую программу, а не ещё одну копию старой? «Легко». Внач
Создание процесса (UNIX) 3 Как же создать новую программу, а не ещё одну копию старой? «Легко». Вначале fork(), потом exec(). exec() не создаёт нового процесса, а заменяет данные текущего процеса …
Pic.19
Что в Linux? clone() заменяет fork() (и vfork() тоже). У clone() есть дополнительные опции. Но всё-р
Что в Linux? clone() заменяет fork() (и vfork() тоже). У clone() есть дополнительные опции. Но всё-равно нужно чётко понимать, как работает fork() В Linux exec() не является системным вызовом. …
Pic.20
Создание процесса (NT) Процессы создаются через системный вызов NtCreateProcess().
Создание процесса (NT) Процессы создаются через системный вызов NtCreateProcess().
Pic.21
Переключение между процессами При необходимости переключиться на другой процесс, ОС выполняет «перек
Переключение между процессами При необходимости переключиться на другой процесс, ОС выполняет «переключение контекста» Состояние старого процесса сохраняется в его PCB Состояние нового процесса …
Pic.22
Переключение контекста События, вызывающие переключение контекста: Прерывания Исключения Системные в
Переключение контекста События, вызывающие переключение контекста: Прерывания Исключения Системные вызовы
Pic.23
Потоки (нити) Процесс состоит как минимум из: Адресного пространства Набор инструкций (код) программ
Потоки (нити) Процесс состоит как минимум из: Адресного пространства Набор инструкций (код) программы Данные для программы Состояния потока выполнения Счётчик команд (регистр IP) Указатель стэка SP …
Pic.24
Потоки, зачем они нужны Потоки – для параллелизма и одновременности. Параллелизм – это физически одн
Потоки, зачем они нужны Потоки – для параллелизма и одновременности. Параллелизм – это физически одновременное выполнение для достижения наибольшей производительности. Одновременность – логическое …
Pic.25
Параллелизм Возьмём пример про веб-сервер со слайда 12, который должен обслуживать несколько запросо
Параллелизм Возьмём пример про веб-сервер со слайда 12, который должен обслуживать несколько запросов параллельно Ожидая данных по запросу клиента из базы данных, сервер мог бы загрузить данные с …
Pic.26
Параллелизм 2 В каждом из этих примеров параллелизма есть общее: Один код Доступ к одним данным Один
Параллелизм 2 В каждом из этих примеров параллелизма есть общее: Один код Доступ к одним данным Один уровень доступа Одно множество ресурсов Но есть разное: Стэк и указатель на стэк SP Счётчик …
Pic.27
Параллелизм 3 Как этого достичь? Используя знания о процессах, можно fork-нуть несколько процессов З
Параллелизм 3 Как этого достичь? Используя знания о процессах, можно fork-нуть несколько процессов Заставить каждый из них отображать своё виртуальное адресное пространство на одну и ту же физическую …
Pic.28
Решение – потоки! Основная мысль отделить понятие процесса (адресного пространства, ресурсов ОС) от
Решение – потоки! Основная мысль отделить понятие процесса (адресного пространства, ресурсов ОС) от Минимальной нити, потока управления (т. е. состояния выполнения – стэка, регистров ЦП) Иногда такое …
Pic.29
Потоки и процессы Большинство современных ОС поддерживает два объекта: Процесс, который определяет а
Потоки и процессы Большинство современных ОС поддерживает два объекта: Процесс, который определяет адресное пространство и общие атрибуты процесса Поток, который определяет последовательный поток …
Pic.30
Потоки и процессы 2 Многопоточность полезна для: Обработки одновременных событий Построения параллел
Потоки и процессы 2 Многопоточность полезна для: Обработки одновременных событий Построения параллельных программ Поддержка многопоточности – разделение понятия процесса от минимального потока …
Pic.31
Потоки и процессы 3 Раньше: «процесс» = адресное пространство + ресурсы ОС + подразумевался единстве
Потоки и процессы 3 Раньше: «процесс» = адресное пространство + ресурсы ОС + подразумевался единственный поток Теперь: «процесс» = адресное пространство + ресурсы ОС + все потоки процесса
Pic.32
Потоки режима ядра и пользователя На уровне ядра Есть функция ядра для создания нового потока Выделя
Потоки режима ядра и пользователя На уровне ядра Есть функция ядра для создания нового потока Выделяет стэк выполнения внутри адресного пространства процесса Создаёт и инициализирует Thread Control …
Pic.33
Потоки режима пользователя Библиотека pthreads Каждый поток представляется регистром PC, остальными
Потоки режима пользователя Библиотека pthreads Каждый поток представляется регистром PC, остальными регистрами ЦП, стэком и небольшим блоком TCB Создание потока, переключение между потоками и …
Pic.34
Сравнение производительности По данным Gribble, Lazowska, Levy, Zahorjan из Университета им. Вашингт
Сравнение производительности По данным Gribble, Lazowska, Levy, Zahorjan из Университета им. Вашингтона: Создание потока режима ядра pthread_create()/pthread_join() в 2. 5 раза быстрее создания …
Pic.35
Обобщение Множество потоков в одном адресном пространстве – это хорошо. Потоки режима ядра намного э
Обобщение Множество потоков в одном адресном пространстве – это хорошо. Потоки режима ядра намного эффективнее процессов, но есть потери на системные вызовы Потоки режима пользователя имеют …


Скачать презентацию

Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!