Реферат: Учебное пособие допущен о министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности «Прикладная информатика (в сфере сервиса)» Омск 2005
Федеральное агентство по образованию
Омский государственный институт сервиса
Кафедра высшей математики и информатики
С. Ф. Храпский
ОПЕРАЦИОННЫЕ СИСТЕМЫ, СРЕДЫ И ОБОЛОЧКИ
ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Учебное пособие
Д О П У Щ Е Н О Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности «Прикладная информатика (в сфере сервиса)»
Омск 2005
УДК 681.3
^ Х – 90
Храпский С. Ф.
Операционные системы, среды и оболочки. Основные теоретические сведения: Учебное пособие. – Омск: ОГИС, 2005. – 268 c.
ISBN 5-93252-039-6
Учебное пособие разработано с целью обеспечения обучающихся и преподавателей систематизированным учебным материалом по теоретическим основам операционных систем.
Рассмотрены основные понятия операционных систем, сред и оболочек, вопросы управления процессами и ресурсами, особенности построения перациионных систем для многопроцессорных вычислительных машин и многомашинных вычислительных систем, общие концепции и принципы разработки операционных систем, история развития операционных систем и эволюция их функциональных характеристик. Представлены примеры практической реализации наиболее распространенных современных операционных систем.
Учебное пособие подготовлено в соответствии с требованиями ГОС ВПО специальности 351400 «Прикладная информатика (в сфере сервиса)».
Предназначено для студентов очной и заочной форм обучения специальности 351400 «Прикладная информатика (в сфере сервиса)», изучающих дисциплину «Операционные системы, среды и оболочки». Может быть использовано при изучении ряда смежных дисциплин этой специальности, а также студентами других специальностей, изучающих соответствующие разделы в дисциплинах «Информатика», «Информационные технологии», «Информационные системы».
УДК 681.3
Библиогр.: 18 назв., словарь, алфавитно-предметный указ. (в конце)
Рецензенты:
д-р техн. наук, профессор ^ В. Ю. Юрков
(Сибирская государственная автомобильно-дорожная академия)
канд. техн. наук, доцент В. И. Стариков
(Омский государственный институт сервиса)
Ответственный за выпуск
зав. кафедрой ВМиИ, канд. пед. наук, доцент ^ О. Н. Лучко
ISBN 5-93252-039-6 Омский государственный
институт сервиса, 2005
Оглавление
Предисловие………………………………………...…………………………………….....
Введение……………………………………………………………………………………...
1. Управление процессами в автономных
однопроцессорных вычислительных машинах…………………………...……………
1.1. Понятия вычислительного процесса и ресурса……………………………………..
1.2. Планирование процессов……………………………………………………………..
1.3. Межпроцессное взаимодействие…………………………………………………….
1.4. Понятия потока («нити») и многопоточности………………………………………
Контрольные вопросы и задания…………………………………………………………
^ 2. Управление ресурсами в автономных однопроцессорных компьютерах…….….
2.1. Управление памятью………………………………………………………………….
2.2. Управление вводом-выводом………………………………………………………...
2.3. Управление файлами и файловая система…………………………………………..
Контрольные вопросы и задания…………………...…………………………………….
^ 3. Управление процессами и ресурсами в автономных многопроцессорных
вычислительных машинах……………………………………………………………….
3.1. Реализация операционных систем многопроцессорных вычислительных машин.
3.2.Планирование и синхронизация
в многопроцессорных вычислительных машинах…….................………………......
Контрольные вопросы и задания………………………………………...……………….
^ 4.Управление процессами и ресурсами в многомашинных
вычислительных системах..................................................................................................
4.1. Способы организации управления процессами и ресурсами
в многомашинных вычислительных системах…………………………………………….
4.2. Понятия сетевой и распределенной операционных систем………………………...
4.3. Варианты реализации распределенных операционных систем…………………….
Контрольные вопросы и задания…………………………...…………………………….
^ 5. Общие концепции разработки операционных систем…………………………..
5.1. Основные принципы построения операционных систем …………………………..
5.2. Архитектурные особенности проектирования операционных систем…………….
5.3. Принципы построения системных и прикладных программных интерфейсов…...
Контрольные вопросы и задания……………………...………………………………….
^ 6. История развития операционных систем
и эволюция их функциональных характеристик………………………..……….….....
6.1.Операционные системы разных этапов разработки вычислительных машин..........
6.2. История развития и характеристики операционных систем UNIX.........................
6.3. История развития и характеристики операционных систем семейства Windows..
Контрольные вопросы и задания……………………………...………………………….
^ 7. Пример практической реализации операционной системы: UNIX……………….
7.1. Обзор системы UNIX………………………………………………………………….
7.1.1. Общие представления……………………………………………………………..
7.1.2. Интерфейсы системы UNIX………………………………………………………
7.1.3. Оболочка и утилиты системы UNIX……………………………………………..
7.1.4. Структура ядра системы UNIX…………………………………………………...
7.2. Процессы в UNIX……………………………………………………………………...
7.2.1. Основные понятия…………………………………………………………………
7.2.2. Реализация процессов в UNIX……………………………………………………
7.2.3. Планирование в системе UNIX…………………………………………………...
7.3. Управление памятью в UNIX…………………………………………………………
7.3.1. Основные понятия…………………………………………………………………
7.3.2. Реализация управления памятью в UNIX………………………………………..
7.4. Ввод-вывод в системе UNIX………………………………………………………….
7.4.1. Основные понятия…………………………………………………………………
7.4.2. Реализация ввода-вывода в системе UNIX………………………………………
7.4.3. Потоки данных в UNIX……………………………………….....……...………...
7.5. Файловые системы UNIX……………………………………………………………..
7.5.1. Основные понятия…………………………………………………………………
7.5.2. Реализация классической файловой системы UNIX…………………....………
7.5.3. Реализация файловой системы Berkeley Fast…………………………………...
7.5.4. Реализация файловой системы Linux....................................................................
7.5.5. Реализация файловой системы NFS......................................................................
7.6. Безопасность в UNIX.....................................................................................................
7.6.1. Основные понятия...................................................................................................
7.6.2. Реализация безопасности в UNIX..........................................................................
Контрольные вопросы и задания........................................................................................
^ 8. Пример практической реализации операционной системы: Windows 2000..........
8.1. Обзор структуры операционной систем Windows 2000.............................................
8.1.1. Структура системы..................................................................................................
8.1.2. Реализация объектов................................................................................................
8.1.3. Подсистемы окружения...........................................................................................
8.2. Процессы и потоки в Windows 2000............................................................................
8.2.1. Основные понятия....................................................................................................
8.2.2. Межпроцессное взаимодействие............................................................................
8.2.3. Реализация процессов и потоков............................................................................
8.2.4. Загрузка Windows 2000............................................................................................
8.3. Управление памятью в Windows 2000.........................................................................
8.3.1. Основные понятия....................................................................................................
8.3.2. Реализация управления памятью............................................................................
8.4. Ввод-вывод в системе Windows 2000...........................................................................
8.4.1. Основные понятия....................................................................................................
8.4.2. Реализация ввода-вывода в Windows 2000............................................................
8.5. Файловые системы Windows 2000................................................................................
8.5.1. Файловые системы типа FAT.................................................................................
8.5.2. Файловая система типа NTFS.................................................................................
8.6. Безопасность в Windows 2000.......................................................................................
8.6.1. Основные понятия....................................................................................................
8.6.2. Реализация защиты в Windows 2000......................................................................
Контрольные вопросы и задания........................................................................................
Заключение..............................................................................................................................
^ Библиографический список.................................................................................................
Словарь терминов и определений......................................................................................
^ Алфавитно-предметный указатель....................................................................................
5
6
8
8
11
23
28
34
35
35
46
51
66
67
67
72
82
83
83
91
93
99
100
100
107
115
121
122
122
129
132
140
141
141
141
141
142
144
146
146
150
153
157
157
160
165
165
168
170
172
172
175
177
178
180
187
187
189
191
193
193
193
203
208
211
211
214
217
221
223
223
227
234
234
235
239
239
242
249
249
254
251
255
260
262
265
Предисловие
Учебное пособие предназначено для студентов очной и заочной форм обучения специальности 351400 «Прикладная информатика (в сфере сервиса)», изучающих дисциплину «Операционные системы, среды и оболочки», и разработано с целью обеспечения обучающихся и преподавателей систематизированным учебным материалом по теоретическим основам операционных систем.
Рассмотрены основные понятия операционных систем, сред и оболочек, вопросы управления процессами и ресурсами, особенности построения операционных систем для многопроцессорных вычислительных машин и многомашинных вычислительных систем, общие концепции и принципы разработки операционных систем. Приведены краткие исторические сведения о возникновении и развитии операционных систем, а также даны оценки их свойств и характеристик. В качестве примеров практической реализации реально функционирующих современных операционных систем описаны наиболее распространенные и «знаковые» системы семейств UNIX и Windows.
Представленные в учебном пособии сведения могут найти применение при изучении ряда смежных дисциплин специальности 351400 «Прикладная информатика (в сфере сервиса)», а также соответствующих разделов в дисциплинах «Информатика», «Информационные технологии», «Информационные системы» других специальностей.
Учебное пособие подготовлено кандидатом технических наук, проректором ОГИС по информационным технологиям Сергеем Филипповичем Храпским.
В разделах 7 и 8 использованы материалы книги Э. Таненбаума «Современные операционные системы» (см. Библиографический список).
Данное учебное пособие по порядку изучения является следующим за учебным пособием С.Ф. Храпского «Вычислительные системы, сети и телекоммуникации» (ОГИС, 2005 г.). Поэтому при изложении материала предполагается наличие у читателя предварительных знаний по основным понятиям и терминологии вычислительной техники.
Автор
Введение
Операционные системы являются основой программного обеспечения вычислительных машин (и их систем – вычислительных систем). Операционная система (далее – ОС) – это комплекс управляющих и обрабатывающих программ, который, с одной стороны, выступает как интерфейс между пользователем (с его задачами) и аппаратными компонентами вычислительных машин (далее – ВМ) и вычислительных систем (далее – ВС), а с другой стороны предназначен для эффективного управления вычислительными процессами, а также наиболее рационального распределения и использования вычислительных ресурсов ВМ и ВС.
Обеспечение пользователю определенного уровня удобств осуществляется посредством того, что ОС представляет для него так называемую «расширенную» (или виртуальную) машину, которая избавляет пользователя от необходимости работать напрямую с аппаратными компонентами и берет на себя выполнение большинства рутинных операций. Таким образом, абстрактная «расширенная» машина, с которой, благодаря ОС, имеет дело пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины.
Идея о том, что ОС прежде всего система, обеспечивающая удобный интерфейс пользователям, соответствует рассмотрению ее сверху вниз. Другой взгляд, снизу вверх, дает представление об ОС как о некотором механизме, распределяющим и управляющим всеми компонентами и ресурсами ВМ и ВС с целью обеспечения максимальной эффективности их функционирования.
Таким образом, ОС выполняет функции управления вычислительными процессами в ВМ и ВС, распределяет ресурсы ВМ и ВС между различными вычислительными процессами и образует программную среду, в которой выполняются прикладные программы пользователей. Такая среда называется операционной средой.
Благодаря наличию операционной системы пользователи-программисты при написании собственных программ могут вообще не знать многих деталей управления конкретными ресурсами ВМ и ВС, а должны только обращаться к ОС как к некоторой программной подсистеме с соответствующими вызовами и получать от нее необходимые функции и сервисы. Набор таких функций и правил обращения к ним как раз и образуют то базовое понятие, которое называют операционной средой. Таким образом можно сказать, что термин «операционная среда» означает, прежде всего, соответствующие интерфейсы, необходимые программам и пользователям для обращения к ОС с целью получить определенные сервисы.
Параллельное существование терминов «операционная система» и «операционная среда» вызвано тем, что операционная система в общем случае может поддерживать несколько операционных сред. Операционная среда в свою очередь может включать несколько разных пользовательских и программных интерфейсов. Например, ряд ОС предоставляют для пользователя интерфейсы командной строки, интерфейсы-оболочки (типа Norton Commander и т.п.), а также графические интерфейсы. Если же говорить о программных интерфейсах, то это те интерфейсы, к которым могут обращаться программисты для получения соответствующих функций и сервисов. Можно сказать, что операционная среда – это то системное программное окружение, в котором могут выполняться программы, созданные по правилам работы этой среды.
Операционная система в значительной степени определяет функциональные возможности, удобства пользования и эффективность работы ВМ и ВС. На сегодняшний день существует большое количество разных типов ОС, отличающихся областями применения, аппаратными платформами и методами реализации. Естественно, это обуславливает и значительные функциональные различия этих ОС. Поэтому при изучении операционных систем очень важно из всего многообразия выделить те функции, которые присущи всем операционным системам как классу программных продуктов. Именно общие понятия ОС, концепции их построения и функциональные возможности являются предметами рассмотрения данного учебного пособия. В заключительных разделах учебного пособия уделено внимание историческим сведениям о возникновении и развитии ОС, а также даны оценки свойств и характеристик современных ОС. Представлены примеры практического построения, состава и особенностей функционирования наиболее популярных и эффективных операционных систем.
1. Управление процессами в автономных
однопроцессорных вычислительных машинах
1.1. Понятия вычислительного процесса и ресурса
Понятие «вычислительный процесс» (или просто – процесс) является одним из основных при рассмотрении операционных систем. Под процессом обычно понимается последовательность операций при выполнении программы или ее части в совокупности с используемыми данными. В общем случае процесс и программа представляют собой разные понятия. Программа – это план действий, а процесс – это само действие, поэтому понятие процесса включает программный код, данные, содержимое стека, содержимое адресного и других регистров процессора. Таким образом, для одной программы могут быть созданы несколько процессов в том случае, если с помощью одной программы в центральном процессоре (central processor unit – CPU) вычислительной машины выполняется несколько несовпадающих последовательностей команд.
По временным характеристикам различают интерактивные процессы, пакетные процессы и процессы реального времени. Время существования интерактивного процесса определяется реакцией ВМ на запрос обслуживания и составляет секунды. Процессы реального времени имеют гарантированное время окончания работы, а время реакции измеряется долями секунды. Пакетные процессы запускаются один вслед за другим, а время реакции составляет часы и более.
По генеалогическому признаку различают порождающие и порожденные процессы.
По результативности различают эквивалентные, тождествен-ные и равные процессы. Все они имеют одинаковый конечный результат, нo эквивалентные процессы могут реализовываться как на одном, так и на многих процессорах по одному или разным алгоритмам, то есть они имеют разные трассы, которые определяют порядок и длительность пребывания процесса в разных состояниях. Тождественные процессы реализуются по одной и той же программе, но имеют разные трассы. Равные (или одинаковые процессы) реализуются по одной программе и имеют одинаковые трассы.
По времени развития процессы делятся на последовательные, параллельные и комбинированные (для последних есть точки, в которых существуют оба процесса, и точки, в которых существует только один процесс).
По месту развития процессы делятся на внутренние (реализуются на центральном процессоре) и внешние (реализуются на внешних процессорах).
По принадлежности к операционной системе процессы бывают системные (исполняют программу из состава операционной системы) и пользовательские.
По связности различают процессы:
а) взаимосвязанные – имеющие какую-то связь (пространственно-временную, управляющую, информационную);
б) изолированные – слабо связанные;
в) информационно-независимые – использующие совместные ресурсы, но имеющие собственные информационные базы;
г) взаимодействующие – имеющие информационные связи и разделяющие общие структуры данных;
д) взаимосвязанные по ресурсам;
е) конкурирующие.
Порядок взаимосвязи процессов определяется правилами синхронизации. Процессы могут находиться в отношении:
а) предшествования – когда один процесс всегда находится в активном состоянии раньше, чем другой;
б) приоритетности – когда процесс может быть переведен в активное состояние только в том случае, если в состоянии готовности нет процессов с более высоким приоритетом, или если свободен процессор, или если на процессоре реализуется процесс с меньшим приоритетом;
в) взаимного исключения – когда в процессе используется общий критический ресурс, и процессы не могут развиваться одновременно (если один из них использует критический ресурс, то другой находится в состоянии ожидания).
Примерами процессов являются прикладные программы пользователей, утилиты и другие системные обрабатывающие программы. Процессами могут быть редактирование какого-либо текста, трансляция исходной программы, ее компоновка, исполнение. При этом трансляция какой-нибудь исходной программы является одним процессом, а трансляция следующей исходной программы – другим процессом, хотя транслятор (как объединение программных модулей) здесь выступает как одна и та же программа, но обрабатываемые им данные являются разными.
Определение концепции процесса преследует цель выработать механизмы распределения и управления так называемыми «ресурсами», которые также относятся к числу важнейших понятий ОС.
Ресурс – это любой потребляемый (расходуемый) объект. По запасам ресурсы подразделяются на исчерпаемые и неисчерпаемые. Потребители ресурсов – процессы. Ресурс – это средство вычисли-тельной машины или вычислительной системы, которое может быть выделено процессу на определенный интервал времени.
Ресурсы классифицируются по следующим свойствам:
а) по признаку реальности – на физические и виртуальные (последние только в отдельных свойствах схожи с физическими ресурсами);
б) по возможности расширения свойств – на эластичные и жесткие (не допускающие расширяемости);
в) по степени активности – на пассивные и активные (способные выполнять действия по отношению к другим ресурсам);
г) по времени существования – на постоянные (доступные на протяжении всего времени существования процесса, а также до и после его работы) и временные;
д) по степени важности – на основные и второстепенные (допускающие альтернативное развитие процесса);
е) по функциональной избыточности при распределении – на дорогие (но предоставляемые быстро) и дешевые (но предоставляемые с ожиданием);
ж) по структуре – на составные и простые (которые не содержат составных элементов и могут находиться только в одном из двух состояний: «доступен» или «занят»);
з) по характеру использования – на потребляемые и воспроизводимые (допускающие многократное использование и освобожде-ние), а также – на используемые последовательно и используемые параллельно (использующиеся несколькими процессами);
и) по форме реализации – на жесткие (не допускающие копирования) и мягкие (допускающие тиражирование и в свою очередь подразделяющиеся на программные и информационные ресурсы).
Примерами ресурсов являются некоторые аппартные устройства ВМ (процессоры, запоминающие устройства, устройства ввода-вывода) или некоторые наборы информации (в частности, совокупности записей определенной структуры – так называемые «файлы»).
^ 1.2. Планирование процессов
Важнейшей частью операционной системы, непосредственно влияющей на функционирование вычислительной машины, является подсистема управления процессами. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов. Подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами.
За время своего существования процесс многократно изменяет свое состояние. Обычно различают следующие состояния процесса:
• новый (процесс только что создан);
• готовый (процесс ожидает освобождения CPU);
• выполняемый (команды программы выполняются в CPU);
• ожидающий (процесс ожидает завершения некоторого события, чаще всего операции ввода-вывода);
• завершенный (процесс завершил свою работу).
Переход из одного состояния в другое не может выполняться произвольным образом. Каждый процесс представлен в операционной системе набором данных, называемых «^ таблица управления процессом» или сокращенно – ТУП (process control block – РСВ). В ТУП процесс описывается набором значений и параметров, характе-ризующих его текущее состояние и используемых операционной системой для управления прохождением процесса через ВМ.
Распределение процессов между имеющимися ресурсами носит название «планирование процессов».
На протяжении существования процесса его выполнение может быть многократно прервано и продолжено. Для того, чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды. Состояние операционной среды отображается состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых процессом системных вызовов и т.д. Эта информация называется контекстом процесса. Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, место нахождения кодового сегмента и другая информация. Информацию такого рода, используемую в некоторых ОС для планирования процессов, называют дескриптором процесса. Дескриптор процесса по сравнению с контекстом содержит более оперативную информацию, которая должна быть легко доступна подсистеме планирования процессов. Контекст процесса содержит менее актуальную информацию и используется операционной системой только после того, как принято решение о возобновлении прерванного процесса.
Одним из методов планирования процессов, ориентированных на эффективную загрузку ресурсов, является метод очередей ресурсов. Новые процессы находятся во входной очереди, часто называемой очередью работ – заданий. Входная очередь располагается во внешней памяти, во входной очереди процессы ожидают освобождения ресурса – адресного пространства основной памяти. Готовые к выполнению процессы располагаются в основной памяти и связаны очередью готовых процессов. Процессы в этой очереди ожидают освобождения ресурса «процессорное время». Выделение процессу процессорного времени производится многократно с целью достижения внешнего эффекта как бы «одновременного» выполнения нескольких программ. Такой механизм называется диспетчеризацией.
Процесс в состоянии ожидания, например, завершения операции ввода-вывода находится в одной из очередей к оборудованию ввода-вывода. Таким образом при прохождении через ВМ процесс мигрирует между различными очередями под управлением программы, которая называется «планировщик» (scheduler).
Очереди процессов представляют собой дескрипторы отдельных процессов, объединенные в списки. Каждый дескриптор, кроме всего прочего, содержит по крайней мере один указатель на другой дескриптор, соседствующий с ним в очереди. Такая организация очередей позволяет легко их переупорядочивать, включать и исключать процессы, переводить процессы из одного состояния в другое.
Планирование процессов включает в себя решение следующих задач:
1) определение момента времени для смены выполняемого процесса;
2) выбор процесса на выполнение из очереди готовых процессов;
3) переключение контекстов «старого» и «нового» процессов.
Первые две задачи решаются программными средствами, а последняя – в значительной степени аппаратно.
Существует множество различных алгоритмов планирования процессов, по-разному решающих вышеперечисленные задачи, преследующих различные цели и обеспечивающих различную степень многозадачности. Среди этого множества алгоритмов рассмотрим подробнее две группы наиболее часто встречающихся алгоритмов: алгоритмы, основанные на квантовании, и алгоритмы, основанные на приоритетах.
В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит в следующих случаях:
– процесс завершился и покинул систему;
– произошла ошибка;
– процесс перешел в состояние «ожидание»;
– исчерпан квант процессорного времени, отведенный данному процессу.
Процесс, который исчерпал свой квант, переводится в состояние «готовый» и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответствии с определенным правилом выбирается новый процесс из очереди готовых. Таким образом, ни один из процессов не занимает процессор надолго, поэтому квантование широко используется в системах разделения времени.
Кванты, выделяемые процессам, могут быть одинаковыми для всех процессов или различными. Кванты, выделяемые одному процессу, могут быть фиксированной величины или изменяться в разные периоды жизни процесса. Процессы, которые не полностью использовали выделенный им квант (например, из-за ухода на выполнение операций ввода-вывода), могут получить или не получить компенсацию в виде привилегий при последующем обслуживании. Очередь готовых процессов может быть организована циклически по правилу FCFS (First Come First Served – «первым пришел – первым обслужен»), часто называемого правилом FIFO (First In First Out – «первым вошел – первым вышел»), или по правилу стека LCFS (Last Come First Served – «последним пришел – первым обслужен»), имеющего также наименование правила LIFO (Last In First Out – «последним вошел – первым вышел»).
Другая группа алгоритмов использует понятие «приоритет» процесса. Приоритет – это число, характеризующее степень привилегированности процесса при использовании ресурсов ВМ, в частности, процессорного времени: чем выше приоритет, тем выше привилегии. Приоритет может выражаться целым или дробным, положительным или отрицательным значением. Чем выше привилегии процесса, тем меньше времени он будет проводить в очередях. Приоритет может назначаться директивно администратором системы в зависимости от важности работы или внесенной платы, либо вычисляться самой ОС по определенным правилам. Приоритет может оставаться фиксированным на протяжении всей жизни процесса либо изменяться во времени в соответствии с некоторым законом. В последнем случае приоритеты называются динамическими.
Существует две разновидности приоритетных алгоритмов: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты.
В обоих случаях выбор процесса на выполнение из очереди готовых осуществляется одинаково: выбирается процесс, имеющий наивысший приоритет. По-разному решается проблема определения момента смены активного процесса. В системах с относительными приоритетами активный процесс выполняется до тех пор, пока он сам не покинет процессор, перейдя в состояние «ожидание» (или же произойдет ошибка, или процесс завершится). В системах с абсолютными приоритетами выполнение активного процесса прерывается еще при одном условии: если в очереди готовых процессов появился процесс, приоритет которого выше приоритета активного процесса. В этом случае прерванный процесс переходит в состояние готовности.
Во многих операционных системах алгоритмы планирования построены с использованием как квантования, так и приоритетов. Например, в основе планирования лежит квантование, но величина кванта и/или порядок выбора процесса из очереди готовых определяется приоритетами процессов.
Существует два основных типа процедур планирования процессов – вытесняющие (preemptive) и невытесняющие (non-preemptive).
Невытесняющая многозадачность (non-preemptive multitasking) – это способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление планировщику операционной системы для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс.
Вытесняющая многозадачность (preemptive multitasking) – это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается планировщиком операционной системы, а не самой активной задачей.
Вытесняющая и невытесняющая многозадачность – это более широкие понятия, чем типы приоритетности. Приоритеты задач могут как использоваться, так и не использоваться как при вытесняющих, так и при невытесняющих способах планирования процессов. Например, в случае использования приоритетов дисциплина относительных приоритетов может быть отнесена к классу систем с невытесняющей многозадачностью, а дисциплина абсолютных приоритетов – к классу систем с вытесняющей многозадачностью. Бесприоритетная дисциплина планирования, основанная на выделении равных квантов времени для всех задач, относится к вытесняющим алгоритмам.
Основным различием между вытесняющими и невытесняющими вариантами многозадачности является степень централизации механизма планирования задач.
При вытесняющей многозадачности механизм планирования задач целиком сосредоточен в операционной системе, а программист пишет свое приложение, не заботясь о том, что оно будет выполняться «параллельно» с другими задачами. При этом ОС выполняет следующие функции: определяет момент снятия с выполнения активной задачи, запоминает ее контекст, выбирает из очереди готовых задач следующую и запускает ее на выполнение, загружая ее контекст.
При невытесняющей многозадачности механизм планирования распределен между ОС и прикладными программами. Прикладная программа, получив управление от ОС, сама определяет момент завершения своей очередной итерации и передает управление ОС с помощью какого-либо системного вызова, а ОС формирует очереди задач и выбирает в соответствии с некоторым алгоритмом (например, с учетом приоритетов) следующую задачу на выполнение. Такой механизм создает проблемы как для пользователей, так и для разработчиков. Для пользователей это означает, что управление системой теряется на произвольный период времени, который определяется приложением (а не пользователем). Если приложение тратит слишком много времени на выполнение какой-либо работы, например, на форматирование диска, пользователь не может переключиться с этой задачи на другую задачу, например, на текстовый редактор, в то время как форматирование могло бы продолжаться в фоновом режиме.
Поэтому разработчики приложений для невытесняющей операционной среды, возлагая на себя функции планировщика, должны создавать приложения так, чтобы они выполняли свои задачи небольшими частями. Например, программа форматирования может отформатировать одну дорожку дискеты и вернуть управление системе. После выполнения других задач система возвратит управление программе форматирования, чтобы та отформатировала следующую дорожку. Подобный метод разделения времени между задачами работает, но он существенно затрудняет разработку программ и предъявляет повышенные требования к квалификации программиста. Программист должен обеспечить «дружественное» отношение своей программы к другим выполняемым «одновременно» с ней программам, достаточно часто отдавая им управление. Крайним проявлением «недружественности» приложения является его «зависание», которое приводит к общему краху системы. В системах с вытесняющей многозадачностью такие ситуации, как правило, исключены, так как центральный планирующий механизм снимет «зависшую» задачу с выполнения.
Однако распределение функций планировщика между ОС и приложениями не всегда является недостатком, а при определенных условиях может быть и преимуществом, потому что дает возможность разработчику приложений самому проектировать алгоритм планирования, наиболее подходящий для данного фиксированного набора задач. Так как разработчик сам определяет в программе момент времени передачи управления, то при этом исключаются нерациональные прерывания программ в «неудобные» для них моменты времени. К
еще рефераты
Еще работы по разное
Реферат по разное
Учебное пособие предназначено для студентов экономических вузов всех форм обучения, аспирантов, преподавателей, может быть полезно работникам инвестиционной сферы. © Попков В. П., Семенов В. П., 2001 © Издательский дом "Питер", 2001
17 Сентября 2013
Реферат по разное
Давид Александрович Каменецкий Неврозология и психотерапия учебное пособие
17 Сентября 2013
Реферат по разное
Учебное пособие Издательство тпу томск 2007
17 Сентября 2013
Реферат по разное
Учебное пособие Рекомендовано учебно-методическим советом угаэс уфа-2008
17 Сентября 2013