- •Организация эвм и систем
- •Глава 6 Организация памяти
- •Глава 1. Структура современного компьютера
- •1.1 Основные понятия
- •1.2 Принцип действия компьютера
- •Цикл работы компьютера
- •1.3 Программное обеспечение компьютера
- •1.4 Надежность, производительность и показатели быстродействия
- •Производительность компьютера
- •Технико-эксплуатационные характеристики
- •1.5 Вычислительные системы и сети
- •Вопросы для самопроверки
- •Глава 2 представление информации в компьютере
- •5.2 Система команд. Форматы команд и способы адресации
- •5.3 Система прерываний и приостановок, состояние процессора
- •Характеристики системы прерываний
- •Организация перехода к прерывающей программе
- •5.4 Режимы работы процессора: однопрограммный, пакетный, разделения времени, реального времени
- •5.5 CisCиRisCкомпьютеры
- •Процессоры персональных компьютеров
- •5.6 Устройства управления
- •Устройства управления с хранимой в памяти логикой
- •5.7 Методы и средства повышения производительности процессоров персональных компьютеров
- •Суперскалярная обработка
- •Переименование регистров
- •Динамическое прогнозирование условных переходов
- •Контроллер памяти Контроллер pci
- •Вопросы для самопроверки
- •Глава 6. Организация памяти
- •6.1 Адресное пространство
- •6.2 Виды памяти
- •6.3 Оперативная память
- •Статическая и динамическая память
- •6.5 Внешняя память
- •6.6 Организация виртуальной памяти
- •Страничное, сегментное и странично-сегментное распределение
- •Свопинг
- •6.7 Защита памяти
- •Вопросы для самопроверки
- •Глава 7. Интерфейсы
- •7.1 Понятие интерфейса и его характеристики
- •7.1 Состав линий системной шины
- •Передача данных по проводным линиям связи По линиям связи современных интерфейсов преимущественно передаются низкочастотные дискретные одно - и биполярные сигналы (рисунок 7.Х).
- •Адрес верный
- •7.2 Подключение устройств
- •7.4 Интерфейсы внешней памяти
- •7.5 Малые интерфейсы (usb,ide,rs-232c,scsi)
- •Вопросы для самопроверки
- •Глава 8. Периферийные устройства компьютеров
- •8.1 Организация систем ввода-вывода. Каналы, контроллеры
- •Основные функции свв
- •Программный ввод-вывод
- •Прямой доступ в память
- •8.2 Клавиатура и мышь
- •8.3 Дисплеи
- •8.4 Принтеры
- •8.5 Накопители на магнитных дисках
- •Структура накопителя на жестких дисках
- •Структура и особенности накопителя на гмд
- •8.6 Накопители на компакт-дисках (cd-rom, cd-r, cd-rw, dvd)
- •8.7 Другие виды периферийных устройств
- •Вопросы для самопроверки
- •Какие особенности пу делают возможным организацию параллельной обработки и ввода-вывода?
- •Закон Амдала
- •Совместно используемая и распределенная память
- •Когерентность кэш-памяти
- •Наибольшее распространение получили следующие аппаратные механизмы, реализующие протокол когерентности кэш-памяти: это протоколы наблюдения и на основе справочника.
- •9.2 Конвейерные системы
- •Векторные регистры
- •9.3 Симметричные системы
- •9.4 Вычислительные системы со сверхдлинным командным словом
- •9.5 Другие виды мультипроцессорных систем
- •Машины с массовым параллелизмом
- •Нейрокомпьютеры
- •9.6 Проблемно-ориентированные системы
- •Вопросы для самопроверки
- •Глава 10. Организация вычислительного процесса
- •12.2 Системы автоматического контроля и диагностики
- •Контроль передач информации
- •Контроль арифметических операций
- •12.3 Защита памяти. Raid-массивы
- •12.4 Построение «безотказных» систем питания Вопросы для самопроверки
- •Список литературы
Свопинг
Как уже неоднократно подчеркивалось, объем оперативной памяти ограничен. Но чтобы выполнить задачу необходимо «загрузить» ее в ОП. Обычно процессор, работающий в режиме мультипрограммирования (например, в сервере), выполняет несколько задач: одна задача находится на стадии выполнения в процессоре, а для других осуществляется ввод-вывод или они находятся в стадии ожидания. Из-за ограниченности объема ОП повышать степень мультипрограммирования оказывается невозможно.
Преодолеть эту трудность можно при использовании свопинга. Свопинг – это способ организации вычислительного процесса, при котором задачи, находящиеся в состоянии ожидания, переносятся на жесткий диск, освобождая часть ОП. При этом планировщик операционной системы следит за изменением условий, складывающихся для этих задач, а при благоприятных условиях (т.е. когда можно занять ресурсы процессора, для данной задачи завершен ввод-вывод, свободны необходимые устройства для выполнения задачи и т.д.) он возвращает задачу из области свопинга на диске в ОП. Таким образом, свопинг можно рассматривать как своеобразный способ организации виртуальной памяти.
6.7 Защита памяти
Хотя принято называть этот механизм защитой памяти, на самом деле осуществляется защита хранящейся в ней информации. Обычно в процессорах предусматривают специальные средства для защиты памяти от несанкционированного доступа со стороны других программ. Нужно помнить, что в памяти компьютера всегда находится несколько программ, даже если он выполняет только одну. Из-за ошибок или по каким-либо иным причинам программа может вторгаться в «чужую» область памяти, искажая находящуюся там информацию. Чтобы этого не происходило, в компьютере предусматривают систему привилегий, которая регулирует доступ к той или иной области памяти в зависимости от уровня ее защищенности и привилегированности запроса к ней.
Защиту отдельных ячеек памяти можно осуществить, выделяя в каждой ячейке специальный «разряд защиты». Наличие единицы в этом разряде приводит к блокированию записи в эту ячейку и сообщении об ошибке, тем самым обеспечивается защита ячейки от попыток записи. Но этот механизм неудобен и в современных компьютерах он практически не используется.
Вторым механизмом защиты служат так называемые «кольца защиты». Так в микропроцессоре Pentium (как и в ранее выпускавшихся микропроцессорах 286, 386 и 486, а также в ЕС ЭВМ и ряде других машин) предусмотрены четыре кольца, или уровня привилегий, имеющие номера от 0 до 3. Чем меньше номер, тем выше уровень защищенности. Наивысшим уровнем защиты обладает ядро ОС; ему присвоен уровень 0. В это ядро входят команды, обеспечивающие инициализацию системы, управление доступом в память и ряд других важнейших функций. Уровень 1 имеют утилиты ОС, а к уровню 2 обычно относят всевозможные служебные программы, драйверы, систему управления базами данных и т.п. Наименее защищены прикладные программы пользователя; им присваивается уровень с номером 3.
Для доступа к программам и данным, хранящимся в ОП, используются следующие правила:
Данные из сегмента ОП с некоторым уровнем защиты могут быть выбраны программой с таким же или более высоким уровнем привилегий.
Программная процедура может быть вызвана программой с таким же или более низким уровнем привилегий.
Уровни защиты определяются двумя битами (указывающими уровень защищенности). Естественно, что при обращении в ОП должно быть произведено сравнение разрешенного уровня запроса (указывается в двух битах специального описателя) с фактическим (указанным в специальном регистре-селекторе). Если уровень запроса, указанный в селекторе, ниже разрешенного уровня, то данные ячейки ОП оказываются «закрытыми» для доступа к ним. Доступ к менее привилегированной процедуре может осуществляться только через специальный шлюз вызова.
Самый распространенный метод защиты памяти – это метод граничных регистров. В процессоре предусматривают два специальных регистра, которые содержат верхнюю и нижнюю границы области памяти, к которой может обращаться текущая программа, рисунок 6.х. Занесение границ в эти регистры производится операционной системой «в привилегированном режиме» при загрузке программы.
Рисунок 6.х Защита памяти методом граничных регистров
При запросе информации из ОП, осуществляемом «в пользовательском режиме», адрес сравнивается с установленными границами и, если он находится между верхней и нижней границами, передается в память. Если же происходит нарушение защиты, т.е. адрес выходит за установленные рамки, то доступ в память блокируется и формируется сигнал нарушения защиты.
Для организации защиты несмежных областей памяти в машинах ЕС ЭВМ использовали ключи защиты – каждому блоку памяти присваивался некоторый код, или ключ защиты. Каждая программа получала свой код – код защиты программы. Доступ к любому блоку памяти возможен только при совпадении значений ключа и кода защиты или при равенстве ключа нулю. Нулевое значение ключа определяет возможность доступа ко всему адресному пространству памяти со стороны ОС. Код (или ключ) защиты программы находится в специальном регистре, хранящем слово состояния программы. При обращении к ОП производится сравнение ключей защиты памяти и программы: при совпадении ключей доступ к памяти разрешается, а при несовпадении – формируется сигнал нарушения защиты.