Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Микроядерная архитектура (модель клиент-сервер)Содержание книги
Поиск на нашем сайте
Эта модель является средним между двумя предыдущими моделями. В развитии современных операционных систем наблюдается тенденция в сторону дальнейшего переноса задач из ядра в уровень пользовательских процессов, оставляя минимальное микроядро. В этой модели вводятся два понятия: 1. Серверный процесс (который обрабатывает запросы) 2. Клиентский процесс (который посылает запросы) В задачу ядра входит только управление связью между клиентами и серверами.
Модель клиент-сервер Преимущества: · Малый код ядра и отдельных подсистем, и как следствие меньшее содержание ошибок. · Ядро лучше защищено от вспомогательных процессов. · Легко адаптируется к использованию в распределенной системе. Недостатки: · Уменьшение производительности. Обобщение сравнения моделей Сравнения моделей.
2. Процесс - контейнер для ресурсов и исходных кодов программ. С каждым процессом программа связывает её адресное пространство, которое содержит стек, данные, набор регистров. Основной задачей процессора является выполнение машинных команд, которые находятся в основной памяти и составляют программу. Три события приводят к созданию процесса: · загрузка системы; · уже работающий процесс вызывает запрос на создание процесса; · запрос пользователя на создание процесса. Создать процесс означает: · создать описатель процесса; · загрузить коды и данные исполняемой программы процесса с диска в оперативную память; · в многопоточной системе для каждого создаваемого процесса создать как минимум один поток выполнения.
Процесс не может сам перейти из одного состояния в другое. Изменением состояния процессов занимается операционная система, совершая операции над ними: 1) Создание процесса — завершение процесса; 2) Приостановка процесса (перевод из состояния исполнение в состояние готовность) — запуск процесса (перевод из состояния готовность в состояние исполнение); 3) Блокирование процесса (перевод из состояния исполнение в состояние ожидание) — разблокирование процесса (перевод из состояния ожидание в состояние готовность). Сущ-ет ещё 1 операция: изменение приоритета процесса. Операции создания и завершения процесса явл-ся одноразовыми, т. к. применяются к процессу не более 1 раза. Все остальные операции, связанные с изменением сост. процесса (запуск или блокировка), как правило, явл-ся многоразовыми. ОС выполняет операции над процессами след. образом. Чтобы ОС могла выполнять операции над процессам, каждый процесс представляется в ней некоторой структурой данных, содержащей информацию специф-ую д/данного процесса: 1) состояние, в котором нах-ся процесс; 2) программный счётчик процесса, т.е. адрес команды, кот. д.б. выполнена следующей; 3) содержимое регистров в процессорах; 4) данные, необходимые д./планирования использования процессора и управления памятью; (приоритет процесса, расположение адресного пространства и т.д.) 5) учетные данные (id номер процесса, какой юзер инициировал процесс, общее время исполнения процесса данным процессором) 6) сведения об устройствах вв/выв, связанных с процессом; состав этой структуры, ее строение зависят от конкретной ОС. Состояние процессов. В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний: ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором; ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса; ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса. В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе. Типичный граф состояний процесса показан на рисунке 2.1. В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно "вытеснен" из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.
Рис. 2.1. Граф состояний процесса в многозадачной среде
Полный набор состояний процесса содержится в следующем перечне: 1) Процесс выполняется в режиме задачи. 2) Процесс выполняется в режиме ядра. 3) Процесс не выполняется, но готов к запуску под управлением ядра. 4) Процесс приостановлен и находится в оперативной памяти. 5) Процесс готов к запуску, но программа подкачки (нулевой процесс) должна еще загрузить процесс в оперативную память, прежде чем он будет запущен под управлением ядра. 6) Процесс приостановлен и программа подкачки выгрузила его во внешнюю память, чтобы в оперативной памяти освободить место для других процессов. 7) Процесс возвращен из привилегированного режима (режима ядра) в непривилегированный (режим задачи), ядро резервирует его и переключает контекст на другой процесс. Об отличии этого состояния от состояния 3 (готовность к запуску) пойдет речь ниже. 8) Процесс вновь создан и находится в переходном состоянии; процесс существует, но не готов к выполнению, хотя и не приостановлен. Это состояние является начальным состоянием всех процессов, кроме нулевого. 9) Процесс вызывает системную функцию exit и прекращает существование. Однако, после него осталась запись, содержащая код выхода, и некоторая хронометрическая статистика, собираемая родительским процессом. Это состояние является последним состоянием процесса.
Планирование процессов. Планирование - обеспечение поочередного доступа процессов к одному процессору. Планирование процессов включает в себя решение следующих задач: 1) определение момента времени для смены выполняемого процесса; 2) выбор процесса на выполнение из очереди готовых процессов; 3) переключение контекстов "старого" и "нового" процессов. Ситуации, когда необходимо планирование: Когда создается процесс Когда процесс завершает работу Когда процесс блокируется на операции ввода/вывода, семафоре, и т.д. При прерывании ввода/вывода. Планирование может быть краткосрочным и долгосрочным. Долгосрочное планирование предполагает стратегическое формирование очередей таким образом, чтобы процессы, запускаемые на выполнение в одно и то же время (в мультипрограммном режиме), как можно меньше конфликтовали в борьбе за ресурсы. Основной задачей краткосрочного планирования (которое называется диспетчеризацией) является организация вычислений для уже стоящих в очереди и вновь поступающих процессов таким образом, чтобы пропускная способность вычислительной системы и загрузка процессора были максимальными. Дополнительной задачей диспетчеризации является устранение или уменьшение дискриминации одних процессов перед другими что включает в себя предотвращение т.н. «бесконечного откладывания». Можно сказать, что долгосрочное планирование решает стратегические задачи планирования, а краткосрочное — тактические задачи. Алгоритм, реализующий правила обслуживания, называется алгоритмом планирования процессов. Алгоритм планирования без переключений (неприоритетный) - не требует прерывание по аппаратному таймеру, процесс останавливается только когда блокируется или завершает работу. Алгоритм планирования с переключениями (приоритетный) - требует прерывание по аппаратному таймеру, процесс работает только отведенный период времени, после этого он приостанавливается по таймеру, чтобы передать управление планировщику. Необходимость алгоритма планирования зависит от задач, для которых будет использоваться операционная система. Основные три системы: 1) Системы пакетной обработки - могут использовать неприоритетный и приоритетный алгоритм (например: для расчетных программ). 2) Интерактивные системы - могут использовать только приоритетный алгоритм, нельзя допустить чтобы один процесс занял надолго процессор (например: сервер общего доступа или персональный компьютер). 3) Системы реального времени - могут использовать неприоритетный и приоритетный алгоритм (например: система управления автомобилем). Задачи алгоритмов планирования: Для всех систем Справедливость - каждому процессу справедливую долю процессорного времени Контроль над выполнением принятой политики Баланс - поддержка занятости всех частей системы (например: чтобы были заняты процессор и устройства ввода/вывода) Системы пакетной обработки Пропускная способность - количество задач в час Оборотное время - минимизация времени на ожидание обслуживания и обработку задач. Использование процесса - чтобы процессор всегда был занят. Интерактивные системы Время отклика - быстрая реакция на запросы Соразмерность - выполнение ожиданий пользователя (например: пользователь не готов к долгой загрузке системы) Системы реального времени Окончание работы к сроку - предотвращение потери данных Предсказуемость - предотвращение деградации качества в мультимедийных системах (например: потерь качества звука должно быть меньше чем видео).
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами (планировщик). Функции планировщика: · Постановка процессов в очередь готовых к выполнению; · Управление очередью готовых процессов; · Выбор из очереди готового процесса, с переводом его в активное состояние, т.е. передача контроля над центральным процессором выбранному процессу. Планировщик задач – это специальная утилита или сервис ОС (операционной системы), предназначенная для запуска других программ или скриптов, без непосредственного участия пользователя. Также, планировщик может удалять различные файлы (например, временные файлы), записи реестра или другую информацию, становящуюся со временем ненужной. Запуск программ с помощью планировщика происходит в зависимости от таких критериев, как наступление заданного времени, переход ОС из одного состояния в другое (ждущий, спящий режимы и т.д.) или при выполнении какого-либо заданного сценария, например: поступление административного запроса от пользователя или через удаленное администрирование. Одно из преимуществ использования планировщиков заключается в том, что можно автоматизировать однотипную, повторяющуюся работу на компьютере, чтобы не тратить много времени. В отличии встроенного в операционную систему планировщика задач, специальные утилиты поддерживают большее количество функций, зачастую имеют более гибкие и расширенные настройки и, по сравнению со встроенными планировщиками, более удобны в использовании. Обычно, модуль планирования задач в утилитах-планировщиках разработан таким образом, чтобы использовать как можно меньше ресурсов оперативной памяти, а также процессорного времени.
Приоритет - это число, характеризующее степень привилегированности процесса при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии. Приоритет может выражаться целыми или дробными, положительным или отрицательным значением. Чем выше привилегии процесса, тем меньше времени он будет проводить в очередях. Приоритет может назначаться директивно администратором системы в зависимости от важности работы или внесенной платы, либо вычисляться самой ОС по определенным правилам, он может оставаться фиксированным *** на протяжении всей жизни процесса либо изменяться во времени в соответствии с некоторым законом. В последнем случае приоритеты называются динамическими. Существует две разновидности приоритетных алгоритмов: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты. В обоих случаях выбор процесса на выполнение из очереди готовых осуществляется одинаково: выбирается процесс, имеющий наивысший приоритет. По разному решается проблема определения момента смены активного процесса. В системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние ОЖИДАНИЕ (или же произойдет ошибка, или процесс завершится). В системах с абсолютными приоритетами выполнение активного процесса прерывается еще при одном условии: если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса. В этом случае прерванный процесс переходит в состояние готовности. Приоритеты, в свою очередь, могут быть фиксированными или динамическими: · *** Фиксированные приоритеты — являются величиной постоянной на всем жизненном цикле процесса. · Динамические приоритеты — изменяются в зависимости от некоторых условий в соответствии с определенными правилами. Фиксированные приоритеты реализуются проще; для реализации динамических приоритетов необходимы дополнительные затраты, но их использование предполагает более справедливое распределение процессорного времени между процессами.
Контекст процесса включает в себя содержимое адресного пространства задачи, выделенного процессу, а также содержимое относящихся к процессу аппаратных регистров и структур данных ядра. С формальной точки зрения, контекст процесса объединяет в себе пользовательский контекст, регистровый контекст и системный контекст. Пользовательский контекст состоит из команд и данных процесса, стека задачи и содержимого совместно используемого пространства памяти в виртуальных адресах процесса. Те части виртуального адресного пространства процесса, которые периодически отсутствуют в оперативной памяти вследствие выгрузки или замещения страниц, также включаются в пользовательский контекст. Регистровый контекст состоит из следующих компонент: 1) Счетчика команд, указывающего адрес следующей команды, которую будет выполнять центральный процессор; этот адрес является виртуальным адресом внутри пространства ядра или пространства задачи. 2) Регистра состояния процессора (PS), который указывает аппаратный статус машины по отношению к процессу. Регистр PS, например, обычно содержит подполя, которые указывают, является ли результат последних вычислений нулевым, положительным или отрицательным, переполнен ли регистр с установкой бита переноса и т.д. Операции, влияющие на установку регистра PS, выполняются для отдельного процесса, потому-то в регистре PS и содержится аппаратный статус машины по отношению к процессу. В других имеющих важное значение подполях регистра PS указывается текущий уровень прерывания процессора, а также текущий и предыдущий режимы выполнения процесса (режим ядра/задачи). По значению подполя текущего режима выполнения процесса устанавливается, может ли процесс выполнять привилегированные команды и обращаться к адресному пространству ядра. 3) Указателя вершины стека, в котором содержится адрес следующего элемента стека ядра или стека задачи, в соответствии с режимом выполнения процесса. В зависимости от архитектуры машины указатель вершины стека показывает на следующий свободный элемент стека или на последний используемый элемент. От архитектуры машины также зависит направление увеличения стека (к старшим или младшим адресам), но для нас сейчас эти вопросы несущественны. 4) Регистров общего назначения, в которых содержится информация, сгенерированная процессом во время его выполнения. Чтобы облегчить последующие объяснения, выделим среди них два регистра - регистр 0 и регистр 1 - для дополнительного использования при передаче информации между процессами и ядром. Системный контекст процесса имеет "статическую часть" (первые три элемента в нижеследующем списке) и "динамическую часть" (последние два элемента). На протяжении всего времени выполнения процесс постоянно располагает одной статической частью системного контекста, но может иметь переменное число динамических частей. Динамическую часть системного контекста можно представить в виде стека, элементами которого являются контекстные уровни, которые помещаются в стек ядром или выталкиваются из стека при наступлении различных событий. Системный контекст включает в себя следующие компоненты: 1) Запись в таблице процессов, описывающая состояние процесса (раздел 6.1) и содержащая различную управляющую информацию, к которой ядро всегда может обратиться. 2) Часть адресного пространства задачи, выделенная процессу, где хранится управляющая информация о процессе, доступная только в контексте процесса. Общие управляющие параметры, такие как приоритет процесса, хранятся в таблице процессов, поскольку обращение к ним должно производиться за пределами контекста процесса. 3) Записи частной таблицы областей процесса, общие таблицы областей и таблицы страниц, необходимые для преобразования виртуальных адресов в физические, в связи с чем в них описываются области команд, данных, стека и другие области, принадлежащие процессу. Если несколько процессов совместно используют общие области, эти области входят составной частью в контекст каждого процесса, поскольку каждый процесс работает с этими областями независимо от других процессов. В задачи управления памятью входит идентификация участков виртуального адресного пространства процесса, не являющихся резидентными в памяти. 4) Стек ядра, в котором хранятся записи процедур ядра, если процесс выполняется в режиме ядра. Несмотря на то, что все процессы пользуются одними и теми же программами ядра, каждый из них имеет свою собственную копию стека ядра для хранения индивидуальных обращений к функциям ядра. Пусть, например, один процесс вызывает функцию creat и приостанавливается в ожидании назначения нового индекса, а другой процесс вызывает функцию read и приостанавливается в ожидании завершения передачи данных с диска в память. Оба процесса обращаются к функциям ядра и у каждого из них имеется в наличии отдельный стек, в котором хранится последовательность выполненных обращений. Ядро должно иметь возможность восстанавливать содержимое стека ядра и положение указателя вершины стека для того, чтобы возобновлять выполнение процесса в режиме ядра. В различных системах стек ядра часто располагается в пространстве процесса, однако этот стек является логически-независимым и, таким образом, может помещаться в самостоятельной области памяти. Когда процесс выполняется в режиме задачи, соответствующий ему стек ядра пуст. 4) Динамическая часть системного контекста процесса, состоящая из нескольких уровней и имеющая вид стека, который освобождается от элементов в порядке, обратном порядку их поступления. На каждом уровне системного контекста содержится информация, необходимая для восстановления предыдущего уровня и включающая в себя регистровый контекст предыдущего уровня.
Рисунок 6.8. Компоненты контекста процесса
Переключение контекста. Ядро разрешает производить переключение контекста в четырех случаях: когда процесс приостанавливает свое выполнение, когда он завершается, когда он возвращается после вызова системной функции в режим задачи, но не является наиболее подходящим для запуска, или когда он возвращается в режим задачи после завершения ядром обработки прерывания, но так же не является наиболее подходящим для запуска. Ядро поддерживает целостность и согласованность своих внутренних структур данных, запрещая произвольно переключать контекст. Прежде чем переключать контекст, ядро должно удостовериться в согласованности своих структур данных: то есть в том, что сделаны все необходимые корректировки, все очереди выстроены надлежащим образом, установлены соответствующие блокировки, позволяющие избежать вмешательства со стороны других процессов, что нет излишних блокировок и т.д. Например, если ядро выделяет буфер, считывает блок из файла и приостанавливает выполнение до завершения передачи данных с диска, оно оставляет буфер заблокированным, чтобы другие процессы не смогли обратиться к буферу. Но если процесс исполняет системную функцию link, ядро снимает блокировку с первого индекса перед тем, как снять ее со второго индекса, и тем самым предотвращает возникновение тупиковых ситуаций (взаимной блокировки). Ядро выполняет переключение контекста по завершении системной функции exit, поскольку в этом случае больше ничего не остается делать. Кроме того, переключение контекста допускается, когда процесс приостанавливает свою работу, поскольку до момента возобновления может пройти немало времени, в течение которого могли бы выполняться другие процессы. Переключение контекста допускается и тогда, когда процесс не имеет преимуществ перед другими процессами при исполнении, с тем, чтобы обеспечить более справедливое планирование процессов: если по выходе процесса из системной функции или из прерывания обнаруживается, что существует еще один процесс, который имеет более высокий приоритет и ждет выполнения, то было бы несправедливо оставлять его в ожидании. Процедура переключения контекста похожа на процедуры обработки прерываний и обращения к системным функциям, если не считать того, что ядро вместо предыдущего контекстного уровня текущего процесса восстанавливает контекстный уровень другого процесса. Причины, вызвавшие переключение контекста, при этом не имеют значения. На механизм переключения контекста не влияет и метод выбора следующего процесса для исполнения.
Рисунок 6.15. Последовательность шагов, выполняемых при переключении контекста
Диспетчер — это еще один компонент системы планирования. Это модуль, который передает управление процессором тому процессу, который был выбран на уровне кратковременного планирования. В его задачи входит переключение контекста, переключение в пользовательский режим и прыжок к нужному месту пользовательской программы, чтобы начать или продолжить ее исполнение. Главное требование к диспетчеру — это быстродействие, поскольку он осуществляет каждое переключение процессов. 3. Стратегии планирования процессов. Планирование - обеспечение поочередного доступа процессов к одному процессору. Планировщик - отвечающая за это часть операционной системы. Алгоритм планирования - используемый алгоритм для планирования. Ситуации, когда необходимо планирование: Когда создается процесс Когда процесс завершает работу Когда процесс блокируется на операции ввода/вывода, семафоре, и т.д. При прерывании ввода/вывода. Алгоритм планирования без переключений (неприоритетный) - не требует прерывание по аппаратному таймеру, процесс останавливается только когда блокируется или завершает работу. Алгоритм планирования с переключениями (приоритетный) - требует прерывание по аппаратному таймеру, процесс работает только отведенный период времени, после этого он приостанавливается по таймеру, чтобы передать управление планировщику "Первый пришел - первым обслужен" (FIFO - First In Fist Out) Процессы ставятся в очередь по мере поступления. Преимущества: · Простата · Справедливость (как в очереди покупателей, кто последний пришел, тот оказался в конце очереди) Недостатки: · Процесс, ограниченный возможностями процессора может затормозить более быстрые процессы, ограниченные устройствами ввода/вывода.
Стратегия Shortest Job First (SJF, обслуживание самого короткого задания первым) – стратегия диспетчеризации процессора, при которой процессор предоставляется в первую очередь наиболее короткому процессу из имеющихся в системе. В данном случае с каждым процессом связывается длина его очередного периода активности. Эта длина используется для того, чтобы первым обслужить самый короткий процесс. Возможны две схемы применения данной стратегии: 1. Без прерывания процессов – пока процессу предоставляется процесс, он не может быть прерван, пока не истечет его квант времени. 2. С прерыванием процессов – если приходит новый процесс, время активности которого меньше, чем оставшееся время активного процесса, - прервать активный процесс. Эта схема известна под названием Shortest-Remaining-Time-First (SRTF). Нетрудно видеть, что стратегия SJF оптимальна, в том смысле, что она обеспечивает минимальное среднее время ожидания для заданного набора процессов. Стратегия планирования " по наименьшему остающемуся времени" (SRT) По принципу SRT выполняющийся процесс может быть прерван при поступлении нового процесса, имеющего более короткое оценочное время работы. Стратегия SRT характеризуется более высокими накладными расходами, чем SJF, так как она должна следить за текущим временем обслуживания выполняющегося задания и обрабатывать возникающие прерывания. Следует предусмотреть некоторое пороговое значение остающегося времени выполнения, с тем, чтобы в случае, если текущему заданию требуется для завершения меньше указанного количества времени, система гарантировала бы его завершение без прерываний. Циклическое планиpование (Round Robin - RR) Диспетчиpование пpоцессов осуществляется по FIFO, но каждому пpоцессу пpедоставляется огpаниченное количество вpемени ЦП, называемое вpеменным квантом. Пpоцесс, у котоpого пеpехватили ЦП, пеpеходит в конец списка готовых к выполнению пpоцессов. Дисциплина RR хоpоша для интеpактивной pаботы. Hакладные pасходы снижаются за счет эффективных механизмов контекстного пеpеключения и благодаpя пpедоставлению достаточного объема основной памяти, чтобы пpоцессы могли pазмещаться в ней одновpеменно. Pазмеp кванта вpемени Если квант велик, то RR выpождается в FIFO. Если квант очень мал, то ОС занимается только пеpеключениями (велики накладные pасходы). Чем хаpактеpизуется оптимальное значение кванта? Он достаточно велик, так что подавляющее большинство интеpактивных запpосов тpебует для своего обслуживания меньшего вpемени, чем длительность кванта. Величина оптимального кванта меняется от системы к системе, от пpоцесса к пpоцессу и зависит от нагpузки. Планирование на основе многоуровневых очередей с обратными связями Механизм планирования должен: · - отдавать предпочтение коротким заданиям; · - отдавать предпочтение заданиям, лимитируемым вводом/выводом; · -как можно быстрее определять характер задания и соответствующим образом планировать выполнение этого задания. Многоуровневые очереди с обратными связями обеспечивают достижение этих целей. Новый процесс входит в систему с конца верхней очереди и перемещается в ней по принципу FIFO, пока не получит ЦП. Если оно завершается или ждет ввода/вывода, то выходит из сети очередей. Если выделенного кванта времени не хватило, то процесс помещается в конец очереди следующего более низкого уровня. Он получает ЦП, если достигнет начала второй очереди и первая очередь будет пуста. Таким образом он спускается по очередям, пока не попадает в самую нижнюю, в которой он обслуживается по RR, пока не завершится. Во многих ОС при переходе между очередями увеличивается квант времени. Выполняющийся процесс прерывается, если поступает новый процесс в очередь более высокого уровня. Когда процесс вновь входит в сеть очередей, он будет направлен на работу в ту очередь, в которой он последний раз завершил свою работу: поведение процесса в недавнем прошлом - хороший ориентир для определения его поведения в ближайшем будущем. Система может реагировать на улучшение "интерактивности" процесса, если снабжать его меткой интервала времени последнего пребывания в сети. Многоуровневые очереди с обратными связями - адаптивный механизм. Они требуют больших накладных расходов, однако делают ВС более реактивной, что компенсирует накладные расходы.
|
||||||||
Последнее изменение этой страницы: 2017-02-06; просмотров: 1154; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.189.143.150 (0.011 с.) |