Операционная система UNIX — современная многозадачная и многопользовательская система, которая ориентирована на программирующих профессионалов, а не рядовых пользователей, как семействоWindows. <...> Особое внимание уделено механизму коммуникации процессов, обеспечивающему передачу данных. <...> В третьей главе рассматриваются файловая система UNIX и внутренняя структура ее основных частей. <...> В пятой главе описаны системные вызовы и интерфейсы ввода-вывода. <...> Программа ядра оформлена как выполняемый файл, который хранится в корневом каталоге корневой файловой системы UNIX и имеет имя, однозначно выделяющее его среди других файлов. <...> Под процессом понимается единица вычислительной работы, потребляющая ресурсы, предоставляемые ядром, для обработки системных и прикладных программ, которые оформлены как командные или выполняемые файлы на внешнем устройстве. <...> Процессы могут взаимодействовать между собой посредством программных каналов или сигналов и обращаться к подпрограммам ядра через системные вызовы. <...> Ядро поддерживает иерархию процессов, предоставляет необходимое адресное пространство для их выполнения, обеспечивает диспетчеризацию и внутреннюю синхронизацию процессов, осуществляет переключение фазы выполнения процесса, реализует механизм своппинга и пейджинга процессов. <...> Совокупность участков оперативной памяти, отображаемых виртуальными адресами, составляет образ процесса. <...> Образ процесса складывается из следующих сегментов: процедурного (text), инициализированных данных (data), неинициализированных данных (bss) и стека (stack). <...> Резидентный образ ядра располагается в памяти, начиная с нулевого адреса, и состоит из набора сегментов, который идентичен образу процесса. <...> Сегмент данных ядра составляют системные таблицы и переменные, используемые подпрограммами процедурного сегмента, а также область отображения контекста текущего процесса. <...> При переходе процесса в фазу «система» из фазы «пользователь <...>
Основные_концепции_операционной_системы_UNIX.pdf
УДК 681.3.066
ББК 32.973-018.2
В67
Рецензенты: Ю.Г. Веселов, М.В. Филиппов
В67
Волосатова Т.М.
Основные концепции операционной системы UNIX : учеб.
пособие / Т.М. Волосатова, С.В. Грошев, С.В. Родионов. – М.:
Изд-во МГТУ им. Н.Э. Баумана, 2010. – 94, [2] с. : ил.
Операционная система UNIX — современная многозадачная и многопользовательская
система, которая ориентирована на программирующих
профессионалов, а не рядовых пользователей, как семействоWindows.
Ее главная отличительная особенность — мобильность
исходного кода, позволяющая портировать систему на компьютеры
различной архитектуры. Другая особенность UNIX — высокая технологичность,
которая достигается поддержкой многочисленных инструментальных
средств для разработки прикладного и системного
программного обеспечения.
Состав и реализация основных концепций UNIX определяют внутреннее
устройство системы, однако их организация малоизвестна
широкому кругу начинающих пользователей UNIX из доступной литературы.
Данное пособие содержит начальные сведения о внутреннем
устройстве UNIX, которые необходимы для более профессионального
использования возможностей этой операционной системы.
Рекомендуется для студентов 2—5-го курсов всех специальностей.
УДК 681.3.066
ББК 32.973-018.2
-МГТУ им. Н.Э. Баумана, 2010
c
Стр.2
ОГЛАВЛЕНИЕ
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1. Организация процессов ОС UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Понятия ядра и процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Адресное пространство процесса и ядра . . . . . . . . . . . . . . . . . . . . . 5
1.3. Фазы выполнения процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4. Контекст процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5. Идентификатор процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6. Дескриптор процесса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7. Управление иерархией процессов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.8. Внутренняя синхронизация процессов . . . . . . . . . . . . . . . . . . . . . . . 17
1.9. Диспетчеризация процессов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.10. Своппинг и пейджинг процессов . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2. Взаимодействие процессов в UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1. Средства взаимодействия процессов . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2. Обработка сигналов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3. Программные каналы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3. Файловая система UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.1. Понятие файловой системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2. Внутренняя структура файловой системы . . . . . . . . . . . . . . . . . . . . 51
3.3. Структура суперблока . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4. Индексные дескрипторы файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5. Тип и код защиты файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6. Адресация блоков данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4. Иерархия файловых структур . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.1. Разновидности файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.2. Обычные файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3. Каталоги файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
94
Стр.94
4.4. Специальные файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5. Система ввода-вывода OC UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.1. Структура системы управления вводом-выводом . . . . . . . . . . . . . 70
5.2. Системные вызовы ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3. Управление вводом-выводом в файловой системе . . . . . . . . . . . . 78
5.4. Таблицы специальных файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.5. Блокориентированный интерфейс ввода-вывода . . . . . . . . . . . . . . 85
5.6. Байториентированный интерфейс ввода-вывода . . . . . . . . . . . . . . 89
5.7. Прозрачный интерфейс ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . 91
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Стр.95