Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SysSoft.doc
Скачиваний:
523
Добавлен:
16.03.2016
Размер:
4.36 Mб
Скачать

Часть 1 6

Операционные системы и среды 6

ГЛАВА 1 Основные понятия 12

Понятие операционной среды 12

Понятия вычислительного процесса и 15

ресурса 15

Диаграмма состояний процесса 21

Реализация понятия последовательного процесса в ОС 25

Процессы и треды 28

Прерывания 34

Основные виды ресурсов 43

Классификация операционных систем 49

Контрольные вопросы и задачи 51

ГЛАВА 2 Управление задачами и памятью в операционных системах 52

Планирование и диспетчеризация процессов и задач 55

Сегментная, страничная и сегментно-страничная организация памяти 88

Распределение оперативной памяти в 105

современных ОС для ПК 105

Контрольные вопросы и задачи 119

ГЛАВА 3 120

Особенности архитектуры 120

микропроцессоров i80x86 120

Реальный и защищённый режимы работы процессора 121

Новые системные регистры 123

микропроцессоров i80x86 123

Адресация в 32-разрядных микропроцессорах i80х86 при работе в защищённом режиме 125

Контрольные вопросы и задачи 156

ГЛАВА 4 Управление 158

вводом/выводом и файловые системы 158

Основные понятия и концепции организации ввода/вывода в ОС 159

Режимы управления вводом/выводом 163

Закрепление устройств, общие устройства ввода/вывода 166

Основные системные таблицы 167

ввода/вывода 167

Синхронный и асинхронный ввод/вывод 173

Кэширование операций ввода/вывода при 176

работе с накопителями на магнитных 176

дисках 176

Функции файловой системы ОС и иерархия данных 181

Структура магнитного диска (разбиение дисков на разделы) 184

Файловая система FAT 194

Файловая система NTFS (New Technology File System) 225

Контрольные вопросы и задачи 238

Глава 5 Архитектура операционных систем и интерфейсы прикладного 240

программирования 240

Основные принципы построения 241

операционных систем 241

Контрольные вопросы и задачи 278

Глава 6 Проектирование параллельных взаимодействующих вычислительных 279

процессов 279

Независимые и взаимодействующие 280

вычислительные процессы 280

Средства синхронизации и связи при 287

проектировании взаимодействующих 287

вычислительных процессов 287

Использование семафоров при 311

проектировании взаимодействующих 311

вычислительных процессов 311

Мониторы Хоара 320

Почтовые ящики 325

Конвейеры и очереди сообщений 329

Примеры создания параллельных 333

взаимодействующих вычислительных 333

процессов 333

Контрольные вопросы и задачи 347

Глава 7 Проблема тупиков и методы 348

борьбы с ними 348

Понятие тупиковой ситуации при 348

выполнении параллельных вычислительных процессов 348

Примеры тупиковых ситуаций и причины их возникновения 351

Формальные модели для изучения проблемы тупиковых ситуаций 357

Методы борьбы с тупиками 371

Контрольные вопросы и задачи 390

Глава 8 Современные операционные 391

системы 391

Семейство операционных систем UNIX 391

Функционирование системы UNIX 400

Операционная система Linux 422

Семейство операционных систем OS/2 Warp компании IBM 425

Сетевая ОС реального времени QNX 437

Контрольные вопросы и задачи 451

ПРИЛОЖЕНИЕ А 452

ПРИЛОЖЕНИЕ Б 459

Список литературы 468

1Здесь и далее без указания на источник заимствования приводятся английские эквиваленты слов и словосочетаний

1Сервис(service)–обслуживание, выполнение соответствующего запроса

1Nativeродной.

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

1Например, дисциплина «последний пришедший обслуживается первым» определяет об­служивание в порядке, обратном очерёдности поступления соответствующих запросов

1Устройство называется «инициативным», если по сигналу запроса на прерывание от него должна запускаться некоторая задача

1TSS (task state segment) –сегмент состояния задачи.

2Thread –поток, нить.

1CPU (central processing unit) –центральное обрабатывающее устройство или просто процессор.

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

2Процесс обращения к данным

1Reenterable – (дословно) допускающий повторные обращения (к модулю).

1К сожалению, здесь наблюдается терминологическая несогласованность. Собственно мо­дули супервизора, отвечающие за диспетчеризацию задач, часто называют планировщи­ками (sheduler).Но фактически, говоря о тех же планировщиках памяти или о каких-нибудь других модулях, отвечающих за динамическое распределение ресурсов, имеют в виду, что эти планировщики осуществляют диспетчеризацию. Наконец, иногда диспет­черизацию называют краткосрочным планированием.

1Time slice –квант времени.

1Dynamic priority variation.

1Как известно, одно время компания Microsoftпринимала активное участие в разработке OS/2 совместно с IBM.Поэтому после прекращения совместных работ над этой операционной системой и начале нового проекта многие решения из OS/2 были унаследованы в варианте OS/2 ver. 3.0,названной впоследствии Windows NT.

2Regular.

1Priority boost

2Строка MAXWAIT=lозначает, что приоритет задачи при переключении на неё будет поднят до максимального не позже чем через одну секунду.

1От overlay –перекрытие, расположение поверх чего-то.

1Partition, region –раздел.

1Обычно на практике для загрузки центрального процессора до уровня 90 % необходимо, чтобы коэффициент мультипрограммирования был не менее 4-5. А для того, чтобы наи­более полно использовать и остальные ресурсы системы, желательно иметьна уров­не 10-15.

1MVT (multiprogramming with a variable number of tasks) – мультипрограммирование с переменным числом задач. Эта ОС была одной из самых распространённых при эксплуатировании больших ЭВМ классаIBM 360 (370).

1Их называют «дисциплинами замещения».

1OS/2 v.l начала создаваться в 1984 г. и вышла в продажу в 1987 г.

1В системе Windows NTфайл с выгруженными виртуальными страницами носит назва­ние PageFile.sys.Таких файлов может быть несколько. Их совокупная длина должна быть не меньше, чем объём физической памяти компьютера плюс 11 Мб, необходимые для самой Windows NT.В системах Windows 2000размер файла PageFile.sysнамного превышает объём установленной физической памяти и часто достигает многих сотен ме­габайт.

1Широко известно, что было много версий ОС, которые мы, упрощая ситуацию, относим к MS-DOS. MS-DOS – это вариант фирмы Microsoftреализации дисковой операционной системы [3, 28]. Фирма Microsoftпрекратила разработку подобных систем, и послед­ней их реализацией была MS-DOS 6.22.Были (и есть ныне) реализации такого рода систем и от других разработчиков. Поскольку у MS-DOS 6.22существуют известные проблемы с 2000 годом, большой популярностью пользуется PC-DOS 7.0от IBM.

1TSR (terminate and stay resident) –резидентная в памяти программа, которая благодаря изменениям в таблице векторов прерываний позволяет перехватывать прерывания и в случае обращения к ней выполнять необходимые нам действия. Подробно об этом можно прочесть, например, в книгах [3, 23, 24, 35].

2POST (power on self test) –программа самотестирования при включении компьютера. После выполнения этой программы, входящей в состав ROM BIOS,опрашиваются уст­ройства, которые могут содержать программы для загрузки ОС.

1DLL (dynamic link library) –динамически загружаемый библиотечный модуль.

1Программа SysMon.exeвходит в состав штатного программного обеспечения Win­dows 95/98,но при инсталляции этих ОС на ПК в режиме «обычная» (установка), а не «по выбору», не устанавливается.

2DDE(Dynamic Data Exchange) –механизм динамического обмена данными.

3OLE (Object Linking and Embedding) –механизм связи и внедрения объектов.

1GDI (Graphics Device Interface) –интерфейс графических устройств.

1На самом деле, поскольку происходит именно сложение и каждое из слагаемых может иметь значение в интервале от нуля до 216-1 = 65535= 64К, мы можем указать адрес на­чала сегмента, равный FFFFFFFF00H,и к нему прибавить смещение FFFFFFFFH.В этом случае мы получим переполнение разрядной сетки, но для современных 32-битовых про­цессоров (и для уже забытого i80286) имеется возможность указать первые 64 Кбайт выше первого мегабайта.

1TR – task register.

2TSS – task state segment.

1GDTR– global descriptor table register.

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

1В микропроцессорах i80x86линейным называется адрес, полученный в результате преобразования виртуального адреса формата (S, d)в 32-битовый адрес.

2EIP (extended instruction pointer) –указатель инструкции (команды).

1Напомним, что терминпикселпроисходит от английского picture element(графический элемент). Множество пикселов образуют изображение.

1Речь идёт о памяти, портах ввода/вывода, системе обработки прерываний и других архи­тектурных особенностях.

1PL (privilege level) –уровень привилегий.

2RPL (requested privilege level) –запрашиваемый уровень привилегий. Поле RPL определяется программистом (системой программирования). В отличие от поля DPL поле RPL легко может быть изменено.

1EPL (effective privilege level) –эффективный уровень привилегий. Значение эффектив­ного уровня привилегий определяется минимальной привилегией, то есть как макси­мальное значение из двух: RPL и DPL.

1FAR CALL –межсегментный вызов процедуры.

1WC (Word Counter) –счётчик слов, см. рис. 3.11.

1Trap Flag –специальный бит в регистре PSW (program status word,слово состояния про­граммы), который в случае значения TF=1вызывает «останов» после каждой команды и генерируется прерывание для организации режима отладки с пошаговым выполнением программы. Чаще всего этот регистр в микропроцессорах Intel 80х86называютрегистром флагов.

2Сигнал запроса на прерывание чаще всего является сигналом готовности внешнего уст­ройства (соответствующего контроллера внешнего устройства) на выполнение следую­щей команды, связанной с управлением операциями ввода/вывода.

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

2IRQ (Interrupt Request) –запрос на прерывание.

1Исключение –это определенный вид внутреннего прерывания. Этим термином, во-пер­вых, обозначают некоторое множество синхронных прерываний, а во-вторых, подчерки­вают, что ситуация, вызвавшая запрос на прерывание, является исключительной, то есть, отличается от обычной.

1Инициативнымназывают такое устройство (обычно это датчики, внешнее устройство, а не устройство ввода/вывода), по сигналу прерывания от которого запускается соответ­ствующая ему программа. Такая программа, с одной стороны, не является драйвером, и управлять операциями обмена данными нет необходимости. Но, с другой стороны, за­пуск такой программы осуществляется именно по событиям, связанным с генерацией устройством ввода/вывода соответствующего сигнала. Разница между драйверами, рабо­тающими по прерываниям, и инициативными программами заключается в статусе этих программных модулей. Драйвер является компонентом операционной системы и часто выполняется не как вычислительный процесс, а как системный объект, а инициативная программа является обычным вычислительным процессом, только его запуск осуществ­ляется по инициативе внешнего устройства.

1Такой файл называютспул-файлом (spool-file).

1C-H-S (cylinder-head-sector) –номер цилиндра, номер головки и номер сектора.

1Disk cache –кэш диска.

1Chunk –кусочек.

1В MS-DOS, OS/2, Windows 95, Windows NT, Linuxимеется поддержка работы с файла­ми, организованными по принципам FAT.Однако программные модули соответствую­щих файловых систем не взаимозаменяемы. Кроме этого, все эти файловые системы имеют свои индивидуальные особенности и ограничения. Таким образом, иногда только из контекста ясно, о чём идет речь – о принципах работы файловой системы или о её конкретной реализации.

1НЖМДобычно называется «винчестером» – так в свое время стали называть одну из первых моделей НЖМД, которая имела обозначение «30/30» и этим напоминала марки­ровку известного оружия. Возможно, также, что название происходит от места первона­чальной разработки – филиала фирмы IBMв г. Винчестере (Великобритания), где впервые в 1973 г. была применена технология создания винчестеров.

2Это справедливо, конечно, не для всех дискет. Однако для современных 3.5" дискет мы действительно имеем 80 цилиндров, две рабочие поверхности и по 18 секторов на каждой дорожке, что в итоге дает нам 2х80х18х512=1474560 байтов (или 1,44 Мбайт).

1Невидимыми они являются только для тех систем, которые используют спецификацииDOS.

1Например, число 10 000-15 000 файлов (или даже более, особенно когда файлы неболь­шого размера) на логическом диске с объёмом в 1000 Мбайт встречается достаточно часто.

2В файловой системе FAT32 в 32-битовом слове, используемом для представления номе­ра кластера, фактически учитываются только 28 разрядов, что приводит к тому, что дли­на FATв этой системе не может превышать 228элементов.

1Поскольку файловая система FAT32 нынче имеет очень широкое распространение, мы считаем, что информация, приведенная в табл. 4.6, может быть полезна.

1Для программных модулей, имеющих такую структуру, может использоваться и расши­рение BIN.

1В некоторых операционных системам, в частности в Novell Netware,используется один или два дополнительных разряда атрибутов.

1Так, со стороны компании Microsoftпроектом руководил известный системный програм­мист Gordon Letwin.

2Расширенные атрибуты (extended attributes, EAs)позволяют хранить дополнительную информацию о файле. Например, каждому файлу может быть сопоставлено его уникаль­ное графическое изображение (значок или «фотография»), описание файла, коммента­рий, сведения о владельце файла и т. д.

3Extended Atributes (EAs) –расширенные атрибуты.

4Экстенты (extent) –фрагменты файла, располагающиеся в смежных секторах диска. Файл имеет по крайней мере один экстент, если он не фрагментирован, а в противном случае – несколько экстентов.

5Эта задержка обусловлена тем, что система вынуждена ждать, пока диск не повернется таким образом, что нужный сектор окажется под головкой чтения/записи.

1Bit map –битовая карта.

1По сути дела,том (volume) –это не что иное, как раздел или логический диск.

2Блок параметров BIOSсодержит информацию о жестком диске – количество цилиндров и головок диска, число секторов на дорожке. Эта информация используется программ­ными модулями HPFS для поиска конкретного сектора (блока), поскольку все блоки пронумерованы 32-разрядными числами.

1Файловый узел(F-Node) – это структура, в которой содержится информация о располо­жении файла и о его расширенных атрибутах.

2ACL (access control list) –список прав доступа к данному файлу или объекту.

1Из этого следует, что максимальный объём диска может составлять (232–l)x512=2 Тбайта.

1IFS (installable file system) –устанавливаемая, монтируемая система управления файлами.

1Foreground session –сессия «переднего плана», то есть та задача, с которой сейчас работа­ет пользователь, окно этой задачи является активным.

2Background session –«фоновая сессия», то есть задача, запущенная пользователем, но в настоящий момент не находящаяся непосредственно в работе. Говорят, что эта задача вы­полняется на фоне текущих активных вычислений.

1Folder –папка. Кстати, термин folderбыл позаимствован из других операционных систем и не имеет к системе Windowsотношения.

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

2POSIX (Portable operating system for computing environments).Синоним IEEE Std 1003.1. С 1990 года является международным стандартом намашинно-независимый (переноси­мый) интерфейс компьютерной среды.Этот стандарт разработан американским институ­том IEEEв 1988 году. Он представляет собой набор функций, взятых из операционных систем AT&T UNIX System Vи Berkeley Standard Distribution UNIX.Основное внима­ние в требованиях этого стандарта уделяется взаимодействию прикладных программ с операционной системой. Написание прикладных программ в данном стандарте позволя­ет создавать программы, легко переносимые из одной операционной среды в другую.

1Экзабайт(один экзабайт равен 264, или приблизительно 16 000 млрд гигабайт).

1Следует, однако, заметить, что понятие тома известно уже около 30 лет. Оно активно ис­пользуется и в системе OS/2, использующей файловую систему HPFS.См. об этом в раз­деле «Файловая система HPFS».

2MFT (master file table) –это специальный файл, главная системная структура данных, которая и позволяет определять местонахождение всех остальных файлов.

1Размер файловых записей MFT для тома – минимум 1 Кбайт и максимум 4 Кбайт – оп­ределяется во время форматирования тома.

1Так, на идее подмены потока основан один из новейших вирусов, который был не так давно создан для распространения в среде Windows 2000.

1Следут заметить, что этим рекомендациям уже более 6 лет. Сейчас, как известно, объёмы дисковых накопителей уже давно перешли рубеж в десяток гигабайт, поэтому упомина­ние логического диска объёмом в 400 Мбайт представляется неактуальным.

1IPC (inter-process communication) –межпроцессные коммуникации.

1Host –главный компьютер. Сейчас этим термином обозначают любой компьютер, имею­щий IP-адрес.

1ОСРВ –операционная система реального времени

1Trackball –в переносных компьютерах очень часто используется для управления переме­щением курсора специальный шарик, который размещается рядом с клавиатурой и про­кручивается пальцами.

1RTL (run time library) –библиотека времени выполнения; она включает в себя те стан­дартные подпрограммы, которые система программирования подставляет на этапе компиляции. В общем случае RTL включает в себя не только модули из системы про­граммирования, но и модули самой ОС.

1В данном контексте под системными командами следует понимать некий набор про­грамм, позволяющих управлять вычислительными процессами. Например, pstat, kill, dir и др.

2IEEE (Institute of Electrical and Electronical Engineers) –американский Институт инже­неров по электротехнике и радиоэлектронике.

1Ri –имя переменной для процесса с номером i.

1Пул – pool –это совокупность однородных, динамически распределяемых объектов, на­пример, блоков памяти одинаковой длины.

1На наш взгляд, эта работа Дейкстры очень полезна с методической точки зрения. Она по­зволяет понять наиболее тонкие моменты в этой проблематике.

1CF (carry flag) –флаг переноса. Располагается в слове состояния программы. Для про­цессоров i80x86этот регистр – управляющий регистр CR0.

1Р – от голландского Proberen –проверить.

2V – от голландского Verhogen –увеличить.

1Название «почтовый ящик» происходит от обычного приспособления для отправки почты.

1Pipe(канал или конвейер) был введен в UNIX-системах и имеет максимальный размер в 64 Кбайт, поскольку в 16-разрядных мини-ЭВМ, для которых создавалась эта система, нельзя было создать массив данных большего размера.

1Dead lock – смертельное объятие

1Напомним, что деревом в теории графов называют граф, не имеющий циклов.

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

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

1Создателями системы UNIXсчитаются Кен Томпсон и Деннис Ритчи.

1Socket –это понятие, связанное со стеком протоколов TCP/IP, который является «род­ным» для UNIX.Его следует понимать как некий адрес или порт, через который связыва­ются удаленные программы.

1CompuServe –американская популярная сетевая служба.

1Справедливости ради следует заметить, что этот набор приложений (называемый ВоnusPak)не совместим с современными версиями Microsoft Office,и поэтому его исполь­зуют, как правило, только в «закрытых системах», когда нет обмена с документами, изготовленными посредством приложений Microsoft Office.

1IPC (interprocessing communications) – межпроцессное взаимодействие.

1DMA (direct nemory access) – канал прямого доступа к памяти.

1System object model – SOM.

2Shortcut(ярлык) – значок (или иконка) на рабочем столе Windows,который имеет связь с тем или иным объектом.

3Shadow(тень) – значок на рабочем столе OS/2, которая является частью объекта, то есть имеется постоянная двухсторонняя связь между shadowи собственно объектом.

1CORBA (common object request broker architecture) – архитектура посредника стандарт­ного объектного запроса.

1LVM (logical volume manager) – менеджер томов (логических дисков).

1Это фирменная технология, несколько более подробно об этом изложено ниже.

2GUI (graphic user interface) – графический интерфейс пользователя.

3От redirect - перенаправлять.

1Neutrino – один из проектов микроядерной ОС.

477

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]