Главная » Просмотр файлов » Гордеев А.В. Операционные системы (2-е изд., 2004)

Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 10

Файл №1186250 Гордеев А.В. Операционные системы (2-е изд., 2004) (Гордеев А.В. Операционные системы (2-е изд., 2004)) 10 страницаГордеев А.В. Операционные системы (2-е изд., 2004) (1186250) страница 102020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

Такой сущностью стали лег­ковесные (thin) процессы, или, как их теперь преимущественно называют, потокивыполнения1, нити, или треды (threads).Когда говорят о процессах (process), то тем самым хотят отметить, что операцион­ная система поддерживает их обособленность: у каждого процесса имеется своевиртуальное адресное пространство, каждому процессу назначаются свои ресур­сы — файлы, окна, семафоры и т. д. Такая обособленность нужна для того, чтобызащитить один процесс от другого, поскольку они, совместно используя все ресур­сы вычислительной системы, конкурируют друг с другом за доступ к ресурсам.о общем случае процессы просто никак не связаны между собой и могут принад­лежать даже разным пользователям, разделяющим одну вычислительную систему.Поток выполнения (thread) не следует путать с потоком данных (stream).38Глава 1.

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

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

Такие ситуации встреча­ются достаточно часто, например, при работе с графическими редакторами приобработке больших изображений с высокой степенью детализации. Если же про­граммные модули, исполняющие такие длительные операции, оформлять в видесамостоятельных «подпроцессов» (легковесных процессов, потоков выполнения,или задач), которые могут выполняться параллельно с другими подпроцессами(потоками, задачами), то у пользователя появляется возможность параллельновыполнять несколько операций в рамках одного приложения (процесса). Легко­весными эти процессы называют потому, что операционная система не должна дляних организовывать полноценную виртуальную машину, то есть эти задачи, преж­де всего, не имеют своих собственных ресурсов, а развиваются в том же виртуаль­ном адресном пространстве, могут пользоваться теми же файлами, виртуальнымиустройствами и иными ресурсами, выделенными ОС данному процессу.

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

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

Как известно, операционная сис­тема OS/2 была одной из первых систем, используемых в персональных компью­терах, которая поддерживала многопоточность. В середине 90-х годов для этой опе­рационной системы было создано большое количество приложений, в которыхналичие механизмов многопоточной обработки реально приводило к существен­ному повышению скорости вычислений. Для систем Windows, с которыми мы всеимеем дело, ярко выраженной многопоточностыо обладают такие продукты, какSQL Server, Oracle.

И хотя те же Word, Excel, Internet Explorer также при своейработе образуют потоки, явного параллелизма в этих программах почти не под­держивается. Поэтому при увеличении числа процессоров в компьютере такиепрограммы не начинают выполняться быстрее.Итак, сущность «поток выполнения» была введена для того, чтобы именно с помо­щью этих единиц распределять процессорное время между возможными работа­ми. Сущность «процесс» предполагает, что при диспетчеризации нужно учиты­вать все ресурсы, закрепленные за ним.

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

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

Пока одинпоток заблокирован (или просто находится в очереди готовых к исполнению за­дач), другой поток того же процесса может выполняться. Потоки разделяют про­цессорное время так же, как это делают обычные процессы, в соответствии с раз­личными вариантами диспетчеризации.Как уже упоминалось, иногда потоки выполнения называют легковесными про­цессами. Как мы уже знаем, все потоки имеют одно и то же виртуальное адресноепространство своего процесса. Это означает, что они разделяют одни и те же гло­бальные переменные. Поскольку каждый поток может иметь доступ к каждому40Глава 1. Основные понятиявиртуальному адресу, один поток может использовать стек другого потока. Междупотоками нет полной защиты, потому что, во-первых, это невозможно, а во-вто­рых, не нужно.

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

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6525
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее