- •Вопросы и литература по курсу аос (по всем вопросам должен быть представлен краткий рукописный конспект в общей тетради)
- •Структура программного обеспечения персонального компьютера.
- •Понятие операционной системы персонального компьютера. Основные интерфейсы компьютерной системы.
- •Краткая история операционных систем.
- •Доисторический период
- •Первый период (1945-1955)
- •Основные функциональные компоненты ос.
- •Подсистема управления процессами
- •Управления памятью
- •Управление файлами и внешними устройствами
- •Защита данных и администрирование
- •Интерфейс прикладного программирования
- •Пользовательский интерфейс
- •Сетевые и распределенные операционные системы.
- •Требования к современным операционным системам.
- •Базовая архитектура операционной системы. Понятие ядра системы. Классификация операционных систем в зависимости от особенностей архитектуры ядра.
- •По архитектуре ядра системы можно разделить на:
- •-2) Слоистая архитектура ядра
- •Аппаратная зависимость и переносимость операционных систем.
- •Совместимость операционных систем и множественные прикладные среды.
- •Подсистема управления процессами, основные задачи. Понятие многозадачности.
- •Многозадачность в системах пакетной обработки, разделения времени и реального времени. Системы пакетной обработки.
- •Системы разделения времени
- •Системы реального времени
- •Состояния потока
- •Планирование и диспетчеризация потоков
- •Квантование – каждому потоку последовательно выделяется квант процессорного времени.
- •Алгоритмы планирования, основанные на приоритетах
- •Смешанные алгоритмы планирования
- •Приоритеты и концепции планирования потоков в Windows 2000, ос Unix System V и os/2. Система ос Unix System V Release 4
- •Система os/2
- •Система Windows 2000
- •Планирование процессов и потоков в системах реального времени.
- •Назначение
- •Механизм прерываний
- •Реализация системных вызовов. Использование механизма прерываний для реализации системных вызовов.
- •Понятие гонок
- •Критическая секция кода и исключение гонок
- •Блокирующие переменные
- •Понятие семафора и его использование для целей синхронизации.
- •Синхронизация и проблема тупиков.
- •Синхронизирующие объекты в операционных системах.
- •Методы распределения памяти
- •Фиксированные разделы
- •Динамические разделы
- •Перемещаемые разделы
- •Остальные методы требуют использования внешней памяти
- •Свопинг
- •Виртуальная память
- •Страничная организация памяти
- •2 Базисных свойства страничной организации:
- •Сегментное распределение памяти
- •Сегментно-страничное распределение
- •Организация виртуальной памяти, преобразование адреса.
- •Обмен данными между процессами на основе виртуальной памяти.
- •Аппаратная поддержка сегментной организации памяти в системах на основе процессоров с архитектурой ia32. Небольшое вступление про процессоры ia-32 и аппаратную поддержку мультипрограммирования
- •Регистры сегментов
- •Управляющие регистры:
- •Регистры системных адресов
- •Регистры отладки и тестирования
- •Средства поддержки сегментной организации памяти в процессорах Пентиум (собственно ответ на билет)
- •Итак, процесс обратился за памятью. Что происходит?
- •Защита данных в системах с сегментной организацией памяти на основе процессоров с архитектурой ia32.
- •Привилегии подробнее:
- •Смешанная сегментно-страничная организация памяти в системах на основе процессоров с архитектурой ia32. Трансляция адреса. Буфер ассоциативной трансляции (tlb).
- •Кэширование данных
- •Принципы работы кэш - памяти.
- •Проблема согласования данных.
- •Вытеснение данных из кэШа
- •Случайное отображение
- •Детерминированный способ отображения
- •Управление памятью в реальном режиме адресации на примере консоли Windows xp.
- •Задачи подсистемы управления внешними устройствами.
- •Организация параллельной работы устройств ввода-вывода и процессора
- •Согласование скоростей обмена
- •Разделение устройств и данных между процессами
- •Обеспечение удобного и логического интерфейса между устройствами и остальной частью системы
- •Поддержка широкого спектра драйверов с возможностью расширения
- •Динамическая загрузка и выгрузка драйверов.
- •Поддержка синхронных и асинхронных операций ввода-вывода
- •Поддержка нескольких файловых систем.
- •Типы файлов
- •Иерархическая структура фс
- •Имена файлов
- •Монтирование
- •У файла есть:
- •Логическая организация файла:
- •Физическая организация данных на диске.
- •Физическая организация файла.
- •Связанный спискок кластеров дисковой памяти
- •Связанный список индексов – фс фат.
- •Файловые операции.
- •Универсальные действия:
- •Стандартные файлы ввода и вывода, перенаправление ввода-вывода.
- •Файловые системы Unix (s5 и ufs).
- •Обзор семейства операционных систем Microsoft Windows.
- •Системный реестр: структура системного реестра Windows;
- •Импорт и экспорт данных системного реестра;
- •Предопределенные ключи системного реестра;
Сегментное распределение памяти
Страничное распределение не учитывает смысла.
С ним нельзя организовать дифференцированный доступ к разным частям программы.
Также разбиение по смыслу позволило бы совместное использование подпрограмм разными процессами, без дублирования кодов этой подпрограммы.
Это позволяет сделать сегментное распределение памяти.
ВАП процесса делится на сегменты (по смыслу) – либо по принятым в системе законам либо по указаниям программиста.
Максимальный размер сегмента ограничен разрядностью процессора (32 разряда – 4 Гбайт)
Диапазон адресов одного сегмента – 0000 0000 – FFFF FFFF
Сегменты не упорядочены друг относительно друга (нет общего линейного виртуального адреса)
Виртуальный адрес = номер сегмента + линейный виртуальный адрес внутри сегмента.
При создании процесса ОС формирует таблицу сегментов. Для каждого сегменты указаны:
Базовый физический адрес сегмента в ОП
Размер сегмента
Правила доступа к нему
Признаки модификации, присутствия и обращения и еще чего-то.
Если ВАП двух процессов включают один сегмент, то в их таблицах просто есть ссылки на один и тот же сегмент.
Очень похоже на страничную организацию, но:
Сегменты имеют произвольный размер, поэтому физический адрес получается путем сложения базового адреса сегмента (берется по номеру сегмента) и смещения. Конкатенация не прокатит.
Сложение замедляет процедуру преобразования адреса.
Избыточность – для работы программы часто не нужен целый сегмент
И самое страшное – ФРАГМЕНТАЦИЯ. Возникает из-за непредсказуемости размера сегмента.
Плюс:
Возможность задавать разные права доступа к разным сегментам (это невозможно со страничной организацией)
Сегментно-страничное распределение
Комбинация страничного и сегментного методов.
Сочетает плюсы обоих подходов (должен, по крайней мере);
ВАП делится на сегменты (можно задавать права доступа)
Сегменты делятся на страницы фиксированного размера – перемещение данных осуществляется страницами (минимизация фрагментации)
Сегменты образуют линейное адресное пространство
Адрес можно задавать:
** либо линейным адресом
** либо парой чисел: номер сегмента + смещение (ОС делает так, т.к. это позволяет проверить права доступа к сегменту)
Напрочь не понимаю, что на этой картинке нарисовано, но…
Создается процесс.
ОС создает для процесса таблицу сегментов, где содержатся дескрипторы всех сегментов (все, как при сегментной организации, только базовый адрес указывается НЕ ФИЗИЧЕСКИЙ, а начальный линейный виртуальный адрес сегмента)
ОС, используя начальный линейный виртуальный адрес сегмента, преобразовывает пару (номер сегмента + смещение в сегменте) в ЛИНЕЙНЫЙ ВИРТУАЛЬНЫЙ адрес байта.
Потом, используя СТРАНИЧНЫЕ механизмы, этот линейный виртуальный адрес байта преобразуется в физический.
Деление ВАП процесса на страницы аналогично страничной организации памяти:
Размер страницы – степень двойки
Нумерация виртуальных страниц – в пределах ВАП процесса
Нумерация физических страниц – в пределах оперативной памяти.
Для каждого процесса также ведется ТАБЛИЦА СТРАНИЦ
В память загружаются / выгружается только часть страниц процесса по разным всяким механизмам.
Базовый адрес таблицы страниц и таблицы сегментов – часть контекста процесса, они хранятся в специальных регистрах процессора.
Итак, преобразование виртуального адреса в физический:
Механизм сегментации (добываем линейный виртуальный адрес):
Дано: номер сегмента, смещение
В спец регистре хранится базовый адрес таблицы сегментов
Базовый адрес + номер сегмента = адрес дескриптора сегмента
Анализ полей дескриптора (разрешен ли доступ к сегменту)
Из дескриптора добываем базовый адрес сегмента + смещение = линейный виртуальный адрес.
Страничный механизм (получаем физический адрес)
Линейный виртуальный адрес раскладывается на номер страницы и смещение внутри страницы (отделение энного к-ва младших бит, в зависимости от размера страницы)
В спец регистре хранится адрес таблицы страниц, оттуда добываем дескриптор нужной страницы, и находим соответствующий номер физической страницы
К номеру физической страницы прибавляем смещение = физический адрес.
Ура!!!
Механизм сегментации и страничный механизм здесь довольно изолированы друг от друга, и могут быть независимо изменены.
Например, страничный механизм может быть многоуровневый (добавились разделы, описанные в страничной реализации). Так, например, работают некоторые процессоры Интел, в т.ч Интел Пентиум.
Сегментно-страничное управление памятью можно реализовать по-другому:
ВАП процесса делим на сегменты
Сегменты делим на виртуальные страницы, но они нумеруются В ПРЕДЕЛАХ СЕГМЕНТА, а не всего ВАП процесса.
Виртуальный адрес задается 3 параметрами: Номер Сегмента + Номер Страницы + Смещение в Странице.
У каждого процесса – своя таблица сегментов, хранится в регистре.
У каждого СЕГМЕНТА – своя таблица страниц
В таблице страниц – дескрипторы страниц, без особенностей
В таблице сегментов – дескрипторы сегментов хранят АДРЕС ТАБЛИЦ СТРАНИЦ.
Преобразование адреса в такой схеме еще красивше:
Есть номер сегмента, находим адрес соответствующей таблицы страниц
Есть номер страницы, находим номер физической страницы
К нему конкатенируем смещение.
Ура!!!
