Обслуживание процессов с приоритетами

1. Обычный метод обслуживания.

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

• выбор на сервис процесса из Обслуживание процессов с приоритетами очереди высокоприоритетных готовых процессов.

• если эта очередь пуста, выбор процесса из очереди низкоприоритетных процессов.

2. Другой метод.

Может употребляться в системах с разделением времени и страничной организацией памяти.

Состояние ожидания может быть 3-х видов:

• блокировка по обмену с терминалами;

• блокировка по обмену с накопителями;

• блокировка по обмену с наружной Обслуживание процессов с приоритетами страничной памятью.

Готовые процессы разделяются на три группы:

• низкоприоритетные процессы с преимущественным счетом;

• высокоприоритетные процессы с преимущественным вв/выв.;

• среднеприоритетные процессы с преимущественным вв/выв.

Метод обслуживания состоит в выборе процесса из очереди высокоприоритетных готовых процессов, если очередь пуста - из более низких очередей по приоритету.

Систематизация (виды) ОС 1. По предназначению ОС делятся Обслуживание процессов с приоритетами на универсальные и спец. Спец ОС, обычно, работают с фиксированным набором программ (многофункциональных задач). Применение таких систем обосновано невыполнимостью использования универсальной ОС по суждениям эффективности, надежности, защищенности и т.п., также вследствие специфичности решаемых задач. Универсальные ОС рассчитаны на решение всех задач юзеров, но, обычно, форма эксплуатации вычислительной Обслуживание процессов с приоритетами системы может предъявлять особенные требования к ОС, т.е. к элементам ее специализации. 2. По методу загрузки можно выделить загружаемые ОС (большая часть) и системы, повсевременно находящиеся в памяти вычислительной системы. Последние, обычно, спец и употребляются для управления работой специализированных устройств (к примеру, в БЦВМ баллистической ракеты либо Обслуживание процессов с приоритетами спутника, научных устройствах, автоматических устройствах различного предназначения и др.). 3. По особенностям алгоритмов управления ресурсами. Основным ресурсом системы является микропроцессор, потому дадим систематизацию по методам управления микропроцессором, хотя можно, естественно, систематизировать ОС по методам управления памятью, устройствами ввода-вывода и.т.д. o Поддержка многозадачности (многопрограммности). По числу сразу выполняемых задач Обслуживание процессов с приоритетами ОС делятся на 2 класса: однопрограммные (однозадачные) – к примеру, MS-DOS, MSX, и многопрограммные (многозадачные) – к примеру, ОС ЕС ЭВМ, OS/360, OS/2, UNIX, Windows различных версий. Однопрограммные ОС предоставляют юзеру виртуальную машину, делая более обычным и комфортным процесс взаимодействия юзера с компом. Они также имеют средства регулирования файлами, периферийными устройствами и средства Обслуживание процессов с приоритетами общения с юзером. Многозадачные ОС, не считая того, управляют разделением вместе применяемых ресурсов (микропроцессор, память, файлы и т.д.), это позволяет существенно повысить эффективность вычислительной системы. o Поддержка многопользовательского режима. По числу сразу работающих юзеров ОС делятся: на однопользовательские (MS-DOS, Windows 3х, ранешние версии OS/2) и многопользовательские Обслуживание процессов с приоритетами (UNIX, Windows NT/2000/2003/XP/Vista). Главное отличие многопользовательских систем от однопользовательских – наличие средств защиты инфы каждого юзера от несанкционированного доступа других юзеров. Следует увидеть, что может быть однопользовательская мультипрограммная система. В первом случае активный процесс производится до тех пор, пока он сам не дает управление операционной системе. Во Обслуживание процессов с приоритетами 2-м случае решение о переключении процессов воспринимает операционная система. Вероятен и таковой режим многопрограммности, когда ОС делит процессорное время меж отдельными ветвями (потоками, волокнами) 1-го процесса. o Многопроцессорная обработка. Принципиальное свойство ОС – отсутствие либо наличие средств поддержки многопроцессорной обработки. По этому признаку можно выделить ОС без поддержки мультипроцессирования (Windows Обслуживание процессов с приоритетами 3.x, Windows 95) и с поддержкой мультипроцессирования (Solaris, OS/2, UNIX, Windows NT/2000/2003/XP). Многопроцессорные ОС классифицируются по методу организации вычислительного процесса на асимметричные ОС (производятся на одном микропроцессоре, распределяя прикладные задачки по остальным микропроцессорам) и симметричные ОС (децентрализованная система). 4. По области использования и форме эксплуатации. Обычно тут выделяют три Обслуживание процессов с приоритетами типа в согласовании с использованными при их разработке аспектами эффективности: o системы пакетной обработки (OS/360, OC EC); o системы разделения времени (UNIX, VMS); o системы реального времени (QNX, RT/11). 1-ые предназначались для решения задач в главном вычислительного нрава, не требующих резвого получения результатов. Аспект сотворения таких ОС – наибольшая пропуская Обслуживание процессов с приоритетами способность при неплохой загрузке всех ресурсов компьютера. В таких системах юзер отстранен от 4. Структура ОС Монолитрная Большая часть современных ОС представляют собой отлично структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой-нибудь единой унифицированной архитектуры ОС не существует, но известны универсальные подходы к структурированию ОС. Принципно Обслуживание процессов с приоритетами необходимыми универсальными подходами к разработке архитектуры ОС являются: модульная организация; многофункциональная избыточность; многофункциональная избирательность; параметрическая универсальность; концепция многоуровневой иерархической вычислительной системы, по которой ОС представляется мультислойной структурой; разделение модулей на две группы по функциям: ядро – модули, выполняющие главные функции ОС, и модули, выполняющие вспомогательные функции ОС; разделение модулей ОС Обслуживание процессов с приоритетами на две группы по размещению в памяти вычислительной системы: резидентные, повсевременно находящиеся в оперативки, и транзитные, загружаемые в оперативку лишь на время пополнения собственных функций; реализация 2-ух режимов работы вычислительной системы: привилегированного режима (режима ядра – Kernel mode), либо режима супервизора (supervisor mode), и пользовательского режима (user mode Обслуживание процессов с приоритетами), либо режима задачки (task mode); ограничение функций ядра (а как следует, и количества модулей ядра) до малого количества нужных важнейших функций. 1-ые ОС разрабатывались как цельные системы без верно выраженной структуры (рис. 1.2). При воззвании к системным вызовам, поддерживаемым ОС, характеристики помешаются в строго определенные места, такие как регистры либо стек, а потом Обслуживание процессов с приоритетами производится особая команда прерывания, популярная как вызов ядра либо вызов супервизора. Эта команда переключает машину из режима юзера в режим ядра, именуемый также режимом супервизора, и передает управление ОС. Потом ОС инспектирует характеристики вызова, для того чтоб найти, какой системный вызов должен быть выполнен. После чего ОС регистрирует Обслуживание процессов с приоритетами таблицу, содержащую ссылки на процедуры, и вызывает подобающую функцию. В этот период были разработаны системы с разделением времени (РВ), предоставляющие юзерам возможность конкретно вести взаимодействие с компом при помощи терминалов телетайпного типа (электрическая пишущая машинка, имеющая интерфейс с ЭВМ), а в следующем и при помощи монитора. При работе с такими Обслуживание процессов с приоритетами ОС употребляется диалоговый либо интерактивный режим. Каждому юзеру системы разделения времени предоставляется терминал, с которого он может вести диалог со собственной программкой. Юзер вводит запрос, который обрабатывается и ответ выводится на терминал, что позволяет прирастить эффективность и удобство работы юзера. Пакетный режим обеспечивал повышение пропускной возможности и наивысшую загрузку Обслуживание процессов с приоритетами микропроцессора, отлучая юзера от ЭВМ, в то время как в режиме разделения времени (РРВ) каждый юзер имеет конкретный доступ к ЭВМ через собственный терминал. Сущность разделения времени очень ординарна. Каждой программке, готовой к выполнению, для работы выделяется фиксированный, заблаговременно определенный интервал времени, именуемый квантом. Программка в течение 1-го Обслуживание процессов с приоритетами кванта может быть не выполнена до конца, тогда она прерывается в момент окончания кванта и помещается в конец очереди. Из начала очереди извлекается другая программка, которой планируется фиксированный интервал. При всем этом ни один из юзеров, работающих за экраном, параллельно вместе, никак не чувствует, что микропроцессор мультиплексируется Обслуживание процессов с приоритетами несколькими программками. К этому же периоду относится возникновение первых систем реального времени (СРВ), в каких ЭВМ применяется для управления техническими объектами, такими, к примеру, как станок, спутник, научная экспериментальная установка либо технологическими процессами, такими, как гальваническая линия, доменный процесс и т.п. Во всех этих случаях существует максимально допустимое время, в течение Обслуживание процессов с приоритетами которого должна быть выполнена та либо другая программка, управляющая объектом, в неприятном случае может произойти катастрофа: спутник сойдет с орбиты, экспериментальные данные могут быть потеряны, толщина гальванического покрытия не будет соответствовать норме. Системное программное обеспечение (СПО) ОС этого периода решало огромное количество заморочек, связанных с защитой данных Обслуживание процессов с приоритетами и результатов работы разных программ, защитой данных в оперативки и рассредотачиванием устройств. Не считая того, ОС должна управлять новыми устройствами, входящими в состав аппаратного обеспечения. Для решения этих задач системное программное обеспечение сформировалось в сложную систему, требующую для реализации собственных способностей значимых вычислительных ресурсов. ОС третьего поколения (70-80 г.г.) были многорежимными Обслуживание процессов с приоритетами системами, обеспечивающими пакетную обработку, разделение времени, режим реального времени и мультипроцессорный режим. Они были массивными, дорогостоящими (монстры операционных систем). К примеру, фирме IBM разработка ОС/360 стоила 6 миллиардов. баксов, что соизмеримо с затратами американской программки NASA посадки человека на Луне. Такие ОС, будучи прослойкой, меж юзером и аппаратурой Обслуживание процессов с приоритетами ЭВМ, привели к значительному усложнению вычислительной обстановки. Для выполнения простейшей программки нужно было учить сложные языки управления заданием (JCL – Job Control Language). К этому периоду относится возникновение вытесняющей многозадачности (Preemptive scheduling), и внедрение концепции баз данных для хранения огромных объемов инфы для организации распределенной обработки. Программеры не стали использовать перфокарты Обслуживание процессов с приоритетами и магнитные ленты для хранения собственных данных. Вводится приоритетное планирование (Prioritized scheduling) и выделение квот на внедрение ограниченных ресурсов компов (процессорного времени, дисковой памяти, физической (оперативной) памяти). При использовании компов обширное распространение получила концепция рассредотачивания времени (time sharing) , но ограниченность ресурсов приводила к перегрузке компов и к Обслуживание процессов с приоритетами неприемлемому времени ожидания ответа либо результатов работы. Программерам приходилось восполнить это неудобство работой в ночное время. 20 Семафоры, счетчики событий Синхронизация задач при помощи семафоров Семафоры Дейкстры Обобщающее средство синхронизации процессов предложил Дейкстра, который ввел два новых примитива. В абстрактной форме эти примитивы, обозначаемые Р и V, оперируют над целыми неотрицательными переменными Обслуживание процессов с приоритетами, именуемыми семафорами. Пусть S таковой семафор. Операции определяются последующим образом: V(S) либо wait(s): переменная S возрастает на 1 одним неразделимым действием; подборка, инкремент и запоминание не могут быть прерваны, и к S нет доступа другим процессам во время выполнения этой операции. P(S) либо signal(s): уменьшение S Обслуживание процессов с приоритетами на 1, если это может быть. Если S=0, то нереально уменьшить S и остаться в области целых неотрицательных значений, в данном случае процесс, вызывающий Р-операцию, ожидает, пока это уменьшение станет вероятным. Удачная проверка и уменьшение также является неразделимой операцией. В личном случае, когда семафор S может принимать только Обслуживание процессов с приоритетами значения 0 и 1, он преобразуется в блокирующую переменную. Операция Р заключает внутри себя потенциальную возможность перехода процесса, который ее делает, в состояние ожидания, в то время как V-операция может при неких обстоятельствах активизировать другой процесс, приостановленный операцией Р (сравните эти операции с системными функциями WAIT и POST). Разглядим внедрение семафоров Обслуживание процессов с приоритетами на традиционном примере взаимодействия 2-ух процессов, выполняющихся в режиме мультипрограммирования, один из которых пишет данные в буферный пул, а другой считывает их из буферного пула. Пусть буферный пул состоит из N буферов, любой из которых может содержать одну запись. Процесс "писатель" должен приостанавливаться, когда все буфера оказываются занятыми, и активизироваться Обслуживание процессов с приоритетами при освобождении хотя бы 1-го буфера. Напротив, процесс "читатель" приостанавливается, когда все буферы пусты, и активируется при возникновении хотя бы одной записи. Введем два семафора: е - число пустых буферов и f - число заполненных буферов. Представим, что запись в буфер и считывание из буфера являются критичными секциями (как в примере Обслуживание процессов с приоритетами с принт-сервером в начале данного раздела). Введем также двоичный семафор Ь, применяемый для обеспечения обоюдного исключения. Тогда процессы могут быть описаны последующим образом: // Глобальные переменные #define N 256 int e = N, f = 0, b = 1; void Writer () { while(l) { PrepareNextRecord(); /* подготовка новейшей записи */ P(e); /* Уменьшить число свободных буферов, если они Обслуживание процессов с приоритетами есть в неприятном случае - ожидать, пока они освободятся */ Р(Ь); /* Вход в критичную секцию */ AddToBuffer(); /* Добавить новейшую запись в буфер */ V(b); /* Выход из критичной секции */ V(f); /* Прирастить число занятых буферов */ } } void Reader () { while(l) { P(f); /* Уменьшить число занятых буферов, если они есть в неприятном случае ожидать Обслуживание процессов с приоритетами, пока они появятся Р(Ь); /* Вход в критичную секцию GetFromBuffer(); /* Взять запись из буфера V(b); /* Выход из критичной секции V(e); /* Прирастить число свободных буферов ProcessRecord(); /* Обработать запись } } 24. Неувязка «спящего брадобрея» (о паркмахерской) Описание задачки В парикмахерской есть один брадобрей, его кресло и n стульев Обслуживание процессов с приоритетами для гостей. Если желающих побриться нет, брадобрей посиживает в собственном кресле и дремлет. Если в парикмахерскую приходит клиент, а брадобрей дремлет, клиент будит его. Если же брадобрей занят, то клиент садится на стул либо уходит, если все стулья заняты. Нужно запрограммировать брадобрея и гостей. Предлагаемое решение: Употребляются три семафора: Customers Обслуживание процессов с приоритетами – для подсчета ожидающих гостей (без того, который уже стрижется); Barbers – количество простаивающих в ожидании брадобреев (0 либо 1); Mutex – для реализации обоюдного исключения. Также употребляется переменная waiting для подсчета ожидающих гостей. Она является копией customers и нужна для того, чтоб заглядывающий клиент мог сосчитать количество занятых стульев и уйти, если мест уже нет Обслуживание процессов с приоритетами. При отсутствии неблокирующего ожидания на семафоре копия customers – единственный выход. Решение #define CHAIRS 5 //количество стульев typedef int semaphore; semaphore customers=0; semaphore barbers=0; semaphore mutex=1; int waiting=0; void barber(void) { while(1) { wait(customers); //ожидать гостей wait(mutex); //вход в CS waiting--; //ожидает уже на 1-го меньше signal Обслуживание процессов с приоритетами(barbers); // на 1-го больше брадобрея доступно release (mutex); // выход из СS cut_hair(); //сервис – вне CS } } void customer(void) { wait(mutex); //вход в CS if(waiting MFT зеркальная копия Обслуживание процессов с приоритетами MFT журнальчик для восстановления файл тома определения атрибутов корневой каталог битовый массив использованных блоков исходный загрузчик перечень дефектных блоков описатели защиты для всех файлов таблица преобразований регистра расширения: квоты и т.п. зарезервировано 1-ый файл юзера

В журнальчике регистрируются структурные конфигурации ФС (не считая конфигураций данных).

Любая Обслуживание процессов с приоритетами запись в MFT состоит из последовательности пар (заголовок атрибута, значение). Указывается также длина значения, т.к. некие атрибуты имеют переменную длину. Если значение атрибута довольно куцее, оно помещается в запись MFT, по другому размещается где-либо на диске, а в запись MFT помещается указатель на это место.

Любая Обслуживание процессов с приоритетами запись имеет заголовок, содержащий «магическое число», применяемое для проверки реальности записи.

Дальше идет порядковый номер, обновляемый, когда запись употребляется для нового файла; счетчик воззваний к файлу; действительное количество б, применяемых в записи; идентификатор базисной записи (применяемый в записях расширения).

За заголовком записи следует заголовок первого атрибута, потом значение первого Обслуживание процессов с приоритетами атрибута, позже заголовок второго атрибута и значение второго атрибута – и т.д.

В NTFS определено 13 атрибутов. Некие атрибуты могут повторяться. Если значения атрибутов не располагаются снутри MFT, такие атрибуты именуются нерезидентными.


obsudite-razlichnie-chasti-opisannie-vishe.html
obsuzhdaemie-voprosi-stanovlenie-i-razvitie-paradigmi-lingvisticheskogo-znaniya.html
obsuzhdena-i-utverzhdena-na-zasedanii-kafedri.html