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

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

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

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

Дисцип­лины обслуживания FCFS, SJN, SRT относятся к не вытесняющим.Диспетчеризация с перераспределением процессорного времени между задачами,то есть вытесняющая многозадачность (preemptive multitasking), — это такой спо­соб, при котором решение о переключении процессора с выполнения одной задачина выполнение другой принимается диспетчером задач, а не самой активной зада­чей. При вытесняющей многозадачности механизм диспетчеризации задач цели­ком сосредоточен в операционной системе, и программист может писать свое при­ложение, не заботясь о том, как оно будет выполняться параллельно с другимизадачами (процессами и потоками).

При этом операционная система выполняетследующие функции: определяет момент снятия с выполнения текущей задачи,сохраняет ее контекст в дескрипторе задачи, выбирает из очереди готовых задачследующую и запускает ее на выполнение, загружая ее контекст. Дисциплина RR11многие другие, построенные на ее основе, относятся к вытесняющим.62Глава 2. Управление задачамиПри не вытесняющей многозадачности процессорное время распределено междусистемой и прикладными программами.

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

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

Так, упомянутая вышепрограмма форматирования может отформатировать одну дорожку дискетыи вернуть управление системе. После выполнения других задач система возвратитуправление программе форматирования, чтобы та отформатировала следующуюдорожку. Подобный метод разделения времени между задачами работает, но онсущественно затрудняет разработку программ и предъявляет повышенные требо­вания к квалификации программиста.Например, в ныне уже забытой операционной среде Windows 3.x нативные 16-раз­рядные приложения этой системы разделяли между собой процессорное времяименно таким образом. Й именно программисты должны были обеспечивать «дру­жественное» отношение своей программы к другим выполняемым одновременнос ней программам, достаточно часто отдавая управление ядру системы. Крайнимпроявлением «недружественности» приложения является его зависание, приво­дящее к общему краху системы — прекращению всех вычислений.

В системах с вы­тесняющей многозадачностью такие ситуации, как правило, исключены, так какцентральный механизм диспетчеризации, во-первых, обеспечивает все задачи про­цессорным временем, во-вторых, дает возможность иметь надежные механизмымониторинга вычислений и, в-третьих, позволяет снять зависшую задачу с выпол­нения.Однако распределение функций диспетчеризации между системой и приложени­ями не всегда является недостатком, а при определенных условиях может бытьи достоинством, потому что дает возможность разработчику приложений самомупланировать распределение процессорного времени наиболее подходящим для--•--^•-•••--•—*•. ! „..^^.^^^..^^..^^^.^^^ЛИкачество диспетчеризации и гарантии обслуживания63данного фиксированного набора задач образом [27, 44, 46].

Так как разработчиксам определяет в программе момент времени передачи управления, то при этомисключаются нерациональные прерывания программ в «неудобные» для них мо­менты времени. Кроме того, легко разрешаются проблемы совместного использо­вания данных: задача во время каждой итерации использует их монопольно и уве­рена, что на протяжении этого периода никто другой их не изменит. Примеромэффективного применения не вытесняющей многозадачности является сетеваяоперационная система Novell NetWare, в которой в значительной степени благо­даря этому достигнута высокая скорость выполнения файловых операций. Менееудачным оказалось использование не вытесняющей многозадачности в операци­онной среде Windows 3.x.

К счастью, на сегодня эта операционная система уженигде не применяется, ее с успехом заменила сначала Windows 95, а затем и Win­dows 98. Правда, следует заметить, что при выполнении в этих операционных систе­мах старых 16-разрядных приложений, разработанных в свое время для операци­онной среды Win 16 API, создается виртуальная машина, работающая по принципамне вытесняющей многозадачности.Качество диспетчеризациии гарантии обслуживанияОдна из проблем, которая возникает при выборе подходящей дисциплины обслу­живания — это гарантия обслуживания.

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

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

Основным недостатком такого простого упорядочения является то,что задача (за счет других задач) может быть обслужена быстрее, чем это ей реаль­но необходимо. Чтобы избежать этого, проще всего процессорное время выделятьВсе-таки квантами. А после получения задачей своего кванта времени операцион­ная система, оценив некоторое множество факторов (важных с точки зрения опти-л64•Глава 2.

Управление задачамимизации распределения процессорного времени и гарантий обслуживания к за­данному сроку), может переназначить приоритет задаче. Это позволит ей болеегибко использовать механизм приоритетов и иметь механизмы гарантии обслу­живания.Гарантировать обслуживание можно, например, следующими тремя способами.•Выделять минимальную долю процессорного времени некоторому классу про­цессов, если по крайней мере один из них готов к исполнению. Например, можноотводить 20 % от каждых 10 мс процессам реального времени, 40 % от каждых2 с — интерактивным процессам и 10 % от каждых 5 мин — пакетным (фоно­вым) процессам.•Выделять минимальную долю процессорного времени некоторому конкретно­му процессу, если он готов к выполнению.ОВыделять столько процессорного времени некоторому процессу, чтобы он могвыполнить свои вычисления к сроку.Для сравнения алгоритмов диспетчеризации обычно используются некоторые кри­терии.Q Загрузка центрального процессора (CPU utilization).

В большинстве персональ­ных систем средняя загрузка процессора не превышает 2-3 %, доходя в момен­ты выполнения сложных вычислений и до 100 %. В реальных системах, гдекомпьютеры (например, серверы) выполняют очень много работы, загрузка про­цессора колеблется в пределах от 15-40 % (для легко загруженного процессо­ра) до 90-100 % (для тяжело загруженного процессора).• Пропускная способность центрального процессора (CPU throughput). Пропус­кная способность процессора может измеряться количеством процессов, кото­рые выполняются в единицу времени.QВремя оборота (turnaround time). Для некоторых процессов важным критери­ем является полное время выполнения, то есть интервал от момента появленияпроцесса во входной очереди до момента его завершения. Это время названовременем оборота и включает время ожидания во входной очереди, время ожи­дания в очереди готовых процессов, время ожидания в очередях к оборудова­нию, время выполнения в процессоре и время ввода-вывода.• Время ожидания (waiting time).

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

Можно выделить следующие главные причины, при­водящие к снижению производительности системы.Диспетчеризация задач с использованием динамических приоритетов•65Накладные расходы на переключение процессора. Они определяются не толь­ко переключениями контекстов задач, но и (при переключении на потоки друго­го приложения) перемещениями страниц виртуальной памяти, а также необхо­димостью обновления данных в кэше (коды и данные одной задачи, находящиесяв кэше, не нужны другой задаче и будут заменены, что приведет к дополнитель­ным задержкам).• Переключение на другую задачу в тот момент, когда текущая задача выполняеткритическую секцию, а другие задачи активно ожидают входа в свою критичес­кую секцию (см. главу 7). В этом случае потери будут особо велики (хотя веро­ятность прерывания выполнения коротких критических секций мала).В случае мультипроцессорных систем применяются следующие методы повыше­ния производительности системы:• совместное планирование, при котором все потоки одного приложения (неблокированные) одновременно ставятся на выполнение процессорами и одновре­менно снимаются с выполнения (для сокращения переключений контекста);• планирование, при котором находящиеся в критической секции задачи не пре­рываются, а активно ожидающие входа в критическую секцию задачи не ста­вятся на выполнение до тех пор, пока вход в секцию не освободится;Q планирование с учетом так называемых подсказок (hints) программы (во времяее выполнения), например, в известной своими новациями ОС Mach имелосьдва класса таких подсказок: во-первых, указания (разной степени категорично­сти) о снятии текущего процесса с процессора, во-вторых, указания о том про­цессе, который должен быть выбран взамен текущего.Одним из основных методов гарантии обслуживания является использование ди­намических приоритетов.Диспетчеризация задач с использованиемдинамических приоритетовПри выполнении программ, реализующих какие-нибудь задачи контроля и управ­ления (что характерно, прежде всего, для систем реального времени), может слу­читься такая ситуация, когда одна или несколько задач не могут быть реализова­ны (решены) в течение длительного промежутка времени из-за возросшей нагрузкив вычислительной системе.

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

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

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