- •Часть 1
- •В.Г.Олифер, н.А.Олифер. Сетевые операционные системы. Учебное пособие.-сПб.:бхв-Петербург, 2006.-536с.
- •В.А.Шеховцов. Операційні системи. Підручник .-к.:Виканавча група внv. 2005. 576с.
- •Столлингс в. Операционные системы. М.: Вильямс, 2001. -672с. Оглавление
- •Раздел 1 введение
- •1.1. Понятие операционной системы, ее назначение и функции
- •1.1.1. Понятие операционной системы
- •1.1.2. Назначение операционной системы
- •1.1.3. Операционная система как расширеная машина
- •1.1.4. Операционная система как распределитель ресурсов
- •1.2. История развития операционных систем
- •1.3. Классификация современных операционных систем
- •1.4. Функциональные компоненты операционных систем
- •1.4.1. Управление процессами и потоками
- •1.4.2. Управление памятью
- •1.4.3. Управление вводом-выводом
- •1.4.4. Управление файлами и файловые системы
- •1.4.5. Сетевая поддержка
- •1.4.6. Безопасность данных
- •1.4.7. Интерфейс пользователя
- •Раздел 2
- •2.1. Базовые понятия архитектуры операционных систем
- •2.2. Реализация архитектуры операционных систем
- •2.2.1. Монолитные системы
- •2.2.2. Многоуровневые системы
- •2.2.3. Системы с микроядром
- •2.2.4. Концепция виртуальных машин
- •2.3. Операционная система и ее окружение
- •2.3.1. Взаимодействие ос и аппаратного обеспечения
- •2.3.2. Взаимодействие ос и выполняемого программой
- •2.4. Особенности архитектур
- •Раздел 3
- •3.1. Базовые понятия процессов и потоков
- •3.1.1. Процессы и потоки в современных ос
- •3.1.2. Модели процессов и потоков
- •3.1.3. Составные элементы процессов и потоков
- •3.2. Многопотоковость и ее реализация
- •3.2.1. Понятие параллелизма
- •3.2.2. Виды параллелизма
- •3.2.3. Преимущества и недостатки многопотоковости
- •3.2.4. Способы реализации модели потоков
- •3.2.5 Состояния процессов и потоков
- •3.3 Описание процессов и потоков
- •3.3.1. Управляющие блоки процессов и потоков
- •3.3.2. Образы процесса и потока
- •3.4. Переключение контекста и обработка прерываний
- •3.4.1. Организация переключения контекста
- •3.4.2. Обработка прерываний
- •3.5 Создание и завершение процессов и потоков
- •3.5.1 Создание процессов
- •3.5.2. Иерархия процессов
- •3.5.3. Управление адресным пространством во время создания процессов
- •3.5.4. Особенности завершения процессов
- •3.5.5. Синхронное и асинхронное выполнение процессов
- •3.5.6. Создание и завершение потоков
- •3.6 Управление потоками в Linux
- •3.6.1. Базовая поддержка многотопотоковости
- •3.6.2. Особенности новой реализации многопоточности в ядре Linux
- •3.6.3. Потоки ядра Linux
- •3.7 Управление процессами в Windows хр
- •3.7.1. Составные элементы процесса
- •3.7.2. Структуры данных процесса
- •3.7.3. Создание процессов
- •3.7.4. Завершение процессов
- •3.7.5. Процессы и ресурсы. Таблица объектов процесса
- •3.8 Управление потоками в Windows хр
- •3.8.1. Составные элементы потока
- •3.8.2. Структуры данных потока
- •3.8.3. Создание потоков
- •Раздел 4
- •4.1. Виды межпроцесорного взаимодействия
- •4.1.1. Методы распределения памяти
- •4.1.2. Методы передачи сообщений
- •4.1.3. Технология отображаемой памяти
- •4.1.4. Особенности межпроцесорного взаимодействия
- •4.2. Базовые механизмы межпроцессового взаимодействия
- •4.2.1. Межпроцессовое взаимодействие на базе общей памяти
- •4.2.2. Основы передачи сообщений
- •4.2.3. Технологии передачи сообщений
- •Глава 5
- •5.1 Функции ос по управлению памятью
- •5.2 Типы адресов
- •5.3 Алгоритмы распределения памяти
- •5.3.1 Распределение памяти фиксированными разделами
- •5.3.2 Распределение памяти динамическими разделами
- •5.3.3 Перемещаемые разделы
- •5.4 Свопинг и виртуальная память
- •5.4.1 Страничное распределение
- •5.4.2 Сегментное распределение
- •5.4.3 Сегментно-страничное распределение
- •5.5 Разделяемые сегменты памяти
- •5.6 Кэширование данных
- •5.6.1 Иерархия запоминающих устройств
- •5.6.3 Принцип действия кэш-памяти
- •5.6.4 Проблема согласования данных
- •5.6.5 Способы отображения основной памяти на кэш
- •5.6.6 Схемы выполнения запросов в системах с кэш-памятью
- •Раздел 6 Логическая и физическая организация файловой системы
- •6.1 Логическая организация файловой системы
- •6.1.1 Цели и задачи файловой системы
- •5.1.2 Типы файлов
- •5.1.3 Иерархическая структура файловой системы
- •5.1.4 Имена файлов
- •5.1.5 Монтирование
- •5.1.6 Атрибуты файлов
- •5.1.7 Логическая организация файла
- •5.2 Физическая организация файловой системы
- •5.2.1 Диски, разделы, секторы, кластеры
- •5.2.2 Физическая организация и адресация файла
- •5.2.3 Физическая организация fat
- •5.2.4 Физическая организация ntfs
Раздел 4
Межпроцессовые взаимодействия
-
Проблемы межпроцессового взаимодействия
-
Виды межпроцессового взаимодействия
-
Принципы и базовые примитивы передачи сообщений
-
Технологии передачи сообщений
До сих пор мы рассматривали взаимодействие потоков одного процесса. Главной особенностью этого взаимодействия есть простота технической реализации обмена данными между ними - все потоки одного процесса используют одно адресное пространство, и могут свободно получать доступ к совместно используемым данным, будто они есть их собственными. Поскольку технических трудностей с реализацией обмена данными здесь нет, основной проблемой, которую нужно решать в этом случае, есть синхронизация потоков.
С другой стороны, каждый поток выполняется в рамках адресного пространства некоторого процесса, поэтому часто возникает задача организации взаимодействия между потоками разных процессов. Эта технология появилась задолго до распространению многопотоковости.
Для потоков разных процессов вопрос обеспечения синхронизации тоже являются актуальными, но они в большинстве случаев не основываются на понятии совместно используемых данных (такие данные по умолчанию для процессов отсутствуют). Кроме того, прибавляется довольно сложная задача обеспечения обмена данными между защищенными адресными пространствами. Подходы к ее решению определяют разные виды межпроцессового взаимодействия (interprocess communication, IPC).
4.1. Виды межпроцесорного взаимодействия
Реализация межпроцессового взаимодействия осуществляется тремя основными методами:
-метод передачи сообщений;
-метод распределения памяти;
-метод отображаемой памяти.
Еще одним методом ІРС также можно считать технологию сигналов, которая была рассмотрена в разделе 3 (Л1). Сигналы были рассмотрены раньше, так как их использование не сводится только к организации ІРС (синхронные сигналы являются средством оповещения процесса об исключительной ситуации); без них сложно объяснить ряд базовых понятий управления процессами (например, ожидание завершения процесса).
4.1.1. Методы распределения памяти
Методы распределения памяти (shared memory) дают возможность двум процессам обмениваться данными через общий буфер памяти. Перед обменом данными каждый из тех процессов должны присоединить этот буфер к своему адресному пространству с использованием специальных системных вызовов (перед этим проверяют права). Буфер доступен в системе с помощью процедуры именования, срок его существования обычно ограничен временем работы всей системы. Данные в нем фактически совместно используются и для потоков. Никаких средств синхронизации доступа к этим данным розпределения памяти не обеспечивается, программист, так же, как и при разработке многопотокових приложений, должен организовывать её сам.
4.1.2. Методы передачи сообщений
В основе методов передачи сообщений (message passing) лежат разные технологии, которые дают возможность потокам разных процессов (которые, возможно, выполняются на разных компьютерах) обмениваться информацией в виде фрагментов данных фиксированной или сменной длины, которые называют сообщениями (теззаез). Процессы могут принимать и отсылать сообщение, при этом автоматически обеспечивается их пересылка между адресными пространствами процессов одного компьютера или через сеть. Важной особенностью технологий передачи сообщений есть то, что они не опираются на совместно используемые данные - процессы могут обмениваться сообщениями, даже не знавая один об одном.
