- •Вопросы и литература по курсу аос (по всем вопросам должен быть представлен краткий рукописный конспект в общей тетради)
- •Структура программного обеспечения персонального компьютера.
- •Понятие операционной системы персонального компьютера. Основные интерфейсы компьютерной системы.
- •Краткая история операционных систем.
- •Доисторический период
- •Первый период (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;
- •Импорт и экспорт данных системного реестра;
- •Предопределенные ключи системного реестра;
Привилегии подробнее:
В процессоре Пентиум – МАНДАТНЫЙспособ определения прав доступа (механизм колец защиты):
Есть 4 уровня привилений:
0 – ядро
1, 2 – системные утилиты
3 – прикладные проги
Для характеристики уровня привилегий есть несколько переменных:
DPL – Descripror Privilege Level – (DPL –поле в дескрипторе сегмента – в таблице дескрипторов)
RPL – Request Privilege Level – (RPL – поле в селекторе сегмента (то, с чем мы запрашиваем память))
СPL – Current Privilege Level – (RPL – поле в селекторе кодового сегмента (то, что сейчас выполняется))
EPL – Effective Privilege Level – эффективный уровень привилегий запроса. Что это?
Уровни привилегий назначаются дескрипторам и селекторам. В любом случае это 2 бита: 00 01 10 11. Основное из чего оно вычисляются все переменные – DPL.
При остановке процесса уровень привилегий процесса сохраняется в его контексте. В Процессоре Пентиум это записывается в системный сегмент TSS – task state segment
Контроль доступа:
- к сегментам данных
Сопоставление EPL запроса и DPL сегмента данных:
EPL = max (RPL, CPL) - худшее
CPL – привилегии выполняемого кода
RPL – это привилегии, с которыми запрашиваем данные
DPL – привилегии, с которыми данные могут быть запрошены
- к сегменту стека
Предотвратить доступ низкоуровневого кода к данным, выработанным высокоуровневым кодом и помещенным в стек
EPL кода = DPL сегмента стека, тогда разрешен доступ
Т.е. для каждого уровня привилегий используется отдельный сегмент стека.
- к сегменту кода
CPL сравниваем с DPL, а как именно – все сложно.
Смешанная сегментно-страничная организация памяти в системах на основе процессоров с архитектурой ia32. Трансляция адреса. Буфер ассоциативной трансляции (tlb).
Для поддержки страничной организации – в управляющем регистре CR0 нужно старший бит PG установить в 1.
При этом сегментный механизм продолжает работать, но смысл его работы меняется.
ВАП процесса ограничивается размером 4 Гб
Оно делится на витруальные сегменты
Виртуальные сегмены могут накладываться друг на друга (процессор это не контролирует, это забота ОС)
ВАП и ФАП разбиты на страницы размером 4 кб
Всего страниц – 1 Мб, 2 20 степени
Виртуальный адрес – это СЕЛЕКТОР + СМЕЩЕНИЕ.
1 этап преобразования: сегментный:
На основании индекса селектора берем нужный дескриптор из GDT или LDT
Из дескриптора добываем базовый адрес сегмента
Но! Базовый адрес дескриптора здесь – это базовый адрес сегмента в ВАП а не в ФАП как в сегментной организации.
Плюсуем к базовому адресу смещение = Линейный Виртуальный Адрес.
ЛВА передаем страничному механизму.
2 этап – страничный.
ЛВА на основании размера страницы делим на номер страницы и смещение
Находим в таблице страниц нужный дескриптор
Находим номер физической страницы
Плюсуем смещение
Вот как выглядит дескриптор страницы в таблице страниц
P – бит присутствия в физической памяти
W – бит разрешения записи
U – бит пользователь / супервизор
A – к странице был доступ
D – признак модификации
PWT и PCD – управление механизмом кэширования
AVL – резерв для нужд ОС
Страницы маленькие, их много, и таблица страниц занимает целых 4 метра. Это до фига, поэтому страницы группируются в разделы, с формированием таблиц раздела = размеру страницы.
Номер виртуальной страницы (20 разрядов) – делится на номер раздела и номер страницы в разделе. Ну и дальше все преобразуется как описано в страничном механизме.
Трансляция адреса. Буфер ассоциативной трансляции (TLB).
Для ускорения преобразования адресов в блоке управления страницами используется ассоциативная память, где кэшируется 32 дескриптора активно используемых страниц. Это позволяет по номеру витруальной страницы быстро извлекать номер физической страницы без обращения к таблицам разделов и страниц.
Буфер ассоциативной трансляции (англ. Translation lookaside buffer, TLB) — это специализированный кэш центрального процессора, используемый для ускорения трансляции адреса виртуальной памяти в адрес физической памяти. TLB используется всеми современными процессорами с поддержкой страничной организации памяти. TLB содержит фиксированный набор записей (от 8 до 4096) и является ассоциативной памятью. Каждая запись содержит соответствие адреса страницы виртуальной памяти адресу физической памяти. Если адрес отсутствует в TLB, процессор обходит таблицы страниц и сохраняет полученный адрес в TLB, что занимает в 10—60 раз больше времени, чем получение адреса из записи, уже закешированной TLB. Вероятность промаха TLB невысока и составляет в среднем от 0,01 % до 1 %.
В современных процессорах может быть реализовано несколько уровней TLB с разной скоростью работы и размером. Самый верхний уровень TLB будет содержать небольшое количество записей, но будет работать с очень высокой скоростью, вплоть до нескольких тактов. Последующие уровни становятся медленнее, но, вместе с тем и больше.
Иногда верхний уровень TLB разделяется на 2 буфера, один для страниц, содержащих исполняемый код, и другой — для обрабатываемых данных.
Иерархия запоминающих устройств и кэширование данных. Принципы работы кэш - памяти. Детерминированный и случайный способы отображения основной памяти на кэш. Проблема согласования данных. Схемы выполнения запросов в схемах с двухуровневой кэш памятью.
Иерархия запоминающих устройств:
Память часто называют «узким местом» фон-Неймановских ВМ из-за ее серьезного отставания по быстродействию от процессоров, причем, разрыв этот неуклонно увеличивается.
Так, если производительность процессоров возрастает вдвое примерно каждые 1,5 года, то для микросхем памяти прирост быстродействия не превышает 9% в год (удвоение за 10 лет), что выражается в увеличении разрыва в быстродействии между процессором и памятью приблизительна на 50% в год.
При создании системы памяти постоянно приходится решать задачу обеспечения требуемой емкости и высокого быстродействия за приемлемую цену. Наиболее эффективным решением является создание иерархической памяти. Иерархическая память состоит из ЗУ различных типов (см. рисунок ниже), которые, в зависимости от характеристик, относят к определенному уровню иерархии.
Более высокий уровень меньше по емкости, быстрее и имеет большую стоимость в пересчете на бит, чем более низкий уровень. Уровни иерархии взаимосвязаны: все данные на одном уровне могут быть также найдены на более низком уровне, и все данные на этом более низком уровне могут быть найдены на следующем нижележащем уровне и т. д.
Фундамент пирамиды – внешняя память (жесткий и гибкий магнитный диск, магнитные ленты, оптические диски, флэшки):
Объем – десятки и сотни гигабайт
Время доступа – десятки миллисекунд
Оперативная память:
Объем – гигабайты
Время доступа – 10-20 наносекунд
Реализуется на относительно медленной динамической памяти DRAM
Быстродействующая память (ее же называют Кэш??)
На основе статической памяти SRAM
Объем – десятки-сотни килобайт
Время доступа – до 8 наносек
Регистры процессора
Объем – десятки байт
Время доступа – 2-3 наносекунды (определяется быстродействием процессора)
