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

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

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

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

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

3 Потокам можно назначить определенный приоритет, для того чтобы наименее значимые процессы выполнялись в фоновом режиме (путь частичного разделения ресурсов CPU). Однако всегда нужно помнить, что процессор 1 – а потоков много.

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

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

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

3. Для чего каждая задача получает свой дескриптор. Какие поля, как правило, содержатся в дескрипторе процесса (задачи). Что такое контекст задачи.

№6

1. Дескриптор ОС реального времени

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

Аппаратная поддержка дескрипторов задач. Для аппаратной поддержки работы ОС с дескрипторами задач в процессорах реального времени реализованы соответствующие механизмы. Начиная с Intel 80286 в котором реализован регистр наз: TR task Register, указывающий местонахождение сегмента состояния задачи, в котором при переключении с задачи на задачу автоматически сохраняется содержание регистров процессора. В современных ОС регистр задачи включает в себя сегмент состояния задачи TSS task state segment Дескриптор задачи больше по размерам чем TSS и включает в себя такие общие поля, как идентификатор задачи, имя, приоритет, тип, и т. д.

№7

1. Активный и пассивный процессы.

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

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

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

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

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

2. Привилегированные и непривилегированные программные модули.

3. Объяснить понятие ресурса. Назвать виды и типы ресурсов.

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

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

Классификация ресурсов

[pic]

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

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.