Мегаобучалка Главная | О нас | Обратная связь


Реализация понятия последовательного процесса в ОС (дескрипторы задач)



2015-11-20 1089 Обсуждений (0)
Реализация понятия последовательного процесса в ОС (дескрипторы задач) 0.00 из 5.00 0 оценок




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

1. идентификатор процесса PID

2. тип (или класс) процесса, который определяет для супервизора некоторые правила для предоставления ресурса

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

4. переменную состояния процесса

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

6. информация о ресурсах, которыми процесс владеет

7. место (или его адрес) для организации общения с другими процессами

8. параметры времени запуска (момент и периодичность)

9. в случае отсутствия системы управления файлами - адрес задачи на диске в ее исходном состоянии и адрес на диске, куда она выгружается из оперативной памяти, если ее вытесняет другая задача

 

Дескрипторы постоянно находятся в оперативной памяти в одном из списков (очередей).

Супервизор перемещает дескрипторы из одного списка в другой в зависимости от состояния процесса.

Для состояния ожидания обычно организуется столько списков, сколько имеется ресурсов, которые могут вызвать состояние ожидания.

 

Процессы и потоки

Понятие процесс было введено для реализации идеи мультипрограммирования.

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

Но сами процессы можно разбить на ряд задач, которые могут выполняться параллельно. Такие подпроцессы называются потоками thread нитями.

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

Многопоточность особенно эффективна для выполнения распределенных приложений.

При манипулировании потоками меняется только контекст задачи.

Каждый поток выполняется строго последовательно и имеет свой программный счетчик и стек. Потоки разделяют одни и те же глобальные перемены.

Между потоками нет полной защиты.

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

Дескриптор строится как для потоков, так и для процессов. Отличие заключается в том, что дескриптор потока хранит только контекст задач, которая приостановлена, а дескриптор процесса содержит дополнительные поля, описывающие ресурсы, выделенные этому процессу. Эта информация хранится в специальном регистре TSR.

Прерывание

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

Т.о. прерывание – это принудительная передача управления от выполняемой программы к системе (а через нее к программе обработки прерывания), происходящая при возникновении определенного события.

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

Механизм прерывания реализуется аппаратно-программными средствами. В разных архитектурах прерывание непременно влечет за собой изменение порядка выполнения команд процессором.

Механизм обработки прерываний независимо от архитектуры вычислительной системы включает следующие элементы:

1. установление факта прерывания (прием сигнала и идентификация прерывания)

2. запоминание состояния прерванного процесса (счетчик команд, содержание регистров и т.д.).

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

4. Сохранение информации о прерванной программе, которую не удалось спасти на втором шаге с помощью действий аппаратуры.

5. Обработка прерывания

6. Восстановление информации относящейся к прерванному процессу (шаг, противоположный 4-му)

7. Возврат в прерванную программу.

Шаги 1-3 реализуется аппаратно, а шаги 4-7- программно.

 

Главные функции:

1. Распознавание или классификация прерывания.

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

3. Корректное возвращение к прерванной программе

 

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

 

Прерывания бывают:

-внешние (асинхронные)

-внутренние (синхронные)

 

Внешнее прерывание

1. От таймера

2. От внешнего устройства ввода/вывода

3. При нарушении питания

4. С пульта оператора

5. От другого процесса или другой вычислительной системы

Внутреннее прерывание связано с работой процессора, например

1. при нарушении адресации,

2. При наличии в поле кода операции, не задействованной двоичной комбинации

3. при делении на ноль,

4. При переполнении или исчезновении порядка

5. При обнаружении ошибок четности и ошибок в работе различных устройств

 

Иногда выделяют прерывание, обращенное к супервизору ОС.

Существует собственно программное прерывание, которое происходит по соответствующей команде в программе.

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

 

В порядке убывания приоритета:

1. Средство контроля процессора

2. Системный таймер

3. Прерывание от внешнего устройства (магнитные диски, сетевое оборудование, терминалы)

4. программные прерывания.

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

Наличие сигнала прерывания не обязательно должно прерывать исполнение программ. Для этого созданы средства защиты прерывания:

1. Отключение системы прерывания полностью

2. Маскировка\запрет отдельных сигналов прерывания

 

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

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

1. с относительными приоритетами, т.н. обслуживание не прерывается, даже при наличии запроса с более высоким приоритетом. После обслуживания запроса, обслуживается запрос с наивысшим приоритетом. Маска накладывается на все основные сигналы прерывание или отключается система прерывания.

2. с абсолютными приоритетами, т.е. всегда обслуживается прерывание с высшим приоритетом. На время обработки прерывания маскируются прерывания более низкого приоритета.

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

В современных ОС причины прерывания определяет ОС (супервизор прерываний) и выполняет действия, необходимые при данном прерывании и в данной ситуации.

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



2015-11-20 1089 Обсуждений (0)
Реализация понятия последовательного процесса в ОС (дескрипторы задач) 0.00 из 5.00 0 оценок









Обсуждение в статье: Реализация понятия последовательного процесса в ОС (дескрипторы задач)

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1089)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.012 сек.)