- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Основы AS/400 - Фрэнк Солтис
Шрифт:
Интервал:
Закладка:
В запросе на перенос или очистку также можно указать, что одну или несколько страниц следует зафиксировать в памяти. Фиксированная страница становится резидентной и не будет удалена из памяти или записана обратно на диск вплоть до отмены этого распоряжения. Некоторые структуры данных SLIC, такие как элементы диспетчеризации, используемые в управлении процессами, всегда резидентные. Для ввода-вывода на виртуальную страницу и обратно, они должна быть зафиксированы, так как при перемещении данных по шине ввода-вывода используется реальный адрес фрейма страницы. Режим фиксации снимается отдельным запросом к управлению памятью.
Дополняет перенос и очистку страниц возможность сбросить (переписать) одну или нескольких страниц на диск. Сброс имеет смысл только тогда, когда страница в памяти были изменена, то есть копия страницы на диске неактуальна. В отличие от переноса и очистки, которые не являются функционально необходимыми (эти задачи выполнит обработка страничной ошибки), сброс иногда необходим, например, при журналировании базы данных. В этом случае компонент базы данных в SLIC должен гарантировать, что записи журнала в журнальном пространстве записаны на диск, причем он обязан использовать функцию сброса, не дожидаясь, пока страницы журнального пространства будут записаны на диск в результате страничных ошибок. Кроме того, сбросом можно снять фиксацию в памяти одной или нескольких страниц.
Наконец, страничные фреймы могут быть удалены из памяти без записи обратно на диск. Функциональных причин для удаления страниц нет, но это полезно, так как устраняет последующие операции записи на диск, например, если буфер памяти был опустошен и данные в нем больше не нужны.
Процессор PowerPC имеет отдельные кэши данных и команд, играющие роль буфера между основной памятью и процессором. По сути дела кэши — это регистры на микросхеме процессора, обеспечивающие быстрый доступ к недавно использовавшимся командам или данным. В AS/400 часть виртуальных адресов используется для доступа к кэшам.
Указатели должны быть защищены от повреждений. Программа пользователя, работающая на уровне MI, вполне способна изменить указатель, так как указатели хранятся в ассоциированном пространстве объектов MI вместе с другими структурами, к которым программа должна иметь доступ. Значения указателей также могут быть разрушены физическими явлениями, такими как флуктуации напряжения. Если указатель изменен «незаконно» (то есть не процедурой SLIC с помощью команды, недоступной непосредственно в MI), а каким-либо иным способом, то аппаратура сбрасывает разряд тега, делая тем самым указатель недействительным.
Все временные и постоянные объекты подлежат страничному обмену (переносу их на диск и обратно в память по мере необходимости). Некоторые структуры (таблица страниц) и программы SLIC не откачиваются; они загружаются в процессе IPL и должны находиться в памяти постоянно. Их адреса не требуют трансляции, так как виртуальные адреса подобных структур или команд — реальные адреса памяти. Такого рода адреса всегда начинаются с шестнадцатиричного 800.
Теперь, после краткого обзора, перейдем к детальному рассмотрению этих тем: разберем подробно влияние одноуровневой памяти на производительность, работу указателей, трансляцию адреса, и, наконец, управление дисками. Внимание! Для индикации «горячих» тем, будет использоваться «перечная» система.
Одноуровневая память и производительность
Как уже отмечалось, основное достоинство одноуровневой памяти — в сокращении числа команд, требуемых для выполнения определенных функций ОС. Можно привести множество примеров функций, производительность которых повышается благодаря одноуровневому хранилищу. Значительно упрощается за счет ненужности перемещения файлов файловая система, эффективней работает база данных. Но одно преимущество сразу бросается в глаза — это резкий рост производительности AS/ 400 при работе в интерактивном режиме, непосредственно зависящей от времени на переключение процессов. Рассмотрим пример, иллюстрирующий, как переключение процессов влияет на общую производительность AS/400.
В обычной ОС, использующей адресацию относительно сегмента, при переключении процессов требуется изменение содержимого сегментных регистров. Если этого не сделать, то меньшие эффективные адреса в новой программе будут ошибочно транслироваться в виртуальные, принадлежащие программе предыдущего процесса. Проблема возникает потому, что каждый процесс в системах такого типа имеет собственную эффективную память, которая начинается с адреса 0. Данный тип адресации используется большинством современных версий Unix, а также AIX IBM.
Роль сегментных регистров в системах такого типа — в отображении эффективных адресов в виртуальную память большего размера. Для этого содержимое сегментных регистров должно сохранятся где-то в памяти при всяком переключении с данного процесса на другой, и снова восстанавливаться, когда первый процесс опять начинает выполняться. Использование в процессорах PowerPC таблицы сегментов вместо сегментных регистров делает ненужным сохранение содержимого регистров в памяти — там уже и так находится таблица сегментов. Однако при переключении процессов необходимо очистить регистры SLB от информации предыдущего процесса.
При трансляции эффективных адресов в виртуальные с использованием таблицы сегментов, регистры SLB обновляются по одному. Использование таблицы в памяти до заполнения всех регистров SLB может привести к увеличению числа тактов процессора на каждое обращение к памяти. В результате, производительность процесса снизится, пока не будет загружено некоторое число регистров. Если, например, процесс, на который происходит переключение — последовательное чтение из базы данных, потребуется протранслировать, по крайней мере, четыре адреса (по одному для программы, индекса, курсора и пространства данных) лишь для того, чтобы начать работу. Более того, так как каждый из таких объектов имеет несколько сегментов (со своими виртуальными адресами), вероятно, потребуется протранслировать с помощью таблицы в памяти от 8 до 12 адресов, прежде чем регистры SLB можно будет эффективно использовать.
Как мы уже говорили, одноуровневая память AS/400 не использует ни таблицу сегментов, ни регистры SLB. Эффективный адрес соответствует виртуальному, и никакого преобразования не требуется, так как вся виртуальная память адресуется программой напрямую. Следовательно, при переключении процессов не происходит спада производительности, связанного с таблицей сегментов.
И это еще не все!
Возьмем трансляцию виртуального адреса в реальный с помощью таблицы страниц. В обычной системе каждый пользовательский процесс может иметь свою собственную виртуальную память с уникальной таблицей страниц. Пример — Microsoft Windows NT. В этой ОС компонент управления памятью предоставляет каждому процессу большое отдельное виртуальное адресное пространство. Это означает, что при переключении процессов нужно не только изменить таблицу страниц, чтобы обеспечить корректное отображение адресного пространства нового процесса, но также и очистить все регистры TLB. После переключения процессов адреса транслируются из виртуальных в реальные с помощью новой таблицы страниц, и содержимое регистров TLB обновляется по одному. Подобно перезагрузке регистров SLB, перезагрузка регистров TLB после переключения процессов снижает производительность.
В AS/400 только одна виртуальная память, поэтому имеется только одна таблица страниц, которую используют все. Следовательно, при переключении процессов не нужна очистка TLB, и размер TLB больше, чем у других систем. Регистры TLB содержат использованные последними записи таблицы страниц. С течением времени самые старые записи заменяются новыми. При большем числе регистров выше вероятность того, что виртуальный адрес, транслированный в отдаленном прошлом, все еще будет в TLB. TLB большего размера означает, что при повторном переключении на ранее выполнявшийся процесс, некоторые или все его адреса уже доступны, что невозможно, если регистры TLB очищать при всяком переключении процессов. И здесь единая виртуальная память AS/400 позволяет сохранить значительный объем процессорного времени.
Наконец, современные процессоры не выбирают информацию из памяти и не записывают ее туда непосредственно. Кэш-память содержит порции основной памяти и имеет собственный справочник. В зависимости от архитектуры кэш-памяти на данном компьютере и от того, есть ли разряды виртуального адреса в справочнике кэша, при переключении процесса может потребоваться очистка кэша. А при использовании одноуровневой памяти это не нужно.
Операционные системы, предназначенные для работы с обычной виртуальной памятью, чаще всего пытаются избежать большого числа переключений процессов из-за неизбежных накладных расходов. Но если это не удается, для эффективной работы таким системам нужен высокопроизводительный процессор.
