русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Реализация понятия последовательного процесса в операционных системах


Дата добавления: 2014-11-28; просмотров: 1764; Нарушение авторских прав


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

- идентификатор процесса (Process Identifier, PID);

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

- приоритет процесса, в соответствии с которым супервизор предоставляет ре­сурсы (в рамках одного класса процессов в первую очередь обслуживаются бо­лее приоритетные процессы);

- переменную состояния, которая определяет, в каком состоянии находится про­цесс (готов к работе, выполняется, ожидает устройства ввода-вывода и т. д.);

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

- информацию о ресурсах, которыми процесс владеет и/или имеет право пользо­ваться (указатели на открытые файлы, информация о незавершенных опера­циях ввода-вывода и др.);

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


Понятия вычислительного процесса и ресурса_______________________________ 35

- параметры времени запуска (момент времени, когда процесс должен активизи­роваться, и периодичность этой процедуры);

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



Описатели задач, как правило, постоянно располагаются в оперативной памяти с целью ускорить работу супервизора, который организует их в списки (очереди) и отображает изменение состояния процесса перемещением соответствующего опи­сателя из одного списка в другой. Для каждого состояния (за исключением состо­яния выполнения для однопроцессорной системы) операционная система ведет соответствующий список задач, находящихся в этом состоянии. Однако для со­стояния ожидания обычно имеется не один список, а столько, сколько различных видов ресурсов могут вызывать состояние ожидания. Например, состояний ожи­дания завершения операции ввода-вывода может быть столько, сколько устройств ввода-вывода имеется в системе.

В некоторых операционных системах количество описателей определяется жест­ко и заранее (на этапе генерации варианта операционной системы или в конфигу­рационном файле, который используется при загрузке ОС), в других по мере необходимости система может выделять участки памяти под новые описатели. На­пример, в уже мало кому известной системе OS/2, которая несколько лет тому назад многими специалистами считалась одной из лучших ОС для персональных компьютеров, максимально возможное количество описателей задач указывается в конфигурационном файле CONFIG.SYS. Например, строка THREADS=1024 в файле CONFIG.SYS означает, что всего в системе может параллельно существовать и вы­полняться до 1024 задач, включая вычислительные процессы и их потоки.

В ныне широко распространенных системах Windows NT/2000/XP количество описателей нигде в явном виде не задается. Это переменная величина, и она опре­деляется самой операционной системой. Однако посмотреть на текущее количе­ство таких описателей можно. Если, работая в Windows NT/2000/XP, нажать од­новременно комбинацию клавиш Ctrl+Shift+Esc, появится окно Диспетчера задач. На вкладке Быстродействие этой программы мы увидим поле с названием Всего де­скрипторов и соответствующее число. Тут же указывается количество дескрипто­ров для управления потоками (задачами) и число полноценных вычислительных процессов. Более подробно о процессах и потоках см. далее.

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

1 В недалеком прошлом достаточно часто и качестве вычислительных систем общего назначения при­обретались мини-ЭВМ и устанавливали на них ОС реального времени.


36_____________________________________________ Глава 1. Основные понятия

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

Для более эффективной обработки данных в системах реального времени целесо­образно иметь постоянные задачи, полностью или частично всегда существующие в системе независимо от того, поступило на них требование или нет. Каждая по­стоянная задача обладает некоторой собственной областью оперативной памяти (ОЗУ-резидентная задача, или просто резидентная задача) независимо от того, выполняется задача в данный момент или нет. Эта область, в частности, может использоваться для хранения данных, полученных задачей ранее. Данные могут храниться в ней и тогда, когда задача находится в состоянии ожидания или даже в состоянии бездействия.

Для аппаратной поддержки работы операционных систем с этими информацион­ными структурами (дескрипторами задач) в процессорах могут быть реализованы соответствующие механизмы. Так, например, в микропроцессорах Intel 80x86 (см. главу 4) имеется специальный регистр TR (Task Register), указывающий мес­тонахождение специальной информационной структуры — сегмента состояния задачи (Task State Segment, TSS), в котором при переключении с задачи на задачу автоматически сохраняется содержимое регистров процессора [1,8, 48].

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



<== предыдущая лекция | следующая лекция ==>
Диаграмма состояний процесса | Процессы и задачи


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.866 сек.