На главную страницу
Форум txt.version   



Статья :: Архитектура операционной системы UNIX : Морис Бах

ПРЕДИСЛОВИЕ

Впервые система UNIX была описана в 1974 году в статье Кена Томпсона и Дэнниса Ричи в журнале «Communications of the ACM» [Thompson 74]. С этого времени она получила широкое распространение и завоевала широкую популярность среди производителей ЭВМ, которые все чаще стали оснащать ею свои машины. Особой популярностью она пользуется в университетах, где довольно часто участвует в исследовательском и учебном процессе.

Множество книг и статей посвящено описанию отдельных частей системы; среди них два специальных выпуска «Bell System Technical Journal» за 1978 год [BSTJ 78] и за 1984 год [BSTJ 84]. Во многих книгах описывается пользовательский интерфейс, в частности использование электронной почты, подготовка документации, работа с командным процессором Shell; в некоторых книгах, таких как «The UNIX Programming Environment» [Kernighan 84] и «Advanced UNIX Programming» [Rochkind 85], описывается программный интерфейс. Настоящая книга посвящена описанию внутренних алгоритмов и структур, составляющих основу операционной системы (т. н. «ядро»), и объяснению их взаимосвязи с программным интерфейсом. Таким образом, она будет полезна для работающих в различных операционных средах. Во-первых, она может использоваться в качестве учебного пособия по курсу «Операционные системы» как для студентов последнего курса, так и для аспирантов первого года обучения. При работе с книгой было бы гораздо полезнее обращаться непосредственно к исходному тексту системных программ, но книгу можно читать и независимо от него. Во-вторых, эта книга может служить в качестве справочного руководства для системных программистов, из которого последние могли бы лучше уяснить себе механизм работы ядра операционной системы и сравнить между собой алгоритмы, используемые в UNIX, и алгоритмы, используемые в других операционных системах. Наконец, программисты, работающие в среде UNIX, могут углубить свое понимание механизма взаимодействия программ с операционной системой и посредством этого прийти к написанию более эффективных и совершенных программ.

Содержание и порядок построения материала в книге соответствуют курсу лекций, подготовленному и прочитанному мной для сотрудников фирмы Bell Laboratories, входящей в состав корпорации AT&T, между 1983 и 1984 гг. Несмотря на то, что главное внимание в курсе лекций обращалось на исходный текст системных программ, я обнаружил, что понимание исходного текста облегчается, если пользователь имеет представление о системных алгоритмах. В книге я пытался изложить описание алгоритмов как можно проще, чтобы и в малом отразить простоту и изящество рассматриваемой операционной системы. Таким образом, книга представляет собой не только подробное истолкование особенностей системы на английском языке; это изображение общего механизма работы различных алгоритмов, и что гораздо важнее, это отражение процесса их взаимодействия между собой. Алгоритмы представлены на псевдокоде, похожем на язык Си, поскольку читателю легче воспринимать описание на естественном языке; наименования алгоритмов соответствуют именам процедур, составляющих ядро операционной системы. Рисунки описывают взаимодействие различных информационных структур под управлением операционной системы. В последних главах многие системные понятия иллюстрируются с помощью небольших программ на языке Си. В целях экономии места и обеспечения ясности изложения из этих примеров исключен контроль возникновения ошибок, который обычно предусматривается при написании программ. Эти примеры прогонялись мною под управлением версии V; за исключением программ, иллюстрирующих особенности, присущие версии V, их можно выполнять под управлением других версий операционной системы.

Большое число упражнений, подготовленных первоначально для курса лекций, приведено в конце каждой главы, они составляют ключевую часть книги. Отдельные упражнения, иллюстрирующие основные понятия, размещены непосредственно в тексте книги. Другая часть упражнений отличается большей сложностью, поскольку их предназначение состоит в том, чтобы помочь читателю углубить свое понимание особенностей системы. И, наконец, часть упражнений является по природе исследовательской, предназначенной для изучения отдельных проблем. Упражнения повышенной сложности помечены звездочками.

Системное описание базируется на особенностях операционной системы UNIX версия V редакция 2, распространением которой занимается корпорация AT&T, с учетом отдельных особенностей редакции 3. Это та система, с которой я наиболее знаком, однако я постарался отразить и интересные детали других разновидностей операционных систем, в частности систем, распространяемых через «Berkeley Software Distribution» (BSD). Я не касался вопросов, связанных с характеристиками отдельных аппаратных средств, стараясь только в общих чертах охватить процесс взаимодействия ядра операционной системы с аппаратными средствами и игнорируя характерные особенности физической конфигурации. Тем не менее, там, где вопросы, связанные с машинными особенностями, представились мне важными с точки зрения понимания механизма функционирования ядра, оказалось уместным и углубление в детали. По крайней мере, беглый просмотр затронутых в книге вопросов ясно указывает те составные части операционной системы, которые являются наиболее машинно-зависимыми.

Общение с книгой предполагает наличие у читателя опыта программирования на одном из языков высокого уровня и желательно на языке ассемблера. Читателю рекомендуется приобрести опыт работы с операционной системой UNIX и познакомиться с языком программирования Си [Kernighan 78]. Тем не менее, я старался изложить материал в книге таким образом, чтобы читатель смог овладеть им даже при отсутствии требуемых навыков. В приложении к книге приведено краткое описание обращений к операционной системе, которого будет достаточно для того, чтобы получить представление о содержании книги, но которое не может служить в качестве полного справочного руководства.

Материал в книге построен следующим образом. Глава 1 служит введением, содержащим краткое, общее описание системных особенностей с точки зрения пользователя и объясняющим структуру системы. В главе 2 дается общее представление об архитектуре ядра и поясняются некоторые основные понятия. В остальной части книги освещаются вопросы, связанные с общей архитектурой системы и описанием ее различных компонент как блоков единой конструкции. В ней можно выделить три раздела: файловая система, управление процессами и вопросы, связанные с развитием. Файловая система представлена первой, поскольку ее понимание легче по сравнению с управлением процессами. Так, глава 3 посвящена описанию механизма функционирования системного буфера сверхоперативной памяти (кеша), составляющего основу файловой системы. Глава 4 описывает информационные структуры и алгоритмы, используемые файловой системой. В этих алгоритмах используются методы, объясняемые в главе 3, для ведения внутренней «бухгалтерии», необходимой для управления пользовательскими файлами. Глава 5 посвящена описанию обращений к операционной системе, обслуживающих интерфейс пользователя с файловой системой; для обеспечения доступа к пользовательским файлам используются алгоритмы главы 4.

Основное внимание в главе 6 уделяется управлению процессами. В ней определяется понятие контекста процесса и исследуются внутренние составляющие ядра операционной системы, управляющие контекстом процесса. В частности, рассматривается обращение к операционной системе, обработка прерываний и переключение контекста. В главе 7 анализируются те системные операции, которые управляют контекстом процесса. Глава 8 касается планирования процессов, глава 9 — распределения памяти, включая системы подкачки и замещения страниц.

В главе 10 дается обзор общих особенностей взаимодействия, которое обеспечивают драйверы устройств, особое внимание уделяется дисковым и терминальным драйверам. Несмотря на то, что устройства логически входят в состав файловой системы, их рассмотрение до этого момента откладывалось в связи с возникновением вопросов, связанных с управлением процессами, при обсуждении терминальных драйверов. Эта глава также служит мостиком к вопросам, связанным с развитием системы, которые рассматриваются в конце книги. Глава 11 касается взаимодействия процессов и организации сетей, в том числе сообщений, используемых в версии V, разделения памяти, семафоров и пакетов BSD. Глава 12 содержит компактное изложение особенностей двухпроцессорной системы UNIX, в главе 13 исследуются двухмашинные распределенные вычислительные системы.

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

Теперь мне бы хотелось предупредить читателя о следующем. Я не пытался оценить производительность системы в абсолютном выражении, не касался и параметров конфигурации, необходимых для инсталляции системы. Эти данные меняются в зависимости от типа машины, конфигурации комплекса технических средств, версии и реализации системы, состава задач. Кроме того, я сознательно избегал любых предсказаний по поводу дальнейшего развития операционной системы UNIX. Изложение вопросов, связанных с развитием, не подкреплено обязательством корпорации AT&T обеспечить соответствующие характеристики, даже не гарантируется то, что соответствующие области являются объектом исследования.

Мне приятно выразить благодарность многим друзьям и коллегам за помощь при написании этой книги и за конструктивные критические замечания, высказанные при ознакомлении с рукописью. Я должен выразить глубочайшую признательность Яну Джонстону, который посоветовал мне написать эту книгу, оказал мне поддержку на начальном этапе и просмотрел набросок первых глав. Ян открыл мне многие секреты ремесла и я всегда буду в долгу перед ним. Дорис Райан также поддерживала меня с самого начала, и я всегда буду ценить ее доброту и внимательность. Дэннис Ричи добровольно ответил на многочисленные вопросы, касающиеся исторического и технического аспектов системы. Множество людей пожертвовали своим временем и силами на ознакомление с вариантами рукописи, появление этой книги во многом обязано высказанным ими подробным замечаниям. Среди них Дебби Бэч, Дуг Байер, Лэнни Брэндвейн, Стив Барофф, Том Батлер, Рон Гомес, Месат Гандак, Лаура Изрейел, Дин Джегелс, Кейт Келлеман, Брайан Керниган, Боб Мартин, Боб Митц, Дейв Новиц, Майкл Попперс, Мэрилин Сэфран, Курт Шиммель, Зуи Спитц, Том Вэден, Билл Вебер, Лэрри Вэр и Боб Зэрроу. Мэри Фрустак помогала подготовить рукопись к набору. Я хотел бы также поблагодарить мое руководство за постоянную поддержку, которую я ощущал на всем протяжении работы, и коллег за атмосферу, способствовавшую мне в работе, и за замечательные условия, предоставленные фирмой AT&T Bell Laboratories. Джон Вейт и персонал издательства Prentice-Hall оказали самую разнообразную помощь в придании книге ее окончательного вида. Последней по списку, но не по величине явилась помощь моей жены, Дебби, оказавшей мне эмоциональную поддержку, без которой я бы не достиг успеха.

ГЛАВА 1. ОБЩИЙ ОБЗОР ОСОБЕННОСТЕЙ СИСТЕМЫ

За время, прошедшее с момента ее появления в 1969 году, система UNIX стала довольно популярной и получила распространение на машинах с различной мощностью обработки, от микропроцессоров до больших ЭВМ, обеспечивая на них общие условия выполнения программ. Система делится на две части. Одну часть составляют программы и сервисные функции, то, что делает операционную среду UNIX такой популярной; эта часть легко доступна пользователям, она включает такие программы, как командный процессор, обмен сообщениями, пакеты обработки текстов и системы обработки исходных текстов программ. Другая часть включает в себя собственно операционную систему, поддерживающую эти программы и функции. В этой книге дается детальное описание собственно операционной системы. Основное внимание концентрируется на описании системы UNIX версии V, распространением которой занимается корпорация AT&T, при этом рассматриваются интересные особенности и других версий. Приводятся основные информационные структуры и алгоритмы, используемые в операционной системе и в конечном итоге создающие условия для функционирования стандартного пользовательского интерфейса.

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




Архитектура операционной системы UNIX : Морис Бах

страницы в данном разделе 
Архитектура операционной системы UNIX : Морис Бах 1.1 ИСТОРИЯ : Морис Бах
1.2 СТРУКТУРА СИСТЕМЫ : Морис Бах 1.3 ОБЗОР С ТОЧКИ ЗРЕНИЯ ПОЛЬЗОВАТЕЛЯ : Морис Бах
1.3.1 Файловая система : Морис Бах 1.3.2 Среда выполнения процессов : Морис Бах
1.3.3 Элементы конструкционных блоков : Морис Бах 1.4 ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ : Морис Бах
1.5 ПРЕДПОЛАГАЕМАЯ АППАРАТНАЯ СРЕДА : Морис Бах продолжение 9 : Морис Бах
1.1 ИСТОРИЯ : Морис Бах 1.2 СТРУКТУРА СИСТЕМЫ : Морис Бах
1.3.1 Файловая система : Морис Бах 1.3.2 Среда выполнения процессов : Морис Бах
1.3.3 Элементы конструкционных блоков : Морис Бах 1.3.1 Файловая система : Морис Бах
1.3.2 Среда выполнения процессов : Морис Бах 1.3.3 Элементы конструкционных блоков : Морис Бах
1.4 ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ : Морис Бах 1.5 ПРЕДПОЛАГАЕМАЯ АППАРАТНАЯ СРЕДА : Морис Бах
продолжение 20 2.1 АРХИТЕКТУРА ОПЕРАЦИОННОЙ СИСТЕМЫ UNIХ : Морис Бах
2.2 ВВЕДЕНИЕ В ОСНОВНЫЕ ПОНЯТИЯ СИСТЕМЫ : Морис Бах 2.2.1 Обзор особенностей подсистемы управления файлами : Морис Бах
2.2.2 Процессы : Морис Бах продолжение 25 : Морис Бах
2.2.2.1 Контекст процесса : Морис Бах 2.2.2.3 Переходы из состояния в состояние : Морис Бах
2.2.2.4 Сон и пробуждение : Морис Бах 2.5 ВЫВОДЫ И ОБЗОР ПОСЛЕДУЮЩИХ ГЛАВ : Морис Бах
2.1 АРХИТЕКТУРА ОПЕРАЦИОННОЙ СИСТЕМЫ UNIХ : Морис Бах 2.2.1 Обзор особенностей подсистемы управления файлами : Морис Бах
2.2.2 Процессы : Морис Бах продолжение 33 : Морис Бах
2.2.2.1 Контекст процесса : Морис Бах 2.2.2.3 Переходы из состояния в состояние : Морис Бах
2.2.2.4 Сон и пробуждение : Морис Бах 2.2.1 Обзор особенностей подсистемы управления файлами : Морис Бах
2.2.2 Процессы : Морис Бах 2.2.2.1 Контекст процесса : Морис Бах
2.2.2.3 Переходы из состояния в состояние : Морис Бах 2.2.2.4 Сон и пробуждение : Морис Бах
продолжение 42 2.2.2.1 Контекст процесса : Морис Бах
2.2.2.3 Переходы из состояния в состояние : Морис Бах 2.2.2.4 Сон и пробуждение : Морис Бах
2.5 ВЫВОДЫ И ОБЗОР ПОСЛЕДУЮЩИХ ГЛАВ : Морис Бах ГЛАВА 3. БУФЕР СВЕРХОПЕРАТИВНОЙ ПАМЯТИ (КЕШ) : Морис Бах
3.1 ЗАГОЛОВКИ БУФЕРА : Морис Бах 3.2 СТРУКТУРА ОБЛАСТИ БУФЕРОВ (БУФЕРНОГО ПУЛА) : Морис Бах
3.3 МЕХАНИЗМ ПОИСКА БУФЕРА : Морис Бах 3.4 ЧТЕНИЕ И ЗАПИСЬ ДИСКОВЫХ БЛОКОВ : Морис Бах
3.5 ПРЕИМУЩЕСТВА И НЕУДОБСТВА БУФЕРНОГО КЕША : Морис Бах 3.6 ВЫВОДЫ : Морис Бах
3.7 УПРАЖНЕНИЯ : Морис Бах продолжение 55
3.1 ЗАГОЛОВКИ БУФЕРА : Морис Бах 3.2 СТРУКТУРА ОБЛАСТИ БУФЕРОВ (БУФЕРНОГО ПУЛА) : Морис Бах
3.3 МЕХАНИЗМ ПОИСКА БУФЕРА : Морис Бах 3.4 ЧТЕНИЕ И ЗАПИСЬ ДИСКОВЫХ БЛОКОВ : Морис Бах
3.5 ПРЕИМУЩЕСТВА И НЕУДОБСТВА БУФЕРНОГО КЕША : Морис Бах 3.6 ВЫВОДЫ : Морис Бах
3.7 УПРАЖНЕНИЯ : Морис Бах ГЛАВА 4. ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ФАЙЛОВ : Морис Бах
4.1 ИНДЕКСЫ : Морис Бах 4.1.1 Определение : Морис Бах
4.1.2 Обращение к индексам : Морис Бах 4.2 СТРУКТУРА ФАЙЛА ОБЫЧНОГО ТИПА : Морис Бах
4.3 КАТАЛОГИ : Морис Бах 4.4 ПРЕВРАЩЕНИЕ СОСТАВНОГО ИМЕНИ ФАЙЛА (ПУТИ ПОИСКА) В ИДЕНТИФИКАТОР ИНДЕКСА : Морис Бах
4.6 НАЗНАЧЕНИЕ ИНДЕКСА НОВОМУ ФАЙЛУ : Морис Бах 4.7 ВЫДЕЛЕНИЕ ДИСКОВЫХ БЛОКОВ : Морис Бах
4.9 ВЫВОДЫ : Морис Бах 4.10 УПРАЖНЕНИЯ : Морис Бах
продолжение 74 4.1 ИНДЕКСЫ : Морис Бах
4.1.2 Обращение к индексам : Морис Бах 4.1.1 Определение : Морис Бах
4.1.2 Обращение к индексам : Морис Бах 4.2 СТРУКТУРА ФАЙЛА ОБЫЧНОГО ТИПА : Морис Бах
4.3 КАТАЛОГИ : Морис Бах 4.4 ПРЕВРАЩЕНИЕ СОСТАВНОГО ИМЕНИ ФАЙЛА (ПУТИ ПОИСКА) В ИДЕНТИФИКАТОР ИНДЕКСА : Морис Бах
4.6 НАЗНАЧЕНИЕ ИНДЕКСА НОВОМУ ФАЙЛУ : Морис Бах 4.7 ВЫДЕЛЕНИЕ ДИСКОВЫХ БЛОКОВ : Морис Бах
4.9 ВЫВОДЫ : Морис Бах 4.10 УПРАЖНЕНИЯ : Морис Бах
ГЛАВА 5. СИСТЕМНЫЕ ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ : Морис Бах 5.1 OPEN : Морис Бах
5.2 READ : Морис Бах 5.3 WRIТЕ : Морис Бах
5.5 УКАЗАНИЕ МЕСТА В ФАЙЛЕ, ГДЕ БУДЕТ ВЫПОЛНЯТЬСЯ ВВОД-ВЫВОД — LSEEК : Морис Бах 5.6 CLOSЕ : Морис Бах
5.7 СОЗДАНИЕ ФАЙЛА : Морис Бах 5.8 СОЗДАНИЕ СПЕЦИАЛЬНЫХ ФАЙЛОВ : Морис Бах
5.9 СМЕНА ТЕКУЩЕГО И КОРНЕВОГО КАТАЛОГА : Морис Бах 5.12 КАНАЛЫ : Морис Бах
5.12.1 Системная функция pipе : Морис Бах 5.12.2 Открытие поименованного канала : Морис Бах
5.12.3 Чтение из каналов и запись в каналы : Морис Бах 5.12.5 Примеры : Морис Бах
5.13 DUР : Морис Бах 5.14 МОНТИРОВАНИЕ И ДЕМОНТИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ : Морис Бах
продолжение 102 : Морис Бах 5.14.1 Пересечение точек монтирования в маршрутах поиска имен файлов : Морис Бах
5.14.2 Демонтирование файловой системы : Морис Бах 5.15 LINК : Морис Бах
5.16 UNLINК : Морис Бах продолжение 107 : Морис Бах
5.16.1 Целостность файловой системы : Морис Бах 5.16.2 Поводы для конкуренции : Морис Бах
5.17 АБСТРАКТНЫЕ ОБРАЩЕНИЯ К ФАЙЛОВЫМ СИСТЕМАМ : Морис Бах 5.18 СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ : Морис Бах
5.20 УПРАЖНЕНИЯ : Морис Бах продолжение 113
5.1 OPEN : Морис Бах 5.2 READ : Морис Бах
5.3 WRIТЕ : Морис Бах 5.5 УКАЗАНИЕ МЕСТА В ФАЙЛЕ, ГДЕ БУДЕТ ВЫПОЛНЯТЬСЯ ВВОД-ВЫВОД — LSEEК : Морис Бах
5.6 CLOSЕ : Морис Бах 5.7 СОЗДАНИЕ ФАЙЛА : Морис Бах
5.8 СОЗДАНИЕ СПЕЦИАЛЬНЫХ ФАЙЛОВ : Морис Бах 5.9 СМЕНА ТЕКУЩЕГО И КОРНЕВОГО КАТАЛОГА : Морис Бах
5.12.1 Системная функция pipе : Морис Бах 5.12.2 Открытие поименованного канала : Морис Бах
5.12.3 Чтение из каналов и запись в каналы : Морис Бах 5.12.5 Примеры : Морис Бах
5.12.1 Системная функция pipе : Морис Бах 5.12.2 Открытие поименованного канала : Морис Бах
5.12.3 Чтение из каналов и запись в каналы : Морис Бах 5.12.5 Примеры : Морис Бах
5.13 DUР : Морис Бах 5.14 МОНТИРОВАНИЕ И ДЕМОНТИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ : Морис Бах
5.14.1 Пересечение точек монтирования в маршрутах поиска имен файлов : Морис Бах 5.14.2 Демонтирование файловой системы : Морис Бах
продолжение 134 5.14.1 Пересечение точек монтирования в маршрутах поиска имен файлов : Морис Бах
5.14.2 Демонтирование файловой системы : Морис Бах 5.15 LINК : Морис Бах
5.16 UNLINК : Морис Бах 5.16.1 Целостность файловой системы : Морис Бах
5.16.2 Поводы для конкуренции : Морис Бах продолжение 141
5.16.1 Целостность файловой системы : Морис Бах 5.16.2 Поводы для конкуренции : Морис Бах
5.17 АБСТРАКТНЫЕ ОБРАЩЕНИЯ К ФАЙЛОВЫМ СИСТЕМАМ : Морис Бах 5.18 СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ : Морис Бах
5.20 УПРАЖНЕНИЯ : Морис Бах 6.1 СОСТОЯНИЯ ПРОЦЕССА И ПЕРЕХОДЫ МЕЖДУ НИМИ : Морис Бах
6.2 ФОРМАТ ПАМЯТИ СИСТЕМЫ : Морис Бах продолжение 149 : Морис Бах
6.2.1 Области : Морис Бах 6.2.2 Страницы и таблицы страниц : Морис Бах
6.2.3 Размещение ядра : Морис Бах 6.2.4 Пространство процесса : Морис Бах
6.3 КОНТЕКСТ ПРОЦЕССА : Морис Бах 6.4 СОХРАНЕНИЕ КОНТЕКСТА ПРОЦЕССА : Морис Бах
6.4.1 Прерывания и особые ситуации : Морис Бах 6.4.2 Взаимодействие с операционной системой через вызовы системных функций : Морис Бах
6.4.3 Переключение контекста : Морис Бах j159.html
6.5 УПРАВЛЕНИЕ АДРЕСНЫМ ПРОСТРАНСТВОМ ПРОЦЕССА : Морис Бах продолжение 161 : Морис Бах
6.5.2 Выделение области : Морис Бах 6.5.3 Присоединение области к процессу : Морис Бах
6.5.4 Изменение размера области : Морис Бах 6.5.5 Загрузка области : Морис Бах
6.5.8 Копирование содержимого области : Морис Бах 6.6 ПРИОСТАНОВКА ВЫПОЛНЕНИЯ : Морис Бах
6.6.1 События, вызывающие приостанов выполнения, и их адреса : Морис Бах 6.6.2 Алгоритмы приостанова и возобновления выполнения : Морис Бах
6.7 ВЫВОДЫ : Морис Бах 6.8 УПРАЖНЕНИЯ : Морис Бах
6.1 СОСТОЯНИЯ ПРОЦЕССА И ПЕРЕХОДЫ МЕЖДУ НИМИ : Морис Бах 6.2 ФОРМАТ ПАМЯТИ СИСТЕМЫ : Морис Бах
6.2.1 Области : Морис Бах продолжение 175
6.2.1 Области : Морис Бах 6.2.2 Страницы и таблицы страниц : Морис Бах
6.2.3 Размещение ядра : Морис Бах 6.2.4 Пространство процесса : Морис Бах
6.3 КОНТЕКСТ ПРОЦЕССА : Морис Бах 6.4.1 Прерывания и особые ситуации : Морис Бах
6.4.2 Взаимодействие с операционной системой через вызовы системных функций : Морис Бах 6.4.3 Переключение контекста : Морис Бах
j184.html 6.4.1 Прерывания и особые ситуации : Морис Бах
6.4.2 Взаимодействие с операционной системой через вызовы системных функций : Морис Бах 6.4.3 Переключение контекста : Морис Бах
j188.html 6.5 УПРАВЛЕНИЕ АДРЕСНЫМ ПРОСТРАНСТВОМ ПРОЦЕССА : Морис Бах
6.5.2 Выделение области : Морис Бах 6.5.3 Присоединение области к процессу : Морис Бах
6.5.4 Изменение размера области : Морис Бах 6.5.5 Загрузка области : Морис Бах
6.5.8 Копирование содержимого области : Морис Бах продолжение 195
6.5.2 Выделение области : Морис Бах 6.5.3 Присоединение области к процессу : Морис Бах
6.5.4 Изменение размера области : Морис Бах 6.5.5 Загрузка области : Морис Бах
6.5.8 Копирование содержимого области : Морис Бах 6.6.1 События, вызывающие приостанов выполнения, и их адреса : Морис Бах
6.6.2 Алгоритмы приостанова и возобновления выполнения : Морис Бах 6.6.1 События, вызывающие приостанов выполнения, и их адреса : Морис Бах
6.6.2 Алгоритмы приостанова и возобновления выполнения : Морис Бах 6.7 ВЫВОДЫ : Морис Бах
6.8 УПРАЖНЕНИЯ : Морис Бах ГЛАВА 7. УПРАВЛЕНИЕ ПРОЦЕССАМИ : Морис Бах
7.1 СОЗДАНИЕ ПРОЦЕССА : Морис Бах 7.2 СИГНАЛЫ : Морис Бах
продолжение 210 : Морис Бах 7.2.1 Обработка сигналов : Морис Бах
7.2.3 Посылка сигналов процессами : Морис Бах 7.3 ЗАВЕРШЕНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССА : Морис Бах
7.4 ОЖИДАНИЕ ЗАВЕРШЕНИЯ ВЫПОЛНЕНИЯ ПРОЦЕССА : Морис Бах 7.5 ВЫЗОВ ДРУГИХ ПРОГРАММ : Морис Бах
7.6 КОД ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОЦЕССА : Морис Бах 7.7 ИЗМЕНЕНИЕ РАЗМЕРА ПРОЦЕССА : Морис Бах
7.8 КОМАНДНЫЙ ПРОЦЕССОР SHELL : Морис Бах 7.9 ЗАГРУЗКА СИСТЕМЫ И НАЧАЛЬНЫЙ ПРОЦЕСС : Морис Бах
7.10 ВЫВОДЫ : Морис Бах 7.11 УПРАЖНЕНИЯ : Морис Бах
продолжение 222 7.1 СОЗДАНИЕ ПРОЦЕССА : Морис Бах
7.2 СИГНАЛЫ : Морис Бах 7.2.1 Обработка сигналов : Морис Бах
7.2.3 Посылка сигналов процессами : Морис Бах продолжение 227
7.2.1 Обработка сигналов : Морис Бах 7.2.3 Посылка сигналов процессами : Морис Бах
7.3 ЗАВЕРШЕНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССА : Морис Бах 7.4 ОЖИДАНИЕ ЗАВЕРШЕНИЯ ВЫПОЛНЕНИЯ ПРОЦЕССА : Морис Бах
7.5 ВЫЗОВ ДРУГИХ ПРОГРАММ : Морис Бах 7.6 КОД ИДЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОЦЕССА : Морис Бах
7.7 ИЗМЕНЕНИЕ РАЗМЕРА ПРОЦЕССА : Морис Бах 7.8 КОМАНДНЫЙ ПРОЦЕССОР SHELL : Морис Бах
7.9 ЗАГРУЗКА СИСТЕМЫ И НАЧАЛЬНЫЙ ПРОЦЕСС : Морис Бах 7.10 ВЫВОДЫ : Морис Бах
7.11 УПРАЖНЕНИЯ : Морис Бах 8.1 ПЛАНИРОВАНИЕ ВЫПОЛНЕНИЯ ПРОЦЕССОВ : Морис Бах
8.1.2 Параметры диспетчеризации : Морис Бах 8.1.3 Примеры диспетчеризации процессов : Морис Бах
8.1.5 Планирование на основе справедливого раздела : Морис Бах 8.1.6 Работа в режиме реального времени : Морис Бах
8.2 СИСТЕМНЫЕ ОПЕРАЦИИ, СВЯЗАННЫЕ СО ВРЕМЕНЕМ : Морис Бах 8.3 ТАЙМЕР : Морис Бах
продолжение 246 : Морис Бах 8.3.2 Внутренние системные тайм-ауты : Морис Бах
8.3.3 Построение профиля : Морис Бах 8.3.4 Учет и статистика : Морис Бах
8.5 УПРАЖНЕНИЯ : Морис Бах 8.1.2 Параметры диспетчеризации : Морис Бах
8.1.3 Примеры диспетчеризации процессов : Морис Бах 8.1.5 Планирование на основе справедливого раздела : Морис Бах
8.1.6 Работа в режиме реального времени : Морис Бах 8.1.2 Параметры диспетчеризации : Морис Бах
8.1.3 Примеры диспетчеризации процессов : Морис Бах 8.1.5 Планирование на основе справедливого раздела : Морис Бах
8.1.6 Работа в режиме реального времени : Морис Бах 8.2 СИСТЕМНЫЕ ОПЕРАЦИИ, СВЯЗАННЫЕ СО ВРЕМЕНЕМ : Морис Бах
8.3 ТАЙМЕР : Морис Бах 8.3.2 Внутренние системные тайм-ауты : Морис Бах
8.3.3 Построение профиля : Морис Бах 8.3.4 Учет и статистика : Морис Бах
продолжение 264 8.3.2 Внутренние системные тайм-ауты : Морис Бах
8.3.3 Построение профиля : Морис Бах 8.3.4 Учет и статистика : Морис Бах
8.5 УПРАЖНЕНИЯ : Морис Бах ГЛАВА 9. АЛГОРИТМЫ УПРАВЛЕНИЯ ПАМЯТЬЮ : Морис Бах
9.1 СВОПИНГ : Морис Бах 9.1.1 Управление пространством на устройстве выгрузки : Морис Бах
9.1.2 Выгрузка процессов : Морис Бах продолжение 273 : Морис Бах
9.1.3 Загрузка (подкачка) процессов : Морис Бах 9.2 ПОДКАЧКА ПО ЗАПРОСУ : Морис Бах
продолжение 276 : Морис Бах 9.2.1 Структуры данных, используемые подсистемой замещения страниц : Морис Бах
продолжение 278 : Морис Бах 9.2.1.1 Функция fork в системе с замещением страниц : Морис Бах
9.2.1.2 Функция exec в системе с замещением страниц : Морис Бах 9.2.2 "Сборщик" страниц : Морис Бах
9.2.3 Отказы при обращениях к страницам : Морис Бах 9.2.3.1 Обработка прерываний по отказу из-за недоступности данных : Морис Бах
9.2.3.2 Обработка прерываний по отказу системы защиты : Морис Бах 9.2.4 Замещение страниц на менее сложной технической базе : Морис Бах
9.3 СИСТЕМА СМЕШАННОГО ТИПА СО СВОПИНГОМ И ПОДКАЧКОЙ ПО ЗАПРОСУ : Морис Бах 9.4 ВЫВОДЫ : Морис Бах
9.5 УПРАЖНЕНИЯ : Морис Бах продолжение 289
9.1.1 Управление пространством на устройстве выгрузки : Морис Бах 9.1.2 Выгрузка процессов : Морис Бах
продолжение 292 : Морис Бах 9.1.3 Загрузка (подкачка) процессов : Морис Бах
9.1.1 Управление пространством на устройстве выгрузки : Морис Бах 9.1.2 Выгрузка процессов : Морис Бах
продолжение 296 9.1.3 Загрузка (подкачка) процессов : Морис Бах
9.2 ПОДКАЧКА ПО ЗАПРОСУ : Морис Бах 9.2.1 Структуры данных, используемые подсистемой замещения страниц : Морис Бах
продолжение 300 : Морис Бах 9.2.1.1 Функция fork в системе с замещением страниц : Морис Бах
9.2.1.2 Функция exec в системе с замещением страниц : Морис Бах 9.2.2 "Сборщик" страниц : Морис Бах
9.2.3 Отказы при обращениях к страницам : Морис Бах 9.2.3.1 Обработка прерываний по отказу из-за недоступности данных : Морис Бах
j306.html 9.2.4 Замещение страниц на менее сложной технической базе : Морис Бах
продолжение 308 9.2.1 Структуры данных, используемые подсистемой замещения страниц : Морис Бах
9.2.1.1 Функция fork в системе с замещением страниц : Морис Бах 9.2.1.2 Функция exec в системе с замещением страниц : Морис Бах
продолжение 312 9.2.1.1 Функция fork в системе с замещением страниц : Морис Бах
9.2.1.2 Функция exec в системе с замещением страниц : Морис Бах 9.2.2 "Сборщик" страниц : Морис Бах
9.2.3.1 Обработка прерываний по отказу из-за недоступности данных : Морис Бах 9.2.3.2 Обработка прерываний по отказу системы защиты : Морис Бах
9.2.3.1 Обработка прерываний по отказу из-за недоступности данных : Морис Бах 9.2.3.2 Обработка прерываний по отказу системы защиты : Морис Бах
9.2.4 Замещение страниц на менее сложной технической базе : Морис Бах 9.3 СИСТЕМА СМЕШАННОГО ТИПА СО СВОПИНГОМ И ПОДКАЧКОЙ ПО ЗАПРОСУ : Морис Бах
9.4 ВЫВОДЫ : Морис Бах 9.5 УПРАЖНЕНИЯ : Морис Бах
ГЛАВА 10. ПОДСИСТЕМА УПРАВЛЕНИЯ ВВОДОМ-ВЫВОДОМ : Морис Бах 10.1 ВЗАИМОДЕЙСТВИЕ ДРАЙВЕРОВ С ПРОГРАММНОЙ И АППАРАТНОЙ СРЕДОЙ : Морис Бах
10.1.1 Конфигурация системы : Морис Бах 10.1.2 Системные функции и взаимодействие с драйверами : Морис Бах
продолжение 328 : Морис Бах 10.1.2.1 Open : Морис Бах
10.1.2.2 Closе : Морис Бах 10.1.2.3 Read и Writе : Морис Бах
10.1.2.4 Стратегический интерфейс : Морис Бах 10.1.2.5 Ioctl : Морис Бах
10.1.3 Программы обработки прерываний : Морис Бах 10.2 ДИСКОВЫЕ ДРАЙВЕРЫ : Морис Бах
10.3 ТЕРМИНАЛЬНЫЕ ДРАЙВЕРЫ : Морис Бах продолжение 337 : Морис Бах
10.3.1 Символьные списки : Морис Бах 10.3.2 Терминальный драйвер в каноническом режиме : Морис Бах
10.3.3 Терминальный драйвер в режиме без обработки символов : Морис Бах 10.3.4 Опрос терминала : Морис Бах
10.3.5 Назначение операторского терминала : Морис Бах 10.3.6 Драйвер косвенного терминала : Морис Бах
10.3.7 Вход в систему : Морис Бах 10.4 ПОТОКИ : Морис Бах
продолжение 346 : Морис Бах 10.4.1 Более детальное рассмотрение потоков : Морис Бах
10.4.2 Анализ потоков : Морис Бах 10.5 ВЫВОДЫ : Морис Бах
10.6 УПРАЖНЕНИЯ : Морис Бах продолжение 351
10.1.1 Конфигурация системы : Морис Бах 10.1.2 Системные функции и взаимодействие с драйверами : Морис Бах
продолжение 354 : Морис Бах 10.1.2.1 Open : Морис Бах
10.1.2.2 Closе : Морис Бах 10.1.2.3 Read и Writе : Морис Бах
10.1.2.4 Стратегический интерфейс : Морис Бах 10.1.2.5 Ioctl : Морис Бах
10.1.3 Программы обработки прерываний : Морис Бах 10.1.1 Конфигурация системы : Морис Бах
10.1.2 Системные функции и взаимодействие с драйверами : Морис Бах 10.1.2.1 Open : Морис Бах
10.1.2.2 Closе : Морис Бах 10.1.2.3 Read и Writе : Морис Бах
10.1.2.4 Стратегический интерфейс : Морис Бах 10.1.2.5 Ioctl : Морис Бах
продолжение 368 10.1.2.1 Open : Морис Бах
10.1.2.2 Closе : Морис Бах 10.1.2.3 Read и Writе : Морис Бах
10.1.2.4 Стратегический интерфейс : Морис Бах 10.1.2.5 Ioctl : Морис Бах
10.1.3 Программы обработки прерываний : Морис Бах 10.2 ДИСКОВЫЕ ДРАЙВЕРЫ : Морис Бах
10.3 ТЕРМИНАЛЬНЫЕ ДРАЙВЕРЫ : Морис Бах 10.3.1 Символьные списки : Морис Бах
10.3.2 Терминальный драйвер в каноническом режиме : Морис Бах 10.3.3 Терминальный драйвер в режиме без обработки символов : Морис Бах
10.3.4 Опрос терминала : Морис Бах 10.3.5 Назначение операторского терминала : Морис Бах
10.3.6 Драйвер косвенного терминала : Морис Бах 10.3.7 Вход в систему : Морис Бах
продолжение 384 10.3.1 Символьные списки : Морис Бах
10.3.2 Терминальный драйвер в каноническом режиме : Морис Бах 10.3.3 Терминальный драйвер в режиме без обработки символов : Морис Бах
10.3.4 Опрос терминала : Морис Бах 10.3.5 Назначение операторского терминала : Морис Бах
10.3.6 Драйвер косвенного терминала : Морис Бах 10.3.7 Вход в систему : Морис Бах
10.4 ПОТОКИ : Морис Бах 10.4.1 Более детальное рассмотрение потоков : Морис Бах
10.4.2 Анализ потоков : Морис Бах продолжение 395
10.4.1 Более детальное рассмотрение потоков : Морис Бах 10.4.2 Анализ потоков : Морис Бах
10.5 ВЫВОДЫ : Морис Бах 10.6 УПРАЖНЕНИЯ : Морис Бах
11.1 ТРАССИРОВКА ПРОЦЕССОВ : Морис Бах 11.2 ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ В ВЕРСИИ V СИСТЕМЫ : Морис Бах
продолжение 402 : Морис Бах 11.2.1 Сообщения : Морис Бах
11.2.2 Разделение памяти : Морис Бах 11.2.3 Семафоры : Морис Бах
11.2.4 Общие замечания : Морис Бах 11.3 ВЗАИМОДЕЙСТВИЕ В СЕТИ : Морис Бах
11.4 ГНЕЗДА : Морис Бах 11.6 УПРАЖНЕНИЯ : Морис Бах
11.1 ТРАССИРОВКА ПРОЦЕССОВ : Морис Бах 11.2 ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ В ВЕРСИИ V СИСТЕМЫ : Морис Бах
11.2.1 Сообщения : Морис Бах 11.2.2 Разделение памяти : Морис Бах
11.2.3 Семафоры : Морис Бах 11.2.4 Общие замечания : Морис Бах
продолжение 416 11.2.1 Сообщения : Морис Бах
11.2.2 Разделение памяти : Морис Бах 11.2.3 Семафоры : Морис Бах
11.2.4 Общие замечания : Морис Бах 11.3 ВЗАИМОДЕЙСТВИЕ В СЕТИ : Морис Бах
11.4 ГНЕЗДА : Морис Бах 11.6 УПРАЖНЕНИЯ : Морис Бах
12.1 ПРОБЛЕМЫ, СВЯЗАННЫЕ С МНОГОПРОЦЕССОРНЫМИ СИСТЕМАМИ : Морис Бах 12.2 ГЛАВНЫЙ И ПОДЧИНЕННЫЙ ПРОЦЕССОРЫ : Морис Бах
12.3 СЕМАФОРЫ : Морис Бах продолжение 427 : Морис Бах
12.3.2 Реализация семафоров : Морис Бах 12.3.3 Примеры алгоритмов : Морис Бах
12.3.3.1 Выделение буфера : Морис Бах 12.3.3.3 Драйверы : Морис Бах
12.3.3.4 Фиктивные процессы : Морис Бах 12.6 УПРАЖНЕНИЯ : Морис Бах
12.1 ПРОБЛЕМЫ, СВЯЗАННЫЕ С МНОГОПРОЦЕССОРНЫМИ СИСТЕМАМИ : Морис Бах 12.2 ГЛАВНЫЙ И ПОДЧИНЕННЫЙ ПРОЦЕССОРЫ : Морис Бах
12.3 СЕМАФОРЫ : Морис Бах 12.3.2 Реализация семафоров : Морис Бах
12.3.3 Примеры алгоритмов : Морис Бах 12.3.3.1 Выделение буфера : Морис Бах
12.3.3.3 Драйверы : Морис Бах 12.3.3.4 Фиктивные процессы : Морис Бах
продолжение 442 12.3.2 Реализация семафоров : Морис Бах
12.3.3.1 Выделение буфера : Морис Бах 12.3.3.3 Драйверы : Морис Бах
12.3.3.4 Фиктивные процессы : Морис Бах 12.3.3.1 Выделение буфера : Морис Бах
12.3.3.3 Драйверы : Морис Бах 12.3.3.4 Фиктивные процессы : Морис Бах
12.6 УПРАЖНЕНИЯ : Морис Бах ГЛАВА 13. РАСПРЕДЕЛЕННЫЕ СИСТЕМЫ : Морис Бах
13.1 ПЕРИФЕРИЙНЫЕ ПРОЦЕССОРЫ : Морис Бах 13.2 СВЯЗЬ ТИПА NEWCASTLЕ : Морис Бах
13.3 "ПРОЗРАЧНЫЕ" РАСПРЕДЕЛЕННЫЕ ФАЙЛОВЫЕ СИСТЕМЫ : Морис Бах 13.4 РАСПРЕДЕЛЕННАЯ МОДЕЛЬ БЕЗ ПЕРЕДАТОЧНЫХ ПРОЦЕССОВ : Морис Бах
13.5 ВЫВОДЫ : Морис Бах 13.6 УПРАЖНЕНИЯ : Морис Бах
продолжение 458 13.1 ПЕРИФЕРИЙНЫЕ ПРОЦЕССОРЫ : Морис Бах
13.2 СВЯЗЬ ТИПА NEWCASTLЕ : Морис Бах 13.3 "ПРОЗРАЧНЫЕ" РАСПРЕДЕЛЕННЫЕ ФАЙЛОВЫЕ СИСТЕМЫ : Морис Бах
13.4 РАСПРЕДЕЛЕННАЯ МОДЕЛЬ БЕЗ ПЕРЕДАТОЧНЫХ ПРОЦЕССОВ : Морис Бах 13.5 ВЫВОДЫ : Морис Бах
13.6 УПРАЖНЕНИЯ : Морис Бах ПРИЛОЖЕНИЕ СИСТЕМНЫЕ ОПЕРАЦИИ : Морис Бах
БИБЛИОГРАФИЯ : Морис Бах Использовалась литература : Архитектура операционной системы UNIX

Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)


Microsoft Office Журнал Компьютерра № 32 от 5 сентября 2006 года Журнал Компьютерра № 34 от 18 сентября 2006 года