Ответы к экзамену (1124580), страница 3
Текст из файла (страница 3)
Распределение перемещаемыми разделами
Данная модель распределения разрешает загрузку произвольного (нефиксированного) числа процессов в оперативную память, и под каждый процесс отводится раздел необходимого размера. Соответственно, система допускает перемещение раздела, а, следовательно, и процесса. Такой подход позволяет избавиться от фрагментации.
Сегментная адресация памяти
Рассмотрим, как связаны между виртуальный и физический адреса. Пусть у нас уже имеется виртуальный адрес (см. Рис.1). При формировании физического адреса можно выделить три стадии:
1. Вычисление эффективного адреса(смещение);
2. Затем находится адрес в линейном виртуальном 4-х гигабайтном адресном пространстве; (базовый адрес складывается с эффективным)
3. Линейное виртуальное адресное пространство отражается на физические блоки в основной памяти
На первом этапе просто берутся младшие 16 бит, которые и являются эффективным адресом, их еще называют смещением внутри сегмента.
На втором этапе нужно найти сам сегмент. В этом нам поможет вторая часть нашего виртуального адреса, которая служит индексом в таблице дескрипторов. Дескриптор это структура данных, которая описывает сегмент (см. Рис. 2). Она имеет размер 8 байт и содержит в себе такую информацию, как базовый адрес, права доступа и предел сегмента. Таким образом, зная индекс в таблице дескрипторов, мы знаем всю информацию о нужном нам сегменте. Затем уже происходит вычисление физического адреса путем сложения смещения и базы сегмента.
Но процессору необходимо знать где находится таблица дескрипторов. Для этого есть специальные регистры. GDTR (Global Descriptor Table Register) - регистр из 6 байт: первые 32 бита определяют адрес глобальной дескрипторной таблицы (GDT - Global Descriptor Table), оставшиеся 16 бит содержат в себе предел таблицы или, другими словами, еѐ размер. Помимо неѐ есть еще множество локальных дескрипторных таблиц (LDT Local Descriptor Table), из которых в один момент времени доступна только одна, какая - определяется регистром LDTR. LDTR (Local Desriptor Table Register) - регистр из 16 бит, который содержит в себе селектор необходимой таблицы. Селектор это структура (см. Рис.3), размером 2 байта, которая содержит в себе индекс дескриптора в GDT, который описывает сегмент, где расположена таблица, и прочую административную информацию. Обращение к глобальной таблице происходит только один раз, когда изменяется LDTR, затем найденый дескриптор помещается в недоступную часть регистра. Стоит отметить, что GDT присутствует в системе в единственном экземпляре, а количество LDT может доходить до 8192.
Страничная адресация памяти
Виртуальный адрес разбивается на три части: индекс в каталоге таблиц, индекс в таблице страниц и смещение внутри страницы. Запись, соответствующая индексу в каталоге таблиц, содержит в себе физический адрес нужной таблицы страниц. Затем индекс в таблице страниц указывает нам на запись, в которой находится ссылка на конкретную страницу, а именное еѐ адрес. И наконец, к адресу страницы прибавляется смещение и мы получаем нужную ячейку памяти. На рисунке ниже показана схема страничной адресации.
В механизме страничной адресации присутствуют такие типы данных как каталоги таблиц (Page Directory) и таблицы страниц (Page Table), обе эти структуры состоят из 1024 элементов(записей) размером 4 байта. Записи из каталога таблиц ссылаются на таблицы страниц, которые в свою очередь ссылаются на конкретные страницы. Все эти структуры выравнены по границе страницы.
Записи в таблице директорий и каталогах страниц называются дескрипторами таблиц страниц и каталогов страниц соответственно. Помимо базы адреса в них содержатся управляющие флаги. Таким образом с помощью структуры этих дескрипторов решается задача изолирования адресного пространства процессов.
Буфер ассоциативной трансляции (англ. Translation lookaside buffer, TLB) — это специализированный кэш центрального процессора, используемый для ускорения трансляции адреса виртуальной памяти в адрес физической памяти. TLB используется всеми современными процессорами с поддержкой страничной организации памяти. TLB содержит фиксированный набор записей (от 8 до 4096) и является ассоциативной памятью. Каждая запись содержит соответствие адреса страницы виртуальной памяти адресу физической памяти.
7.) Переключение между режимами работы процессора. Прерывания и системные вызовы. Выполнение системных вызовов без переключения в привилегированный режим.
Переключение в защищенный режим:
Переключение процессора в защищенный режим из реального осуществляется загрузкой в системный регистр CR0 слова с единичным значением бита РЕ (Protect Enable). До переключения в памяти должны быть проинициализированы необходимые таблицы дескрипторов IDT и GDT. Переключение процессора из защищенного режима в реальный возможно не только через аппаратный сброс, как это было у 80286, но и сбросом бита РЕ в CR0. До этого переключения также необходимо загрузить в сегментные регистры селекторы дескрипторов, описывающие свойства сегментов стандартного реального режима.
Возврат в реальный режим:
-
Выполняется сброс процессора.
-
Восстанавливаются регистры реального режима.
-
Затем разрешаются маскируемые и немаскируемые прерывания.
-
Для полного демаскирования прерываний следует сбросить маску в контроллере прерываний.
Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.
В зависимости от источника возникновения сигнала прерывания делятся на:
-
асинхронные, или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ);
-
синхронные, или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение стека, обращение к недопустимым адресам памяти или недопустимый код операции;
-
программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.
Внешние прерывания в зависимости от возможности запрета делятся на:
-
маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний (в x86-процессорах — сбросом флага IF в регистре флагов);
-
немаскируемые (англ. Non-maskable interrupt, NMI) — обрабатываются всегда, независимо от запретов на другие прерывания. К примеру, такое прерывание может быть вызвано сбоем в микросхеме памяти.
Систе́мный вы́зов (англ. system call) в программировании и вычислительной технике — обращение прикладной программы к ядру операционной системы для выполнения какой-либо операции.
Современные операционные системы (ОС) предусматривают разделение времени между выполняющимися вычислительными процессами (многозадачность) и разделение полномочий, препятствующее исполняемым программам обращаться к данным других программ и оборудованию. Ядро ОС исполняется в привилегированном режиме работы процессора. Для выполнения межпроцессной операции или операции, требующей доступа к оборудованию, программа обращается к ядру, которое, в зависимости от полномочий вызывающего процесса, исполняет либо отказывает в исполнении такого вызова.
8.) Аппаратно-программные средства поддержки мультипрограммного режима – система прерываний, защита памяти, привилегированный режим.
Система прерываний. Система прерываний необходима как для режима разделения времени, так и для обеспечения параллельной работы центрального процессора и периферийных устройств, так как она обеспечивает саму возможность реакции на события и автоматического переключения с одной программы на другую.
Механизм защиты памяти. Этот механизм обеспечивает безопасность одновременного нахождения в оперативной памяти нескольких независимых программ. Защита памяти гарантирует, что одна программа не сможет случайно или же предумышленно обратиться в память другой программы (по записи или даже по чтению данных). Очевидно, что без такого механизма мультипрограммный режим просто невозможен. Незаконное обращение к чужим ресурсам (в частности, к чужой оперативной памяти) "по научному" называется несанкционированным доступом.
Механизм защиты оперативной памяти на современных ЭВМ устроен весьма сложно, и часто связан с механизмом так называемой виртуальной памяти.
Аппарат привилегированных команд. Это свойство иногда называется аппаратом привилегированных команд, а иногда – защищённым режимом работы центрального процессора, и заключается оно в следующем: все команды, которые может выполнять центральный процессор, разбиваются на два класса. Команды из одного класса называются обычными командами или командами пользователя, а команды из другого класса – привилегированными или запрещёнными командами.
Далее, в центральном процессоре располагается специальный одноразрядный регистр режима работы, который может, естественно, принимать только два значения: 0 и 1. Значение этого регистра и определяют тот режим, в котором в данный момент работает центральный процессор: обычный режим (или режим пользователя) или привилегированный режим.
В привилегированном режиме центральному процессору разрешается выполнять все команды языка машины, а в режиме пользователя – только обычные (не привилегированные) команды. При попытке выполнить привилегированную команду в пользовательском режиме центральным процессором вырабатывается сигнал прерывания, а сама команда, естественно, не выполняется.
Привилегированными должны быть и все команды, которые обращаются к внешним (периферийным) устройствам. Выход один – программа пользователя должна обратиться к определённым служебным процедурам, с просьбой выполнить для неё ту работу, которую сама программа пользователя сделать не в состоянии. Эти служебные процедуры, естественно, должны работать в привилегированном режиме. Переключение из привилегированного режима в режим пользователя обычно производится по некоторой (не привилегированной) машинной команде. Значительно сложнее обстоит дело с такой опасной операцией, как переключение центрального процессора из обычного режима работы в привилегированный режим. Это переключение невозможно выполнить по какой-либо машинной команде. Обычно переключение в привилегированный режим производится автоматически при обработке центральным процессором сигнала прерывания, в этом случае процедура-обработчик прерывания уже начинает свою работу в привилегированном режиме. Иногда переключение в привилегированный режим производится центральным процессором при вызове специальных системных процедур, которые имеют полномочия для работы в привилегированном режиме.
Таймер. Встроенные в компьютер электронные часы (таймер) появились ещё до возникновения мультипрограммного режима работы. Действительно, это единственное внешнее устройство, которое гарантированно и периодически посылает центральному процессору сигналы прерываний. Без таких сигналов некоторые программы могли бы войти в выполнение бесконечного цикла, и ничто не могло бы вывести компьютер из этого состояния.
9.) Файловые системы. Основные задачи файловых систем.
Фа́йловая систе́ма (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имен файлов и (каталогов), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.