- •Раздел 4. Операционная система unix
- •Оглавление
- •Введение
- •1. Основание и история
- •2. Основные понятия ос unix
- •2.1. Основные понятия
- •2.2. Ядро ос unix
- •2.2.1. Общая организация традиционного ядра ос unix
- •2.2.3. Принципы взаимодействия с ядром
- •2.2.2. Основные функции
- •2.2.4. Принципы обработки прерываний
- •2.3. Файловая система
- •2.3.1. Структура файловой системы
- •2.3.2. Монтируемые файловые системы
- •2.3.3. Интерфейс с файловой системой
- •2.3.4. Разновидности файлов
- •2.3.5. Распределенные файловые системы
- •2.4. Управление устройствами
- •2.4.1. Устройство как специальный файл
- •2.4.2. Драйверы устройств
- •2.4.3. Внешний и внутренний интерфейсы устройств
- •2.5. Принципы защиты
- •2.5.1. Идентификаторы пользователя и группы пользователей
- •2.5.2. Защита файлов
- •2.6. Базовые механизмы сетевых взаимодействий
- •2.6.1. Потоки (Streams)
- •2.6.2. Стек протоколов tcp/ip
- •2.6.3. Программные гнезда (Sockets)
- •2.6.4. Вызовы удаленных процедур (rpc)
- •3. Основные функции и компоненты ядра ос unix
- •3.1. Управление памятью
- •3.1.1. Виртуальная память
- •3.1.2. Аппаратно-независимый уровень управления памятью
- •3.1.3. Страничное замещение основной памяти и swapping
- •3.2. Управление процессами и нитями
- •3.2.1. Пользовательская и ядерная составляющие процессов
- •3.2.2. Принципы организации многопользовательского режима
- •3.2.3. Механизм управления процессами на уровне пользователя
- •3.2.4. Понятие нити (threads)
- •3.2.5. Организация нитей и управлению ими в ос unix
- •3.3. Управление вводом/выводом
- •3.3.1. Принципы системной буферизации ввода/вывода
- •3.3.2. Системные вызовы для управления вводом/выводом
- •3.3.3. Блочные драйверы
- •3.3.4. Символьные драйверы
- •3.3.5. Потоковые драйверы
- •3.4. Взаимодействие процессов
- •3.4.1. Разделяемая память
- •3.4.2. Семафоры
- •3.4.3. Очереди сообщений
- •3.4.4. Программные каналы
- •3.4.5. Программные гнезда (sockets)
- •4. Мобильное программирование в среде ос unix. Стандартные библиотеки
- •4.1. Библиотека системных вызовов
- •4.2. Библиотека ввода/вывода
- •4.3. Дополнительные библиотеки
- •4.4. Файлы заголовков
- •5. Средства интерактивного интерфейса пользователей
- •5.1. Командные языки и командные интерпретаторы
- •5.1.1. Общая характеристика командных языков
- •5.1.2. Базовые возможности семейства командных интерпретаторов
- •5.2. Команды и утилиты
- •5.2.1. Организация команды в ос unix
- •5.2.2. Перенаправление ввода/вывода и организация конвейера
- •5.2.3. Встроенные, библиотечные и пользовательские команды
- •5.2.4. Программирование на командном языке
- •6. Средства графического интерфейса пользователей
- •6.1. Оконная система X как базовое средство графических интерфейсов в среде ос unix
- •6.1.1. Общая организация X-Window
- •6.1.2. Клиентская и серверная части
- •6.1.3. Базовые библиотеки
- •6.2. Средства разработки графических интерфейсов
- •7. Современное состояние ос unix
- •7.2. Системы, основанные на System V Release 4
- •7.3. Свободно распространяемые и коммерческие варианты ос unix семейства bsd
- •7.4. Другие свободно распространяемые варианты ос unix
- •7.5. Стандарты ос unix
- •Заключение
- •Литература
Заключение
В пособии описаны полная структура системы UNIX, взаимоотношения между процессами, выполняющимися в режиме задачи и в режиме ядра, а также аппаратная среда функционирования ядра операционной системы. Процессы выполняются в режиме задачи или в режиме ядра, в котором они пользуются услугами системы благодаря наличию набора обращений к операционной системе. Архитектура системы поддерживает такой стиль программирования, при котором из небольших программ, выполняющих только отдельные функции, но хорошо, составляются более сложные программы, использующие механизм каналов и переназначение ввода-вывода.
Обращения к операционной системе позволяют процессам производить операции, которые иначе не выполняются. В функции ядра системы UNIX намеренно не включены многие функции, являющиеся частью других операционных систем, поскольку набор обращений к системе позволяет процессам выполнять все необходимые операции на пользовательском уровне.
Основными компонентами ядра операционной системы выступают подсистема управления файлами и подсистема управления процессами. Подсистема управления файлами управляет хранением и выборкой данных в пользовательских файлах. Файлы организованы в виде файловых систем, которые трактуются как логические устройства. Физическое устройство, такое, как диск, может содержать несколько логических устройств (файловых систем).
Ядро является невыгружаемым и это означает, что процесс, выполняющийся в режиме ядра, будет продолжать свое выполнение до тех пор, пока не перейдет в состояние "сна" или пока не вернется в режим задачи. Ядро обеспечивает целостность своих информационных структур.
Процессы в системе UNIX могут находиться в различных логических состояниях и переходить из состояния в состояние в соответствии с установленными правилами перехода, при этом информация о состоянии сохраняется в таблице процессов и в адресном пространстве процесса. Контекст процесса состоит из пользовательского контекста и системного контекста.
Алгоритм подкачки процессов реализует перемещение процессов целиком между основной памятью и устройством выгрузки.
Устройства в ОС Unix могут быть либо блочного, либо символьного типа; интерфейс между устройствами и остальной частью ядра определяется типом устройств. Поток - это полнодуплексная связь между процессами и драйверами устройств.
В Unix существует несколько форм взаимодействия процессов: а) трассировка процессов и б) механизмы обмена сообщениями, работы с семафорами и разделения памяти.
Поскольку система UNIX с самого начала проектировалась как сетевая операционная система, она поддерживает широкий спектр вычислительных сетей, что определило ее широкое распространение в современных информационных сетях.
Литература
Келли-Бутл С. Введение в UNIX. – М.: Лори, 1994. – 342 с.
Кристиан К. Введение в операционную систему UNIX. – М.: Финансы и статистика, 1985. – 318 с.
МакМален Джон. UNIX : Перевод с англ. В.Л.Григорьева. – М.: Компьютер – ЮНИТИ, 1996. – 368 с.
UNIX: Руководство системного администратора./ Эви Немет,Гарт Снайдер, Скотт Сибасс, Трент Р.Хейн; Пер.с англ. С.М.Тимачева. Под ред.М.В.Коломыцева. – 3- е изд.-Киев: BHV, 1998. – 832 c.
Кузнецов С. Д. Операционная система UNIX. Учебное пособие. http://www.citmgu.ru/
Забродин Л.Д. UNIX: Введение в командный интерфейс.-М.: ДИАЛОГ-МИФИ, 1994.–144 с.
Дайсон П. Операционная система UNIX: Настольный справочник/ Пер.С.Орлов. Под ред.В.Вагина. – М.: ЛОРИ, 1997. – 395 с.
Дегтярев Е.К. Введение в UNIX. – М.: Память, 1991. – 128 с.
Керниган Б.В., Пайк Р. Uniх – универсальная среда программирова-ния: Научное издание/ Пер.с англ. А.М.Березко,В.А.Иващенко. Под ред. М.И.Белякова. – М. : Финансы и статистика, 1992. – 304 с.
Дейтел Г. Введение в операционные системы. В 2-х т. Т.2/ Пер с англ. – М: Мир, 1987. – 359 с.
Безбогов А.А. Операционные системы и системное программирование. Раздел 1. Учебное пособие. – Тамбов: ТВВАИУ, 2001. – 158 с
Безбогов Александр Александрович
Яковлев Алексей Вячеславович
Операционные системы и системное программирование
Учебное пособие
Ответственный за выпуск А.А. Безбогов
Редактор Л.В. Пусева
Корректор Е.В. Брусова
Подписано к печати 6.02.2003
Усл.п.л. 10,5 Заказ
Бесплатно
Отпечатано в типографии ТВАИИ
