- •Билет №2 Типы и характеристики запоминающих устройств. Организация основной памяти компьютера. Понятие адресного пространства. Прямой доступ к основной памяти.
- •Билет №3 Многоуровневая организация памяти. Модели ассоциативной кэш-памяти. Размещение, поиск и замещение блоков. Стратегии записи. Многоуровневая кэш-память.
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •Билет №5 Представление данных в эвм. Машинная арифметика. Погрешность представления чисел с плавающей точкой и ее влияние на точность вычислений.
- •Билет №8 Прерывания и программы обработки прерываний. Классификация прерываний. Зарезервированные вектора прерываний режима реального адреса микропроцессоров Intel x86. Последовательность прерывания.
- •Билет №9 Обработка внешних аппаратных прерываний. Назначение и работа контроллера прерываний. Последовательность аппаратного прерывания.
- •Билет №10 Работа микропроцессоров Intel x86 в защищенном режиме. Общая схема формирования исполнительного адреса. Кольца защиты. Организация дескрипторных таблиц. Типы дескрипторов.
- •Билет №12 Задача управления ресурсами эвм. Операционные системы и их классификация. Иерархия подсистем. Системные вызовы. Примеры реализации системных функций.
- •Билет №13 Понятие процесса. Диаграммы состояний процесса. Параллельное выполнение программ в различных операционных средах. Многопоточные операционные системы. Д иаграмма сстояния процессора:
- •Взаимодействие процессов. Асинхронно выполняющиеся процессы. Проблема критической секции и семафорные примитивы. Проблема тупика и методы ее решения. Алгоритм банкира.
- •Линейное упорядочение ресурсов
- •Иерархическое упорядочение ресурсов
- •Алгоритм банкира
- •6 Списки
- •Билет №19 Реализация множества на базе вектора. Последовательный и двоичный поиск. Битовая реализация множества. Оценка сложности алгоритмов. Хеширование. Методы разрешения коллизий.
- •8. Множества
- •Билет №20 Алгоритмы сортировки. Априорная оценка сложности алгоритма. Сравнение эффективности различных алгоритмов сортировки. Особенности реализации.
Билет №13 Понятие процесса. Диаграммы состояний процесса. Параллельное выполнение программ в различных операционных средах. Многопоточные операционные системы. Д иаграмма сстояния процессора:
Готовый процесс – процесс, владеющий всеми ресурсами кроме процессорного времени
Блокированный процесс – процесс, не владеющий хотя-бы одним критическим ресурсом (кроме процессорного времени)
Р азличают 2 вида готовности задачи: готовность в режиме ядра и готовность в режиме пользователя
При вызове другой задачи, вызывающая задача передает ей часть своих ресурсов
Операционные системы:
1 Однозадачные
2 Многозадачные
событийно управляемые системы
системы реального времени
системы разделения времени
Системы разделения времени:
Задаче Т1 выделяется процессорное время t1, затем процессор переключается на задачу T2, которой выделяется процессорное время t2 и т.д.
Всякая задача имеет назначенный ей уровень информации, в зависимости от уровня приоритета определяется частота активации процесса
Системы реального времени:
У каждого процесса есть ограниченное время на выполнение (deadline), после которого его результаты становятся ненужными, поэтому для эффективной работы процессы не должны пропускать ни одного дедлайна. Существуют два подхода в решении этой проблемы:
Статический алгоритм планирования:
Приоритеты заранее устанавливаются для каждого процесса.
Концепция:
- процесс должен быть завершен за время его периода
- процессы не зависят друг от друга
- каждому процессу требуется одинаковое процессорное время на каждом интервале
- у непериодических процессов нет жестких сроков
- прерывание процесса происходит за ограниченное время.
Процессы выполняются в соответствии с приоритетами.
Наибольшие приоритеты выдаются задачам с наименьшим сроком выполнения
Динамический алгоритм планирования:
Наибольший приоритет устанавливается процессу, у которого меньше времени на выполнение. Приоритетное прерывание обслуживания является неотъемлемой составляющей ОСРВ, т.к. в системе реального времени должны существовать гарантии того, что событие с высоким приоритетом будет обработано перед событием более низкого приоритета. Все это ведет к тому, что ОСРВ нуждается не только в механизме планирования на основе приоритетов, прерывающих обслуживание, но также и в соответствующем механизме управления прерываниями. Более того, ОСРВ должна быть способна запрещать прерывания, когда необходимо выполнить критический код, который нельзя прерывать.
Концепция:
- обеспечить выполнение процесса с наивысшим приоритетом
- не допустить инверсии приоритетов, когда задачи с высокими приоритетами ожидают ресурсы, захваченные задачами с более низкими приоритетами.
Событийно управляемые системы:
Процесс начинает выполняться при каком-то событии, например при нажатии кнопки.
Пример: ядро ОС – при обращении к ней какой-то задачи ядро выдает ответ.
Билет №14
Задача управления памятью. Связное и несвязное распределение физической памяти. Выделение памяти разделами фиксированного и переменного размера. Оверлейные структуры. Системы со свопингом. Виртуальная память. Сегментная и страничная организация виртуальной памяти. Трансляция адресов. Стратегии замещения разделов. Сегментно-страничная модель памяти микропроцессоров Intel x86.
У правление физической (реальной) памятью
1)связное распределение памяти разделами фиксированного размера
Размеры разделов не меняются. Они опр-ся архитектурой.
У каждой задачи свой раздел.
а) работа задачи в конкретном разделе
б) генерация перемещаемого кода
Плюс – простота
Минус – низкая эффективность использования памяти
2)связное распределение памяти разделами переменного размера
Каждой задаче выделяется необходимое кол-во памяти.
стратегия выбора раздела (при альтернативе)
выбор подходящего по размеру раздела
выбор первого подходящего (дабы не много ресурсов для хранения данных о задаче)
выбор наименее подходящего по размеру раздела (забить мелкие «ненужные» куски памяти)
Плюс – выс. эффективность начального исп-ия памяти
Минусы – выс. фрагментация памяти при послед. исп-ии разделов
слож. стратегия планирования исп-ия памяти
необходимость уплотнения памяти
Всё, что связано с задачей, лежит вместе (хрен malloc-у)
3)Несвязное распределение памяти разделами переменного размера
Код задачи спец. подготовлен.
Сегментная архитектура памяти – хорошая основа этой стратегии.
Минус – относительная слож-ть реализации
Плюсы – выс.гибкость и эфф-ть распределения
- уменьшение фрагментации
- упрощение сборки мусора
4)Системы со свопингом!
Вся память выделяется активной задаче.
Во вторичной памяти создаются образы задач, содержащие их коды, данные и пр.
Когда задача пассивна, у неё нет ни процессорного времени, ни памяти.
В сё получает при загрузке. По окончании работы её рез-ты копируются в образ задачи.
Т.е. постоянная перезагрузка м/у ОП и вторичной.
Плюсы – простое планирование памяти
прогнозируемое поведение задачи во времени
5)Оверлейные структуры
Оверлеи определяются программистом. Это независимые куски задачи.
ВИРТУАЛЬНАЯ ПАМЯТЬ.
Сегментная модель |
Страничная модель |
Сегмент – раздел (блок) памяти переменного размера + : Хорошо адаптирована под логическую структуру задачи - : сложна для реализации обмена между различными ур-ми памяти
|
Страница – раздел (блок) памяти фиксированного размера + : простота реализации - : плохо адаптирована по лог. структуру задачи |
Дополнение
1)Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств, и обеспечить защиту памяти между разными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище (см. Свопинг).
При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ.
Применение механизма виртуальной памяти позволяет:
упростить адресацию памяти клиентским программным обеспечением;
рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);
изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).
2) Страничная организация виртуальной памяти
В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера ассоциативной трансляции. Если ему не удалось это сделать, то требуется обращение к таблице страниц (так называемый Page Walk), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры). Если страница выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска (см. свопинг). При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки).
Сегментная организация виртуальной памяти
Механизм организации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты. Этот механизм позволяет, к примеру, разбить данные процесса на логические блоки. Для каждого сегмента, как и для страницы, могут быть назначены права доступа к нему пользователя и его процессов. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.
Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.
Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.
3) Существует 3 базовых концепции трансляции адресов: статическая (Static Network Address Translation), динамическая (Dynamic Address Translation), маскарадная (NAPT, NAT Overload, PAT).
Статический NAT — Отображение незарегистрированного IP адреса на зарегистрированный IP адрес на основании один к одному. Особенно полезно, когда устройство должно быть доступным снаружи сети.
Динамический NAT — Отображает незарегистрированный IP адрес на зарегистрированный адрес от группы зарегистрированных IP адресов. Динамический NAT также устанавливает непосредственное отображение между незарегистрированным и зарегистрированным адресом, но отображение может меняться в зависимости от зарегистрированного адреса, доступного в пуле адресов, во время коммуникации.
Перегруженный NAT (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP адрес, используя различные порты. Известен также как PAT (Port Address Translation)
Билет №15