
- •Часть 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.6.2. Особенности новой реализации многопоточности в ядре Linux
Попытки усовершенствовать реализацию многотопотоковости в ядре системы, а также библиотеку поддержки потоков, которая использует новые возможности ядра, описанны в литературе [67]. Новая реализация многотопотоковости в ядре системы имеет такие особенности.
-
Повысилась производительность операции создания и завершение потоков. Снято ограничения на общее количество потоков в системе. Система остается стабильной при условиях одновременного создания и завершение сотен тысяч потоков (при наличии достаточного объема оперативной памяти).
-
Все потоки процесса теперь возвращают один и тот самый идентификатор (pid), кроме того, связь «предок-потомок» между ними не поддерживается (у созданного потока сохраняется тот самый предок, что и у потока-творца). Как процесс в системе регистрируют только начальный поток приложения.
-
Реализация вызова clone(), расширена таким образом, что сделала ненужным поток-менеджер.
Сегодня новые средства интегрированные в тестовую версию ядра. Доступная также обновленная реализация библиотеки потоков, которая получила название NPTL (Native POSIX Threads Library).
Библиотека поддержки потоков NPTL
Библиотека NPTL предназначена для того, чтобы, опираясь на новые возможности ядра, обеспечить полную и корректную реализацию стандарта потоков POSIX для использования в прикладных программах.
Основной особенностью библиотеки NPTL есть то, что в ней сохранилась поддержка схемы многопотоковости 1:1, вследствие чего достигается простота и надежность реализации. При этом производительность и масштабируемость обеспечены обновленной поддержкой багатопотоковості в ядре. Программный интерфейс библиотеки не изменился сравнительно с LinuxThreads.
3.6.3. Потоки ядра Linux
Кроме процессов и потоков пользователя, Linux также поддерживает специальный вид планированных объектов, которые имеют уже знакомое название - потоки ядра. Такие потоки планируют как обычные процессы и потоки, при этом каждый из них имеет свой идентификатор (ріd).
Отличия потоков ядра от процессов и потоков пользователя состоят в потому, что:
-
функции потока для них определяют в коде ядра;
-
они выполняются только в режиме ядра;
-
для них недоступные участки памяти, выделенные в режиме пользователя.
3.7 Управление процессами в Windows хр
Понятие процесса и потока в Windows ХР четко разграничены. Процессы в данной системе определяют «поле деятельности» для потоков, которые выполняются в их адресном пространстве. Среди ресурсов, с которыми процесс может работать прямо, отсутствует процессор - он доступный только потокам этого процесса. Процесс, тем не менее, может задать начальные характеристики для своих потоков и тем самым повлиять на их выполнение.
3.7.1. Составные элементы процесса
Рассмотрим базовые составные элементы процесса.
♦ Адресное пространство процесса состоит из набора адресов виртуальной памяти, которые он может использовать. Эти адреса могут быть связаны с оперативной памятью, а могут - с отображенными в память ресурсами. Адресное пространство конкретного процесса недоступное другим процессам.
Процесс владеет системными ресурсами, такими как файлы, сетевые соединения, устройства ввода-вывода, объекты синхронизации и т.п..
-
Процесс содержит некоторую стартовую информацию для потоков, которые в нем будут создаваться. Например, это информация о базовом приоритете и привязывании к процессору.
-
Процесс должен содержать хотя бы один поток, который система направляет на выполнение. Без потоков в Windows ХР наличие процессов невозможное.