Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Для реализации модели процессов операционная система содержит таблицу (массив структур), называемую таблицей процессов с одним элементом для каждого процесса (блоками управления процессами). Элемент таблицы содержит информацию о состоянии процесса, счетчике команд, указателе стека, распределении памяти, состоянии открытых файлов, использовании и распределении ресурсов, а также всю остальную информацию, которую необходимо сохранять при переключении в состояние готовности или блокировки для последующего запуска.
С каждым классом устройств ввода-вывода связана область памяти, называемая вектором прерываний. Вектор прерываний содержит адрес процедуры обработки прерываний.
Все прерывания начинаются с сохранения регистров, часто в блоке управления текущим процессом в таблице процессов. Затем информация, помещенная в стек прерыванием, удаляется, и указатель стека переставляется на временный стек, используемый программой обработки процесса.
По завершении своей работы эта программа вызывает планировщик для выбора следующего процесса.
Потоки
Таненбаум:
В обычных операционных процессах каждому процессу соответствует адресное пространство и одиночный управляющий поток. Фактически это и определяет процесс. Тем не менее часто встречаются ситуации, в которых предпочтительно иметь несколько квазипараллельных управляющих потоков в одном адресном пространстве, как если бы они были различными процессами (однако разделяющими одно адресное пространство).
Гордеев:
Понятие процесса было введено для реализации идей мультипрограммирования. Термин задача тоже, к сожалению, в большинстве случаев применялся для того же. В свое время различали термины мультизадачность и мультипрограммирование, но потом они стали заменять друг друга, и это вносило немалую путаницу. Таким образом, для реализации мультизадачности в ее исходном толковании необходимо было ввести соответствующую сущность. Такой сущностью стали легковесные (thin) процессы, или, как их теперь преимущественно называют, потоки выполнения, нити, или треды (threads).
Каждый поток выполняется строго последовательно и имеет свой собственный программный счетчик и стек. Потоки, как и процессы, могут порождать потоки-потомки, поскольку любой процесс состоит по крайней мере из одного потока. Подобно традиционным процессам (то есть процессам, состоящим из одного потока), каждый поток может находиться в одном из активных состояний. Пока один поток заблокирован (или просто находится в очереди готовых к исполнению задач), другой поток того же процесса может выполняться. Потоки разделяют процессорное время так же, как это делают обычные процессы, в соответствии с различными вариантами диспетчеризации.
Итак, сущность поток выполнения была введена для того, чтобы именно с помощью этих единиц распределять процессорное время между возможными работами. Каждый процесс всегда состоит, по крайней мере, из одного потока выполнения, и только если имеется внутренний параллелизм, программист может расщепить один поток на несколько параллельных. Потребность в потоках возникла еще в однопроцессорных вычислительных системах, посколькуони позволяли организовать вычисления более эффективно. Для использования достоинств многопроцессорных систем с общей памятью потоки уже просто необходимы, так как позволяют не только реально ускорить выполнение тех задач, которые допускают их естественное распараллеливание, но и загрузить процессорные элементы работой, с тем чтобы они не простаивали.
Дата публикования: 2015-01-26; Прочитано: 2472 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!