Операционные системы. Учебное пособие. Марапулец Ю.В. - 48 стр.

UptoLike

Составители: 

обычные процессы, а в мультипроцессорной системе могут выполняться одновременно,
если не встречают конкуренции из-за обращения к иным ресурсам.
Главное, что обеспечивает многопоточность - это возможность параллельно вы-
полнять несколько видов операций в одной прикладной программе. Особенно эффек-
тивно можно использовать многопоточность для выполнения распределенных приложе-
ний; например, многопоточный сервер может параллельно выполнять запросы сразу
нескольких клиентов. В операционной системе OS/2 одной из первых среди ОС, исполь-
зуемых на ПК, была введена многопоточность. В середине девяностых годов для этой
ОС было создано очень большое количество приложений, в которых использование ме-
ханизмов многопоточной обработки приводило к существенному увеличению скорости
выполнения вычислений.
Каждый процесс всегда состоит по крайней мере из одного потока, и только если
имеется внутренний параллелизм, программист может разделить один поток на несколь-
ко параллельных. Потоки выполняются строго последовательно и имеют свой собствен-
ный программный счетчик и стек. Потоки, как и процессы, могут порождать потоки-
потомки. Подобно традиционным процессам (то есть процессам, состоящим из одного
потока), каждый поток может находится в одном из активных состояний. Пока один
поток заблокирован (или просто находится в очереди готовых к исполнению задач),
другой поток того же процесса может выполняться. Потоки разделяют процессор-
ное время по тем же принципам, как это делают обычные процессы, т.е. в соответствии с
механизмами, заложенными в различных дисциплинах диспетчеризации.
2.1.2. Планирование и диспетчеризация
Операционная система выполняет следующие основные функции, связанные с
управлением процессами и потоками (задачами) [2]:
создание и удаление;
планирование процессов и диспетчеризация;
синхронизация задач, обеспечение их средствами коммуникации.
Система управления задачами обеспечивает прохождение их через компьютер. В
зависимости от состояния процесса ему должен быть предоставлен тот или иной ресурс.
Например, новый процесс необходимо разместить в основной памяти - следовательно,
ему необходимо выделить часть адресного пространства. Новый порожденный поток
текущего процесса необходимо включить в общий список задач, конкурирующих между
собой за ресурсы центрального процессора.
Создание и удаление задач осуществляется по соответствующим запросам от поль-
зователей или от самих задач. Задача может породить новую задачу. При этом между
процессами появляются «родственные» отношения. Порождающая задача называется
предком, родителем, а порожденная - потомком или дочерней задачей. Родитель мо-
жет приостановить или удалить свою дочернюю задачу, тогда как потомок не может
управлять предком.
Основным подходом к организации того или иного метода управления процессами,
обеспечивающего эффективную загрузку ресурсов или выполнение каких-либо иных
целей, является организация очередей процессов и ресурсов. Очевидно, что на распре-
деление ресурсов влияют конкретные потребности тех задач, которые должны выпол-
няться параллельно, т.е можно столкнуться с ситуациями, когда невозможно эффектив-
но распределять ресурсы с тем, чтобы они не простаивали. Например, всем
выполняющимся процессам требуется некоторое устройство с последовательным досту-
пом. Но поскольку оно не может распределяться между параллельно выполняющимися
процессами, то процессы вынуждены будут очень долго ждать своей очереди. Таким об-
50
обычные процессы, а в мультипроцессорной системе могут выполняться одновременно,
если не встречают конкуренции из-за обращения к иным ресурсам.
     Главное, что обеспечивает многопоточность - это возможность параллельно вы-
полнять несколько видов операций в одной прикладной программе. Особенно эффек-
тивно можно использовать многопоточность для выполнения распределенных приложе-
ний; например, многопоточный сервер может параллельно выполнять запросы сразу
нескольких клиентов. В операционной системе OS/2 одной из первых среди ОС, исполь-
зуемых на ПК, была введена многопоточность. В середине девяностых годов для этой
ОС было создано очень большое количество приложений, в которых использование ме-
ханизмов многопоточной обработки приводило к существенному увеличению скорости
выполнения вычислений.
     Каждый процесс всегда состоит по крайней мере из одного потока, и только если
имеется внутренний параллелизм, программист может разделить один поток на несколь-
ко параллельных. Потоки выполняются строго последовательно и имеют свой собствен-
ный программный счетчик и стек. Потоки, как и процессы, могут порождать потоки-
потомки. Подобно традиционным процессам (то есть процессам, состоящим из одного
потока), каждый поток может находится в одном из активных состояний. Пока один
поток заблокирован (или просто находится в очереди готовых к исполнению задач),
другой поток того же процесса может выполняться. Потоки разделяют процессор-
ное время по тем же принципам, как это делают обычные процессы, т.е. в соответствии с
механизмами, заложенными в различных дисциплинах диспетчеризации.

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

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



                                         50