- •Лекция 3: Управление процессами (I)
- •Понятие о последовательном процессе.
- •Легкие процессы (threads - нити)
- •Замечания по терминологии
- •Контекст (состояние) нити
- •Классификация ос
- •Состояние нити
- •Диспетчеризация. Цикл планирования
- •Создание процесса и нити Создание нити в лабораторном практикуме (конструктор dosThread)
- •Создание процесса в unix
- •Создание процесса в Win32api
- •Создание нити
Лекция 3: Управление процессами (I)
Последовательный процесс, нить, адресное пространство
Состояние нити
Переключение контекста (диспетчеризация)
Создание процесса и нити.
Понятие о последовательном процессе.
Однопрограммный режим:поведение вычислительной системы однозначно определяется загруженной программой. Простая ОС (MS-DOS). Работа с устройствами производится последовательно, характерны задержки в ожидании завершения ввода-вывода с медленными устройствами.
Мультипрограммный режим:– несколько пользователей, несколько программ, разделяющих процессор и другие устройства.
Существенно, что разделение устройств обеспечивается операционной системой. Например, Windows 3.1 нельзя считать мультипрограммной ОС, так переключение между программами инициируется самими программами в цикле диспетчеризации оконных сообщений. Правильно считатьWindows 3.1операционной оболочкой, кроме тогоWindows 3.1не может быть установлена на пустую машину (нужнаDOS).
Преимущества мультипрограммного режима:
увеличение пропускной способности за счет лучшей загрузки устройств.
возможность совмещать длительные операции (печать) с другой полезной работой.
новые средства декомпозиции при разработке сложных систем, обрабатывающих различные асинхронные события.
Проблемы мультипрограммного режима:
Резко увеличивает сложность ОС, которая должна решать много новых проблем (разделение ресурсов между программами, защита себя, программ и данных пользователей и т.п.), при этом отдельный пользователь не должен видеть этих проблем (для него должна создаваться иллюзия монопольного владения ресурсами машины)
Как увязать множество событий происходящих в системе?
Ответ: Разбираться с каждым событием в отдельности.
Каким способом описать поведение управляющей программы ОС?
Ответ: Необходимы новые абстракции, поэтому и введено понятие «последовательный процесс», которое является центральным в ОС.
Определение: Процесс есть абстрактное понятие ОС используемое для обозначения всего того, что необходимо для выполнения программы (UNIX)
Компоненты процесса:
Последовательно исполняемое множество инструкций (программа). Другое название – поток или нить управления.
Адресное пространство - данные, характеризующие состояние процесса (значения регистров процессора, содержимое стека, сегменты данных, дескрипторы файлов и т.п.)
Другие определения последовательного процесса:
Процессом является то, что в IBM называется «задачей», а вUnivac – действием.
Процессом называется асинхронная работа.
Процесс – это «живая» душа процедуры.
Процесс – это «концентрация средств управления» для выполнения процедуры.
Процесс – это объект, которому выделяются процессоры.
Согласно ГОСТ 19781-83 процесс – это система действий, реализующая определенную функцию в вычислительной системе и оформленная так, что управляющая программа вычислительной системы может перераспределять ресурсы этой системы в целях обеспечения мультипрограммирования.
Программа в стадии выполнения. (может содержать несколько процессов!)
Программа ?= Процесс
Процесс > программа: программа – это лишь часть процесса. Запуск редактора с разными файлами – это разные процессы, а программа одна. Дейкстра: «Программа – это правила поведения»
Процесс < программа: одна программа способна в ходе решения задачи породить несколько параллельно выполняемых процессов.