Планирование в системах реального времени

Автор работы: Пользователь скрыл имя, 22 Октября 2014 в 14:49, курсовая работа

Краткое описание

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

Содержание

Планирование_________________________________________3
1.Введение в планирование______________________________3
2.Понятие «процесс» и «поток»___________________________4
3.Планирование процессов и потоков______________________6
4.Категории планирования_______________________________7
5.Категории алгоритмов планирования_____________________8
6.Задачи алгоритма планирования_________________________9
7.Планирование в пакетных системах______________________10
8.Планирование в интерактивных системах_________________11
9.Планирование в системах реального времени______________11
Описание программы___________________________________13
Список используемой литературы_________________________18

Вложенные файлы: 1 файл

Отчет.docx

— 103.15 Кб (Скачать файл)

Федеральное государственное образовательное 

учреждения высшего профессионального образования

Национальный исследовательский технологический университет

«МИСиС»

 

 

Институт ИТАСУ

 

Кафедра Автоматизации

 

 

 

КУРСОВАЯ РАБОТА

по дисциплине «Операционные системы и среды»

 

Вариант

3

 

Выполнил:

Гиря А.М.

Проверил:

Ухаров А.С.

 

 

 

 

 

Москва 2013 г.

 

Содержание

Планирование_________________________________________3

1.Введение в планирование______________________________3

2.Понятие «процесс» и  «поток»___________________________4

3.Планирование процессов  и потоков______________________6

4.Категории планирования_______________________________7

5.Категории алгоритмов  планирования_____________________8

6.Задачи алгоритма планирования_________________________9

7.Планирование в пакетных  системах______________________10

8.Планирование в интерактивных  системах_________________11

9.Планирование в системах  реального времени______________11

Описание программы___________________________________13

Список используемой литературы_________________________18

 

 

 

 

 

 

 

Планирование

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

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

1.Введение в  планирование

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

С появлением персональных компьютеров ситуация изменилась в двух направлениях. Во-первых, основная часть времени отводилась лишь одному активному процессу.

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

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

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

2.Понятия «процесс» и «поток»

Чтобы поддерживать мультипрограммирование, ОС должна определить и оформить для себя те внутренние единицы работы, между которыми будет разделяться процессор и другие ресурсы компьютера. В настоящее время в большинстве операционных систем определены два типа единиц работы. Более крупная единица работы, обычно носящая название процесса, или задачи, требует для своего выполнения нескольких более мелких работ, для обозначения которых используют термины «поток», или «нить».

Очевидно, что любая работа вычислительной системы заключается в выполнении некоторой программы. Поэтому и с процессом, и с потоком связывается определенный программный код, который для этих целей оформляется в виде исполняемого модуля. Чтобы этот программный код мог быть выполнен, его необходимо загрузить в оперативную память, возможно, выделить некоторое место на диске для хранения данных, предоставить доступ к устройствам ввода-вывода, например к последовательному порту для получения данных по подключенному к этому порту модему; и т. д. В ходе выполнения программе может также понадобиться доступ к информационным ресурсам, например файлам, портам TCP/UPD, семафорам. И, конечно же, невозможно выполнение программы без предоставления ей процессорного времени, то есть времени, в течение которого процессор выполняет коды данной программы. В операционных системах, где существуют и процессы, и потоки, процесс рассматривается операционной системой как заявка на потребление всех видов ресурсов, кроме одного — процессорного времени. Этот последний важнейший ресурс распределяется операционной системой между другими единицами работы — потоками, которые и получили свое название благодаря тому, что они представляют собой последовательности (потоки выполнения) команд. В простейшем случае процесс состоит из одного потока, и именно таким образом трактовалось понятие «процесс» до середины 80-х годов (например, в ранних версиях UNIX) и в таком же виде оно сохранилось в некоторых современных ОС. В таких системах понятие «поток» полностью поглощается понятием «процесс», то есть остается только одна единица работы и потребления ресурсов — процесс. Мультипрограммирование осуществляется в таких ОС на уровне процессов. Для того чтобы процессы не могли вмешаться в распределение ресурсов, а также не могли повредить коды и данные друг друга, важнейшей задачей ОС является изоляция одного процесса от другого. Для этого операционная система обеспечивает каждый процесс отдельным виртуальным адресным пространством, так что ни один процесс не может получить прямого доступа к командам и данным другого процесса.

3.Планирование  процессов и потоков

Одной из основных подсистем мультипрограммной ОС, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами и потоками, которая занимается их созданием и уничтожением, поддерживает взаимодействие между ними, а также распределяет процессорное время между несколькими одновременно существующими в системе процессами и потоками. Подсистема управления процессами и потоками ответственна за обеспечение процессов необходимыми ресурсами. ОС поддерживает в памяти специальные информационные структуры, в которые записывает, какие ресурсы выделены каждому процессу. Она может назначить процессу ресурсы в единоличное пользование или в совместное пользование с другими процессами. Некоторые из ресурсов выделяются процессу при его создании, а некоторые — динамически по запросам во время выполнения. Ресурсы могут быть приписаны процессу на все время его жизни или только на определенный период. При выполнении этих функций подсистема управления процессами взаимодействует с другими подсистемами ОС, ответственными за управление ресурсами, такими как подсистема управления памятью, подсистема ввода-вывода, файловая система. Когда в системе одновременно выполняется несколько независимых задач, то возникают дополнительные проблемы. Хотя потоки возникают и выполняются асинхронно, у них может возникнуть необходимость во взаимодействии, например при обмене данными. Согласование скоростей потоков также очень важно для предотвращения эффекта «гонок» (когда несколько потоков пытаются изменить один и тот же файл), взаимных блокировок или других коллизий, которые возникают при совместном использовании ресурсов. Синхронизация потоков является одной из важных функций подсистемы управления процессами и потоками. Каждый раз, когда процесс завершается, ОС предпринимает шаги, чтобы «зачистить следы» его пребывания в системе. Подсистема управления процессами закрывает все файлы, с которыми работал процесс, освобождает области оперативной памяти, отведенные под коды, данные и системные информационные структуры процесса. Выполняется коррекция всевозможных очередей ОС и списков ресурсов, в которых имелись ссылки на завершаемый процесс.

4.Категории планирования

Если аппаратный таймер обеспечивает периодические прерывания с частотой 50 или 60 Гц или с какой-нибудь другой частотой, планировщик должен принимать решения при каждом прерывании по таймеру или при каждом k-том прерывании. По реакции на прерывания по таймеру алгоритмы планирования можно разделить на две категории. Неприоритетный алгоритм планирования выбирает запускаемый процесс, а затем просто дает ему возможность выполняться до тех пор, пока он не заблокируется, или до тех пор, пока он добровольно не освободит центральный процессор. В результате во время прерываний по таймеру решения приниматься не будут. После завершения обработки прерывания по таймеру работу возобновит ранее запущенный процессор, если только какой-нибудь процесс более высокого уровня не ожидал только что истекшей задержки во времени.

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

5.Категории алгоритмов планирования

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

  1. пакетную;
  2. интерактивную;
  3. реального времени;

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

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

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

6.Задачи алгоритма  планирования

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

- все системы (равнодоступность, принуждение к определенной политике, баланс);

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

- интерактивные системы (время отклика, пропорциональность);

- системы реального времени (соблюдение предельных сроков, предсказуемость).

 

 

 

7.Планирование  в пакетных системах

1.Первым пришел – первым  обслужен

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

2.Сначала самое короткое  задание

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

3.Приоритет наименьшему  времени выполнения

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

8.Планирование  в интерактивных системах

1.Циклическое планирование

Одним из самых старых, простых и наиболее используемых считается алгоритм циклического планирования. Каждому процессу назначается определенный интервал времени, называемый его квантом, в течение которого ему предоставляется возможность выполнения. Если процесс к завершению кванта времени все еще выполняется, то ресурс центрального процессора у него отбирается и передается другому процессу. Зачастую разумным считается квант времени в 20-50 мс.

Информация о работе Планирование в системах реального времени