Управление процессами в интерактивных ОС

 

Важнейшей функцией операционной системы является организация рационального использования всех аппаратных и программных ресурсов компьютера. К основным ресурсам относятся процессор, память, внешние устройства, программы и сами данные, которые участвуют в вычислениях.

Как известно, основное понятие ОС – понятие процесса.Процесс, создается ОС, когда пользователь или сама ОС запускает программу на выполнение. Часть процессов порождаются пользовательскими приложениями и называются пользовательскими процессами.Вторая часть процессов, запускаются самой ОС и являются системными. Пользовательские и системные процессы имеют разный приоритет, от которого зависит очередность и интервал времени обслуживания процесса.

Для каждого вновь создаваемого процесса ОС создает информационные структуры (специальные таблицы), которые содержат данные о потребностях процесса в ресурсах, о фактически выделенных ему ресурсах, об адресах ОП в которых размещен процесс и т.д.

Функциями ОС по управлению процессами являются:

- Распределение оперативной памяти;

- Выделение процессорного времени конкретному процессу;

- Распределение ресурсов между процессами;

- разрешение конфликтов при распределении ресурсов

При планировании процессов,то есть определения порядка выполнения процессов, может применятся невытесняющий и вытесняющий алгоритм. В интерактивных ОС применяются вытесняющие алгоритмы.

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

 

Процесс
 
Поток 1 Поток 2 ….. …… Поток N
Команды потока 1 Команды потока 2 …. …… Команды потока N

 

При создании процесса ОС создает как минимум один поток выполнения. Все потоки одного процесса используют общие файлы, таймеры, устройства, одну и ту же область оперативной памяти (одно и то же адресное пространство). Между потоками одного процесса нет полной защиты, так как это невозможно, да и не нужно. Для организации взаимодействия между потоками одного процесса не требуется обращения к ОС, достаточно использовать общую область памяти (стек). Потоки разных процессов изолированы друг от друга.

Понятие потока возникло, как средство распараллеливания вычислений, то есть такой программы, которая имеет независимые ветви выполнения. В настоящее время распараллеливание вычислений достигается за счет использования подпрограмм, модулей, динамических библиотек.

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

 

На протяжении существования процесса выполнение его потоков может быть многократно прервано и продолжено. Переход от выполнения одного потока к другому осуществляется в результате планирования и диспетчеризации.

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

1. Определение момента времени для смены активного текущего потока;

2. Выбор для выполнения потока из очереди готовых для выполнения потоков;

 

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

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

Поток может находится в трех состояниях:

Выполнения– активное состояние, когда поток выполняется процессором;

Ожидания– пассивное состояние, процесс ждет окончание операции ввода – вывода или освобождения ресурса;

Готовность – пассивное состояние, процесс стоит в очереди для получения кванта процессорного времени.

Состояние потока может быть отражено в виде графа состояний потока

 

        Поток завершен или произошла ошибка
    выполнение    
Поток выбран на выполнение     Поток ожидает завершение операции ввода – вывода или освобождения ресурса
  Поток прерван  
         
готовность     ожидание  
         
  Ввод – вывод завершен (событие произошло)    
Только что созданный поток        

 

Диспетчеризация – заключается в реализации найденного решения в результате планирования. Диспетчеризация сводиться к следующему:

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

2. Загрузку нового потока по его предыдущему состоянию, для этого восстанавливается состояние регистров процессора

3. Запуск нового процесса на выполнение

При выполнении диспетчеризации управление передается – диспетчеру потоков.

Алгоритмы планирования потоков (процессов)

 

Для планирования смены потоков разработаны специальные алгоритмы планирования,

Вытесняющие алгоритмы– при использовании таких алгоритмов ОС сама принимает решение о принудительной смене потока не зависимо от его завершения. Применяются в универсальных ОС (Windows, Unix).

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

- поток завершился;

- произошла ошибка;

- поток перешел в состояние ожидания;

- исчерпан квант процессорного времени;

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

Кванты, которые выделяются потокам, могут быть одинаковые для всех или различные. Если кванты для всех процессов одинаковы, то следовательно все процессы равноправны, это приведет к тому, что системные процессы будут долго «стоять» в очереди. Кванты, которые выделяются одному потоку, могут быть фиксированными, а могут изменяться в разные периоды жизни потока.

Поток, который получил квант времени, может использовать его не полностью, например из-за необходимости выполнять ввод или вывод данных. В результате возникает ситуация, когда потоки с частым обращением к вводу-выводу, используют небольшую часть выделенного им процессорного времени. Можно создавать две очереди: первая – образована потоками, которые перешли в состояние готовности в результате завершения кванта времени, вторая – образована потоками, у которых завершилась операция ввода-вывода. Сначала будет просматриваться очередь 2, затем очередь 1.

 

Планирование с квантованием с предпочтением потоков, интенсивно обращающихся к вводу-выводу

        Поток завершен или произошла ошибка
    выполнение    
      Поток ожидает завершение операции ввода – вывода или освобождения ресурса
Поток прерван    
    Поток выбран на выполнение    
Очередь готовых потоков1     ожидание
         
Очередь готовых потоков2 Ввод – вывод завершен    
       
       

 

 

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

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

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








Дата добавления: 2015-08-11; просмотров: 1547;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.