Одно из самых сложных и важных понятий ОС. Термин процесс был введен Юниксом.
в случае использования подпрограммы характерным является то, что когда подпрограмма получает управление, он фактически может захватить все вычислительные ресурсы, которые принадлежат основной программе. И основная программа ждет, когда подпрограмма не закончит.
Процесс - действующая или бездействующая программа, претендующая на вычислительные ресурсы.
Понятие вычислительного процесса было введено с целью организации мультипрограммирования (возможность параллельного исполнения нескольких программ).
Состояние "Выполнение" - получены все необходимые ресурсы.
Состояние "Готовности" – процесс может получить все необходимые ресурсы.
Состояние "Ожидание" – процесс не может получить ресурсы.
"Готовность" – промежуточное состояние, когда известно, что система гарантированно предоставит ресурсы.
В состоянии готовности может перейти в следующих случаях:
- по вызову из другого процесса;
- при выборе данного процесса из очереди процессов находящихся в ожидании.
- При наступлении некоторого заданного времени.
- Прерывании от какого-то внешнего устройства.
Для реализации процесса необходимо чтобы операционная система сохранила полную информацию о ней. Полная информация о процессе называетсядескриптором. Дескриптор хранится в ОП и включает в себя:
1. PID – индетификатор процесса.
2. Вид процесса.
3. Состояние процесса.
4. Адрес памяти, куда помещается образ процесса, если он по каким-то причинам был не закончен (информация о регистрах, о местоположении программы памяти, содержимое и промежуточное вычисление).
5. Адрес памяти куда помещаются результаты взаимодействия процессов.
6. Требуемые вычислительные ресурсы для данного процесса.
7. Причины, по которым процесс был прерван.
8. Квант времени, который выделяется данному процессу.
9. приоритет процесса.
Разные операционные системы содержат разное количество дескрипторов, при этом различают количества дескрипторов, которые могут находиться в памяти. Другой вид ОС сам автоматически определяет кол-во дескрипторов.
Лекция4.
Поток - следующий шаг для осуществления мультипрограммирования.
Поток – механизм расщепления процесса на отдельные параллельные ветви.
Потоки наследуют те ресурсы, которые выделены процессу и пользуются только ими.
Потоки «соревнуются» за процессорное время, потоки являются программной реализацией процесса.
Прерывания:
Прерывания – механизм позволяющий координировать параллельное функционирование различных устройств и реагировать на особые ситуации, возникающие при работе процессора.
Прерывания можно определить как принудительную передачу управления от выполняемой программы к ОС, а от нее к программе обработки прерываний.
Прерывания – механизм аппаратно-программный.
Любой механизм прерываний выполняет следующие действия:
1. установления факта прерывания. При этом происходит идентификация прерывания.
2. запоминание состояния прерванного процесса.
3. сохранение информации о прерванной программе, которые не удалось сохранить на шаге 2, т.к. иногда исполняемая программа содержит большое количество информации.
4. передача управления программе обработки прерываний.
5. обработка прерываний (т.е. исполнение программы обработки прерываний).
6. восстановление информации, относящейся к прерванному процессу и передача управления прерванному процессу.
Действия 1,2,4 исполняются аппаратно, а остальные программно. 6 действие выполняется не всегда, все зависит от вида прерываний.
Прерывания делятся на 3 класса: внешние, внутренние, программные.
1. Внешние. Они вызываются асинхронными событиями происходящими вне
прерываемого процесса (прерывания от таймера, от внешних устройств ввода-вывода, при нарушении питания от другого процесса).
2. Внутренние. Вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями (прерывания адресации, при наличие в коде команды, не задействованной комбинации, при делении на ноль, при переполнении разрядной сетки).
3. Программные. Происходят по особой команде. Используются для того чтобы программы могли обратиться к системному модулю, с целью обращения к системе является переход в привилегированный режим – режим при котором становится возможным использование всех команд системы.