Лекции по операционным системам

Страница: 6/11

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

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

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

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

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

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

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

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

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

№6

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

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

Реферат опубликован: 26/02/2010