Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемЛюдмила Стебницкая
1 Управление процессами Состояния процессов. Управление состояниями процессов
2 Классическая схема состояний процесса 1. Запуск 2. Готовность 3. Выполнение 4. Ожидание 5. Завершение
3 1. Запуск ОС открывает файл-образ процесса; Создаются системные таблицы и объекты, связанные с процессом; Выделяется адресное пространство для размещения процесса; Выделяются ресурсы, необходимые процессу для начала работы
4 2. Готовность ОС выполнила все необходимые действия для начала выполнения процесса; Процесс размещен в физической оперативной памяти (по крайней мере те участки памяти процесса, без которых нельзя начать его выполнение); Процесс захватил все ресурсы необходимые для его выполнения
5 3. Выполнение Процессу выделен квант времени процессора (только в многозадачных системах с квантованием времени процессора) Процесс находится «в процессоре» - инструкции процесса выполняются, регистры процессора отражают регистровый контекст процесса
6 4. Ожидание Процесс требует выделения ему новых ресурсов, которые в данный момент заняты; Процесс ожидает подкачки участков памяти своего адресного пространства в физическую оперативную память; Процесс ожидает завершения выполнения системной функции, которую он вызвал (например, для выполнения операции ввода/вывода)
7 5. Завершение Процесс освобождает захваченные ресурсы Процесс выгружается из памяти Уничтожаются системные таблицы и объекты, связанные с данным процессом
8 Переход «Запуск – Готовность» Для процесса уже созданы все системные таблицы и объекты; Процесс находится в физической оперативной памяти; Процессу выделены все необходимые ресурсы
9 Переход «Готовность – Выполнение» Процессу выделен квант времени процессора В соответствии с реализуемой дисциплиной планирования процессов настала очередь данного процесса начать/продолжить свое выполнение
10 Переход «Выполнение – Готовность» Истек квант времени процессора, отпущенный данному процессу на выполнение В соответствии с реализуемой дисциплиной планирования процессов настала очередь другого процесса начать/продолжить свое выполнение
11 Переход «Выполнение – Ожидание» Процессу нужны новые ресурсы Процессу необходимо подкачать новые участки своего адресного пространства (например, страницы) Процесс обратился к системной функции и должен дождаться ее завершения Произошло прерывание
12 Переход «Ожидание – Готовность» Процесс получил необходимые для продолжения работы ресурсы Недостающие участки адресного пространства были подкачены в физическую оперативную память Системная функция, вызванная процессом, завершила свою работу Закончилась обработка прерывания
13 Переход «Выполнение – Завершение» Процесс закончил свою работу Произошла ошибка в работе процесса (исключение), в результате которого дальнейшее выполнение процесса невозможно (деление на ноль, обращение по несуществующему адресу памяти, нарушение границ адресного пространства, попытка выполнения неизвестной процессору команды и т.д.)
14 Уровни управления состояниями процессов Аппаратный уровень Реализуются примитивные операции по управлению процессами: - прерывания; - переключение контекстов задач. Диспетчеризация процессов (уровень ядра) Реализуются примитивы перевода процессов из одного состояния в другое – запуск, приостановка, возобновление, остановка (завершение) Планирование процессов (уровень менеджера процессов) Реализуется строгий и сложный алгоритм управления состояниями процессов с учетом различных факторов, условий функционирования процессов, особенностей аппаратной части и операционной системы
15 Механизм прерываний Прерывание – ситуация в системе, требующая приостановки процесса и обработки.
16 Классификация прерываний Аппаратные прерывания – прерывания, вызванные функционированием аппаратуры. Могут быть сгенерированы аппаратно и программно. Немаскируемые (поступают по линии NMI) Маскируемые (поступают по линиям IRQ) Программные прерывания (исключения) – вызваны работой программ (процессов) и не связаны с устройствами в вычислительной системе Нарушения – могут быть отлажены (debug mode) Ловушки – средство вызова системных функций в MS DOS и программной генерации аппаратных прерываний Ошибки – не могут быть отлажены. Всего приводят к завершению работы процесса
17 Аппаратная часть обработки прерываний По линии IRQ поступает запрос на прерывание от внешнего устройства Контроллер прерывания (IC, PIC, APIC) пересылает данный запрос процессору Если процессор готов обработать прерывание и ему разрешено это сделать (прерывание не замаскировано), то процессор опрашивает IC о необходимости обработки этого прерывания IC опрашивает устройство и, если прерывание действительно нужно обработать, преобразует IRQ в номер прерывания – INT Номер передается процессору и он начинает обработку прерывания в соответствии с определенной моделью IC CPU Внешние устройства Линии IRQ CPU и IC обмениваются IRQ INT
18 Обработка прерываний в реальном режиме процессора Intel 256 векторов прерываний 00000h 00004h 00008h 0000Ch 000FCh селектор int FFh int 00h int 01h int 02h int 03h сегмент
19 Обработка прерываний в реальном режиме процессора Intel int N N*4 = X … Таблица векторов прерываний Вектор N offsetsegment Системная область памяти Обработчик iret … push cs push ip pop ip pop cs
20 Обработка прерываний в защищенном режиме процессора Intel База IDTЛимит IDT IDTR Системный дескриптор сегмента … -Шлюз прерывания (6 или E) -Шлюз ловушки (7 или F) -Шлюз задачи (5) 8 байт база доступ…база лимит база Байт доступа обеспечивает защиту таблицы IDT Хранит информацию о местоположении обработчика IDT
21 Обработка прерываний в защищенном режиме процессора Intel int N N*8 IDTR IDT дескриптор + Обработчик iretd Сохранение регистрового контекста Передача управления обработчику прерываний Восстановление регистрового контекста
22 Аппаратная поддержка многозадачности и переключение задач в защищенном режиме процессора Intel GDTR LDTR TR CS LDT Оперативная память TSS Сегмент кода Доп. сегмент основной сегменты кода, данных, стека Дескриптор TSS активного процесса Дескриптор сегмента кода активного процесса Дескриптор доп. сегмента Селектор сегмента кода Селектор TSS Копия дескриптора TSS
23 Переключение задач Для команд CALL и JMP проверяет привилегии (CPL текущей задачи и RPL селектора новой задачи не могут быть больше, чем DPL шлюза или TSS, на который передается управление). Проверяется дескриптор TSS (его бит присутствия и лимит). Проверяется, что новый TSS, старый TSS и все дескрипторы сегментов находятся в страницах, отмеченных как присутствующие. Сохраняется состояние задачи. Загружается регистр TR. Если на следующих шагах происходит исключение, его обработчику придется доделывать переключение задач, вместо того чтобы повторять ошибочную команду. Тип новой задачи в дескрипторе изменяется на занятый и устанавливается флаг TS в CR0. Загружается состояние задачи из нового TSS: LDTR, CR3, EFLAGS, EIP, регистры общего назначения и сегментные регистры.
24 Создание процесса в Windows и функция CreateProcess Открытие файла-образа процесса (имя.exe или имя.com) Создание объекта процесс исполнительной системы (PCB) Создание первичного потока Уведомление о создании процесса и первичного потока Начать выполнение первичного потока Инициализировать адресное пространство процесса в контексте нового процесса и потока, подгрузить динамические библиотеки (*.dll) Начать выполнение программы
25 Создание потока в Windows и функция CreateThread Создание стека пользовательского режима в адресном пространстве процесса Инициализация аппаратного контекста потока Создать объект потока исполнительной системы (в приостановленном состоянии) Уведомление Windows о создании нового потока Вернуть порождающему процессу (потоку) идентификатор и дескриптор (HANDLE) созданного потока Начать выполнение потока
26 Особенности запуска приложений ОС, совместимых с Windows
27 Создание процесса в UNIX/Linux и функция fork() Отводит место в таблице процессов под новый процесс. Присваивает порождаемому процессу уникальный код идентификации. Делает логическую копию контекста родительского процесса. Поскольку те или иные составляющие процесса, такие как область команд, могут разделяться другими процессами, ядро может иногда вместо копирования области в новый физический участок памяти просто увеличить значение счетчика ссылок на область. Увеличивает значения счетчика числа файлов, связанных с процессом, как в таблице файлов, так и в таблице индексов. Возвращает родительскому процессу код идентификации порожденного процесса, а порожденному процессу - нулевое значение.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.