
- •Часть 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
3.7.4. Завершение процессов
В случае завершения процесса соответствующий объект-процесс становится кандидатом на изъятие из системы. При этом диспетчер объектов вызывает метод delete для объектов-процессов, который закрывает все дескрипторы в таблице объектов этого процесса.
3.7.5. Процессы и ресурсы. Таблица объектов процесса
Каждый процесс, как было показано в разделе 2, может пользоваться ресурсами через дескрипторы соответствующих объектов. Открытые дескрипторы объектов есть индексами в таблице объектов (object table), что сохраняется в управляющем блоке процесса. Эта таблица содержит указатели на все объекты, дескрипторы которых открыты процессом. Процесс может получить дескриптор объекта несколькими способами:
-
создав новый объект;
-
открыв дескриптор имеющегося объекта;
-
унаследовав дескриптор от другого процесса;
-
получив дубликат дескриптора из другого процесса.
Каждый элемент таблицы объектов содержит права доступа соответствующего дескриптора и его режим наследования, который определяет, получат ли процессы, созданные рассматриваемым процессом, копию дескриптора соответствующего объекта. Режим наследования задают во время создания объекта.
Объект может одновременно быть использован несколькими процессами, при этом каждый из них получает уникальный дескриптор, который отвечает этому объекту.
3.8 Управление потоками в Windows хр
Для того чтобы выполнять код, в рамках процесса обязательно необходимо создать поток. В системе Windows ХР реализованна модель потоков «в чистом виде». Процессы и потоки являются разными сущностями в системе, которые находятся в четко определенной взаимосвязи один из одним; для работы с ними используют разные системные вызовы. В Windows ХР никогда не использовали модель процессов, подобный традиционной модели UNIX.
Многопотоковость Windows ХР базируется на схеме 1:1. Каждому потока пользователя отвечает сущность в ядре, при этом ядро отвечает за планирование потоков. Процессы не планируются.
3.8.1. Составные элементы потока
Поток в Windows ХР состоит из таких элементов:
-
содержимого набора регистров, который определяет состояние процессора;
-
двух стеков - один используют для работы в режиме пользователя, другой - в режиме ядра; эти стеки размещены в адресном пространстве процесса, который создал этот поток;
-
локальной памяти потока (TLS);
-
уникального идентификатора потока (thread id, tid), который выбирают из того самого пространства имен, что и идентификаторы процессов.
Совокупность состояния процессора, стеков и локальной памяти потока представляет контекст потока. Каждый поток имеет собственный контекст. Все другие ресурсы процесса (его адресное пространство, открытые файлы и т.п.) совместно используются потоками.
Различают два вида потоков: потоки пользователя и потоки ядра, которые в Windows ХР называют системными рабочими потоками – system worker threads. Первые из них создают в режиме пользователя и только за необходимости перемикають в режим ядра. Другие создают в ядре во время его инициализации и выполняют в режиме ядра на протяжении всего времени их существования.