Управление задачами и памятью в операционных системах

Автор работы: Пользователь скрыл имя, 27 Мая 2013 в 17:37, контрольная работа

Описание работы

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

Содержание работы

1 УПРАВЛЕНИЕ ЗАДАЧАМИ И ПАМЯТЬЮ В ОПЕРАЦИОННЫХ СИСТЕМАХ. ПЛАНИРОВАНИЕ И ДИСПЕТЧЕРИЗАЦИЯ ПРОЦЕССОВ И ЗАДАЧ. СТРАТЕГИИ ПЛАНИРОВАНИЯ ДИСЦИПЛИНЫ ДИСПЕТЧЕРИЗАЦИИ. ДИСПЕТЧЕРИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ДИНАМИЧЕСКИХ ПРИОРИТЕТОВ.
2 РЕАЛИЗАЦИЯ ФУНКЦИЙ API НА УРОВНЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ. РЕАЛИЗАЦИЯ ФУНКЦИЙ API С ПОМОЩЬЮ ВНЕШНИХ БИБЛИОТЕК. ПЛАТФОРМЕННО-НЕЗАВИСИМЫЙ ИНТЕРФЕЙС POSIX.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

Файлы: 1 файл

контрольная.docx

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

 

СОДЕРЖАНИЕ

 

1 УПРАВЛЕНИЕ ЗАДАЧАМИ И ПАМЯТЬЮ В ОПЕРАЦИОННЫХ СИСТЕМАХ.  ПЛАНИРОВАНИЕ И ДИСПЕТЧЕРИЗАЦИЯ ПРОЦЕССОВ И ЗАДАЧ. СТРАТЕГИИ ПЛАНИРОВАНИЯ ДИСЦИПЛИНЫ ДИСПЕТЧЕРИЗАЦИИ. ДИСПЕТЧЕРИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ДИНАМИЧЕСКИХ ПРИОРИТЕТОВ.

2 РЕАЛИЗАЦИЯ ФУНКЦИЙ API НА УРОВНЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ.  РЕАЛИЗАЦИЯ ФУНКЦИЙ API С ПОМОЩЬЮ ВНЕШНИХ БИБЛИОТЕК. ПЛАТФОРМЕННО-НЕЗАВИСИМЫЙ ИНТЕРФЕЙС POSIX.

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ И  ЛИТЕРАТУРЫ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

8

 

 

 

13

 

 

 

 

 

 

7


 

1 УПРАВЛЕНИЕ ЗАДАЧАМИ И ПАМЯТЬЮ В ОПЕРАЦИОННЫХ СИСТЕМАХ.  ПЛАНИРОВАНИЕ И ДИСПЕТЧЕРИЗАЦИЯ ПРОЦЕССОВ И ЗАДАЧ. СТРАТЕГИИ ПЛАНИРОВАНИЯ ДИСЦИПЛИНЫ ДИСПЕТЧЕРИЗАЦИИ. ДИСПЕТЧЕРИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ДИНАМИЧЕСКИХ ПРИОРИТЕТОВ

 Управление задачами и памятью в операционных системах

  

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

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

  • создание и удаление задач;
  • планирование процессов и диспетчеризация задач;
  • синхронизация задач, обеспечение их средствами коммуникации.

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

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

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

 

 

 

 

 

Планирование и диспетчеризация  процессов и задач

 

Стратегия планирования

 

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

Стратегий планирования много, но основные из них следующие:

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

 

Стратегия планирования связана с понятием процесс, а не задача, так как

процесс может состоять из нескольких задач (потоков).

 

Дисциплины диспетчеризации

 

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

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

Имеются два больших класса дисциплин  обслуживания: 
- бесприоритетные: 
- приоритетные.

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

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

Бесприоритетные дисциплины обслуживания делятся на следующие:

- линейные:

1) в порядке очереди;

2) случайный выбор процесса;

- циклический:

1) циклический алгоритм;

2) многоприоритетный циклический алгоритм.

Приоритетные дисциплины обслуживания делятся на следующие:

- с фиксированным  приоритетом:

1) с относительным приоритетом;

2) с абсолютным приоритетом; 

3) адаптивное обслуживание;

4) приоритет зависит от времени ожидания;

- с динамическим  приоритетом:

1) приоритет зависит от времени ожидания;

2) приоритет зависит от времени обслуживания.

 

Свойства приоритетов:

 

- приоритет,  присвоенный задаче, может являться  величиной постоянной;

- приоритет  задачи может изменяться в  процессе ее решения. 

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

Самой простой  в реализации является дисциплина FCFS (first come – first served), задачи обслуживаются в порядке очереди, т.е. в порядке их появления. Задачи, приостановленные для ожидания какого-либо ресурса, после перехода в состояние готовности становятся в эту очередь перед задачами, которые еще не выполнялись. 

Образуются две очереди:

- новые  задачи;

- ранее  выполнявшиеся, но попавшие в  состояние ожидания.

Дисциплина FCFS реализует стратегию обслуживания «по возможности заканчивать  вычисления в порядке их появления». Эта дисциплина не требует внешнего вмешательства в ход вычислений и перераспределения процессорного  времени. По классу диспетчеризации (вытесняющие  и не вытесняющие) дисциплина FCFS относится  к не вытесняющим. 

Достоинства дисциплины FCFS:

- простота  реализации;

- малые  расходы системных ресурсов на  формирование очереди задач.

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

Дисциплина  обслуживания SJN (shortest job next) требует, чтобы для каждого задания была известна оценка в потребностях процессорного времени. Пользователи должны были указывать предположительное время выполнения. Диспетчер задач сравнивал указанное время с реальным временем выполнения и, если время выполнения превышало указанное, то помещал это задание в конец очереди.

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

Для устранения этого недостатка была предложена дисциплина SRT (shortest remaining time, следующее задание требует меньше всего времени для своего завершения). Перечисленные три дисциплины обслуживания могут использоваться для пакетных режимов работы, когда не важно время отклика. 
Для интерактивной работы надо обеспечить приемлемое время реакции системы и равенство в обслуживании, если система мультитерминальная. Интерактивные задания должны иметь преимущество перед фоновыми. Эти условия решены в дисциплине RR (round robin – круговая, карусельная).

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

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

 

Диспетчеризация задач с использованием динамических приоритетов

 

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

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

- текущий  приоритет, на основе которого  осуществляется планирование;

- заказанный  относительный приоритет (nice number).

Более высокому значению текущего приоритета может  соответствовать более низкий фактический  приоритет планирования.

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

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

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

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

Данный алгоритм планирования обеспечивает:

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

- более вероятный  выбор интерактивных процессов  по сравнению с вычислительными.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 2 РЕАЛИЗАЦИЯ ФУНКЦИЙ API НА УРОВНЕ СИСТЕМЫ ПРОГРАММИРОВАНИЯ.  РЕАЛИЗАЦИЯ ФУНКЦИЙ API С ПОМОЩЬЮ ВНЕШНИХ БИБЛИОТЕК. ПЛАТФОРМЕННО-НЕЗАВИСИМЫЙ ИНТЕРФЕЙС POSIX

 

Реализация функций API на уровне системы программирования

 

Если функции API реализуются на уровне системы программирования, они  предоставляются пользователю в  виде библиотеки функций соответствующего языка программирования. Обычно речь идет о библиотеке времени использования  – RTL (run time library). Система программирования предоставляет пользователю библиотеку соответствующего языка программирования и обеспечивает подключение к результирующей программе объектного кода, ответственного за выполнение этих функций.

Очевидно, что эффективность функций API в таком варианте будет несколько  ниже, чем при непосредственном обращении  к функциям ОС. Так происходит, поскольку  для выполнения многих функций API библиотека RTL языка программирования должна все  равно выполнять обращения к  функциям ОС. Наличие всех необходимых  вызовов и обращений к функциям ОС в объектном коде RTL обеспечивает система программирования.

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

Единообразное выполнение функций  языка обеспечивается системой программирования. При ориентации на различные архитектуры  целевой вычислительной системы  в системе программирования могут  потребоваться различные комбинации вызовов функций ОС для выполнения одних и тех же функций исходного  языка. Это должно быть учтено в коде RTL. В общем случае для каждой архитектуры  целевой вычислительной системы  будет требоваться свой код RTL языка  программирования. Выбор того или  иного объектного кода RTL для подключения  к результирующей программе система  программирования обеспечивает автоматически.

Информация о работе Управление задачами и памятью в операционных системах