Системы реального времени Лекция 4: процессы. Понятие процесса Процесс - фундаментальное понятие любой операционной системы С помощью процессов происходит.

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



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

Управление процессами. Определение процесса. Основные понятия Процесс совокупность машинных команд и данных, которая обрабатывается в рамках вычислительной.
Управление процессами. Определение процесса. Основные понятия Процесс совокупность машинных команд и данных, которая исполняется в рамках вычислительной.
Процессы и потоки. Процессы В общем представлении, процесс - это программа, выполняющаяся в оперативной памяти компьютера. Реально, все гораздо сложней.
Лекция 3. Исключения и прерывания в встроенных системах.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
Операционная система. Базовые понятия Операционная система – это комплекс программ, обеспечивающий контроль за существованием, распределением и использованием.
Операционная система MS Windows* Развитие ОС: пакетная обработка, интерактивные системы, ОС реального времени, системы с разделением времени. Истинная.
Системное программное обеспечение Кыргызско – Российский Славянский Университет Кафедра ИВТ, 3-й курс ИВТ, 5 семестр Лекция 9.
Учебный курс Основы операционных систем Лекция 3 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Лекция 2 Управление задачами Процессы и потоки. Процесс Выполнение пассивных инструкций компьютерной программы на процессоре ЭВМ. Стандарт ISO 9000:2000.
1 Назначение операционных систем Автор проекта: Евтина М. Г. Петрова М. В. Трубицын Д.А. Худяков А. Ю.
Системы реального времени Лекция 2: Стандарты и расширения. Алгоритмы реального времени.
Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Операционные системы Введение (часть 4) 4.Основы архитектуры операционных систем 4.1.Базовые понятия 4.2.Свойства ОС 4.3.Структура ОС 4.4.Логические функции.
Операционные системы Процессы и потоки Скрипов Сергей Александрович 2009.
Управление процессами Понятие процесса. Представление процесса в различных операционных системах Старший преподаватель каф. Процессов управления и информационной.
Встроенные Системы Часть 3. Прерывания Кафедра Информатики, мат-мех СПбГУ Copyright © 2004 Victor Vengerov
Классификация ОС. Операционные системы могут различаться особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами,
Операционная система. 1.Общее понятие операционных системОбщее понятие операционных систем 2.Классификация ОСКлассификация ОС 3.Обзор наиболее популярных.
Транксрипт:

Системы реального времени Лекция 4: процессы

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

Процессы – взгляд изнутри В каждый момент времени может выполняться только одна (или более, если процессоров в системе несколько) команда Поддержка «параллельного» выполнения осуществляется с помощью метода «квантования времени», когда система через определенные промежутки времени меняет текущий выполняемый процесс

Процессы – реализация Процесс – это прежде всего данные! Каждый процесс состоит из адресного пространства и набора структур данных, содержащихся в ядре системы

Процесс: адресное пространство Адресное пространство может быть отдельным для каждого процесса (HardHat, BlueCat, LynxOS, eCOS), а может быть общим для всех процессов (VxWorks, uClinux, RTEMS). Общее адресное пространство упрощает реализацию системы и многих сервисов… …но потенциально уменьшает ее устойчивость

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

Структуры данных процесса: важное примечание На самом деле выше описан «идеальный» случай В реальных системах те или иные структуры могут отсутствовать

Таблица распределения памяти процесса Содержит указатели на стек, кучу, статическую область и код процесса Эти указатели указывают в адресное пространство процесса или общее адресное пространство системы

Текущий статус процесса Running (работает) Stopped (остановлен) Waiting (ожидающий) Zombie (процесс-«зомби»: завершен, ждет завершения родительского процесса) Состояние zombie есть не во всех системах

Приоритет выполнения процесса Характеризует «важность» процесса для системы Математически представляется по-разному, в зависимости от системы Процессы с более высоким приоритетом БЛОКИРУЮТ процессы с более низким приоритетом (т. е. последние не получают управления, пока первые активны) Поэтому высокоприоритетные процессы должны иногда «засыпать»

Процессы: высокоприоритетные и низкоприоритетные Наиболее высокий приоритет обычно у системных процессов («демонов» - daemons), которые большую часть времени «спят», но должны моментально реагировать на адресованные им события Наиболее низкий – у «фоновых» процессов, типа системного журнала (syslogd) Пользовательские процессы занимают промежуточное положение

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

Владелец процесса Каждый процесс имеет UID - идентификационный номер пользователя, создавшего данный процесс В однопользовательских системах (VxWorks, RTEMS) этого параметра у процесса нет

Владелец процесса: многопользовательские системы Каждый процесс имеет UID - идентификационный номер пользователя, создавшего данный процесс Вносить изменения в процесс может только его создатель и привилегированный пользователь (root).

Идентификатор процесса Каждому новому процессу присваивается уникальный номер – PID Новый процесс в POSIX.1a системах создается путем клонирования одного из существующих процессов – функция fork() после чего текст (т.е. набор инструкций для процессора) нового процесса заменяется текстом программы, которую процесс должен выполнить – семейство функций exec()

Контекст процесса Контекст процесса - совокупность данных ОС о процессе (внешние данные процесса) Контекст определяет, где находятся связанные с процессом структуры (см. выше)

Переключение контекстов Система через определенные промежутки времени меняет текущий выполняемый процесс, т. е. начинает выполнять команды кода другого процесса При этом текущее состояние первого процесса сохраняется в его контексте, а он приостанавливается Т. о. контексты и переключение контекстов – основное средство поддержки многозадачности

Создание процессов в POSIX- системах #include pid_t fork(void); Создает полную копию вызывающего процесса, отличающуюся только PID Порожденному процессу возвращается значение 0 …Родительскому - PID порожденного

Что делать с дочерним процессом? Как правило, прежде всего закрывают все дескрипторы, относящиеся к родительскому процессу После этого часто вызывают команду семейства exec (см. ниже) Или делают что-то еще

Команды семейства exec #include extern char **environ; int execl(const char *path, const char *arg,...); int execlp(const char *file, const char *arg,...); int execle(const char *path, const char *arg,..., char *const envp[]); int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]); Замещают данные и код текущего процесса данными и кодом исполнимого файла Новый процесс начинает немедленно выполняться