0029 - Сетевые операционные системы - В последнем случае поток возвращается в состояние го

В. Г. Олифер, Н. А. Олифер. Сетевые операционные системы. 2001

 В. Г. Олифер, Н. А. Олифер 
.  Сетевые операционные системы 
. 2001
. 5-272-00120-6
. Питер
. 
. Эта книга — не о конкретной системе и даже не о конкретном типе операционных систем. Она рассматривает фундаментальные концепции и принципы построения, справ
Название: 
Сетевые операционные системы
Автор: 
В. Г. Олифер, Н. А. Олифер
Год: 
2001
Издательство: 
Питер
Описание: 

Эта книга — не о конкретной системе и даже не о конкретном типе операционных систем. Она рассматривает фундаментальные концепции и принципы построения, справедливые для большинства известных на сегодня операционных систем. В первую очередь эта книга рекомендуется студентам и аспирантам различных специальностей направления «Информатика и вычислительная техника» как учебное пособие по курсам «Операционные системы» и «Организация вычислительных процессов». Кроме того, она может быть полезна специалистам: программистам, сетевым администраторам и профессионалам по коммуникационному оборудованию.

В последнем случае поток возвращается в состояние готовности. В это же состояние поток переходит из состояния ожидания, после того как ожидаемое событие произойдет. Поток завершен или ошибка Рис. Граф состояний потока в многозадачной среде В состоянии выполнения в однопроцессорной системе может находиться не более одного потока, а в каждом из состояний ожидания и готовности — несколько Планирование процессов и потоков . Эти потоки образуют очереди соответственно ожидающих и готовых потоков. Очереди потоков организуются путем объединения в списки описателей отдельных потоков. Таким образом, каждый описатель потока, кроме всего прочего, содержит по крайней мере один указатель на другой описатель, соседствующий с ним в очереди. Такая организация очередей позволяет легко их переупорядочивать, включать и исключать потоки, переводить потоки из одного состояния в другое. Если предположить, что на рис. ОписательОписательОписательОписательОписатель потока Апотока Впотока Спотока . Очередь потоков Вытесняющие и невытесняющие алгоритмы планирования С самых общих позиций все множество алгоритмов планирования можно разделить на два класса. Основным различием между вытесняющими и невытесняющими алгоритмами является степень централизации механизма планирования потоков. При вытесняющем мультипрограммировании функции планирования потоков целиком сосредоточены в операционной системе и программист пишет свое приложение, не заботясь о том, что оно будет выполняться одновременно с другими задачами. При невытесняющем мультипрограммировании механизм планирования распределен между операционной системой и прикладными программами. Прикладная программа, получив управление от операционной системы, сама определяет момент завершения очередного цикла своего выполнения и только затем передает управление ОС с помощью какого. Процессы и потоки очереди потоков и выбирает в соответствии с некоторым правилом . Такой механизм создает проблемы как для пользователей, так и для разработчиков приложений. Для пользователей это означает, что управление системой теряется на произвольный период времени, который определяется приложением . Если приложение тратит слишком много времени на выполнение какой. Поэтому разработчики приложений для операционной среды с невытесняющей многозадачностью вынуждены, возлагая на себя часть функций планировщика, создавать приложения так, чтобы они выполняли свои задачи небольшими частями. Например, программа форматирования может отформатировать одну дорожку дискеты и вернуть управление системе. После выполнения других задач система возвратит управление программе форматирования, чтобы та отформатировала следующую дорожку. Подобный метод разделения времени между задачами работает, но он существенно затрудняет разработку программ и предъявляет повышенные требования к квалификации программиста. Для этого в программе должны быть предусмотрены частые передачи управления операционной системе. В системах с вытесняющей многозадачностью такие ситуации, как правило, исключены, так как центральный планирующий механизм имеет возможность снять зависшую задачу с выполнения. Однако распределение функций планирования потоков между системой и приложениями не всегда является недостатком, а при определенных условиях может быть и преимуществом, потому что дает возможность разработчику приложений самому проектировать алгоритм планирования, наиболее подходящий для данного фиксированного набора задач. Так как разработчик сам определяет в программе момент возвращения управления, то при этом исключаются нерациональные прерывания программ в . Кроме того, легко разрешаются проблемы совместного использования данных. Существенным преимуществом невытесняющего планирования является более высокая скорость переключения с потока на поток. ПРИМЕЧАНИЕ Понятия вытесняющих и невытесняющих алгоритмов планирования иногда отождествляют с понятиями приоритетных и бесприоритетных дисциплин, что, возможно, связано со звучанием соответствующих англоязычных терминов . Однако это совершенно неверно, так как приоритеты в том и другом случаях могут как использоваться, так и не использоваться. Почти во всех современных операционных системах, ориентированных на высокопроизводительное выполнение приложений . В последнее время дошла очередь и до ОС класса настольных систем, например . Примером эффективного использования невытесняющего планирования являются файл. В соответствии с концепцией невытесняющего планирования, чтобы не занимать процессор слишком долго, поток в . Только что созданный поток попадает в конец очереди . После отказа от процессора поток попадает в ту или иную очередь в зависимости от того, какой из системных вызовов был использован при передаче управления. Поток поступает в конец очереди . После того как выполнявшийся процессором поток завершит свой очередной цикл выполнения, отдав управление с помощью одного из вызовов передачи управления . Потоки, находящиеся в очереди . Потоки, находящиеся в очереди . Обычно в эту очередь назначаются потоки, выполняющие несрочную фоновую работу. В эту очередь попадают так называемые рабочие потоки. Пул рабочих потоков создается при старте системы для системных целей и выполнения срочных работ. Рабочие потоки ОС обладают наивысшим приоритетом, то есть попадают на выполнение перед потоками из очереди . Процессы и потоки полниться подряд только определенному количеству потоков из очереди . Очередь готовых потоков Только что созданные потоки . Схема планирования потоков в . Но для достижения высокой производительности к разработчикам приложений для ОС . Алгоритмы планирования, основанные на квантовании В основе многих вытесняющих алгоритмов планирования лежит концепция квантования. В соответствии с этой концепцией каждому потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени — квант. Смена активного потока происходит, если. Планирование процессов и потоков . Граф состояний потока, изображенный на рис.