Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Какие действия выполняет ОС при порождении процесса?




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

 

Что такое «описатель (дескриптор) процесса»?

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

 

Что такое «описатель (дескриптор) потока»?

В многопоточной системе при порождении процесса ОС создает для каждого процесса 1 или несколько потоков выполнения.

Дескриптор потока включает в себя:

  • Идентификатор потока
  • Идентификатор процесса – владельца потока,
  • Параметры, используемые в процессе определения приоритета потока при конкуренции за какой-либо ресурс
  • Статистические данные потока
  • Аппаратный контекст выполнения потока (программный счетчик, стек и указатель на его вершину, значения регистров)
  • Код завершения потока

10) Поясните суть и основные типы планирования потоков.

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

· Приоритет потока

· Время ожидания в очереди

· Накопленное время выполнения

· Интенсивность ввода вывода

ОС планирует выполнение потоков независимо от того, принадлежат они одному или разным процессам.

Планирование потоков заключается в решении 2-х основных задач:

  • Определение момента времени смены текущего активного потока
  • Выбор для выполнения очередного потока из очереди готовых потоков

11) Чем динамическое планирование потоков отличается от статического?

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

Другой тип планирования – статический. Используется в системах с заранее известным составом мультипрограммной смеси. Статический планировщик принимает решение заранее.

 

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

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

До прерывания выполнения потока ОС запоминает его контекст, который отражает:

1. состояние аппаратуры ЭВМ во время прерывания потока

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

Порядок диспетчеризации следующий:

1. происходит сохранение контекста текущего потока, подлежащего смене

2. загрузка контекста нового потока, выбранного в результате планирования

3. запуск нового потока на выполнение

Как организуются и переупорядочиваются очереди потоков?

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

Такая организация очередей позволяет легко их переупорядочивать, включать и исключать потоки, переводить потоки из одного состояния в другое.

14) Чем различаются вытесняющие и невытесняющие алгоритмы планирования?

Множество алгоритмов планирования можно разделить на 2 класса:

1. Вытесняющий алгоритм (решение о прекращении выполнения потока выполняет ОС)

Все диспетчерские функции выполняет ОС

2. Невытесняющий (решение принимается самим потоком)

Эти функции разделены между ОС и приложениями, а управление средой теряется на произвольный период времени, определяемый самим приложением.

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

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

 

15) Поясните особенности алгоритмов планирования, основанных на квантовании.

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

Смена активного потока происходит, если:

1. Поток завершился и покинул систему

2. Произошла ошибка

3. Поток перешел в состояние ожидания

4. Исчерпан квант, отведенный данному потоку

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

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

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...