stringtranslate.com

Одноуровневый магазин

Одноуровневое хранилище ( SLS ) или одноуровневая память — это термин компьютерного хранилища , который имеет два значения. Эти два значения связаны тем, что в обоих случаях страницы памяти могут находиться в первичном хранилище ( RAM ) или во вторичном хранилище (диск), и физическое расположение страницы не имеет значения для процесса.

Первоначально этот термин относился к тому, что сейчас обычно называют виртуальной памятью , которая была введена в 1962 году системой Atlas в Манчестерском университете . [1]

В современном использовании этот термин обычно относится к организации вычислительной системы, в которой нет файлов , а есть только постоянные объекты (иногда называемые сегментами ), которые отображаются в адресные пространства процессов (которые полностью состоят из набора отображенных объектов). Вся память компьютера рассматривается как одна двумерная плоскость адресов (сегмент и адрес внутри сегмента).

Концепция постоянных объектов была впервые представлена ​​компанией Multics в середине 1960-х годов в проекте, совместном с MIT , General Electric и Bell Labs . [2] Она также была реализована как виртуальная память, а фактическая физическая реализация включала несколько уровней типов хранения. (Например, у Multics изначально было три уровня: основная память, высокоскоростной барабан и диски.)

IBM владеет патентами на одноуровневое хранилище, реализованное в операционной системе IBM i на IBM Power Systems и ее предшественниках, начиная с System/38 , выпущенной в 1978 году. [3] [4]

Дизайн

В ранних системах существовало четкое различие между основной памятью и любым вторичным хранилищем. Для обработки данных программы использовали явный код для чтения данных из вторичного хранилища в основную память, манипулировали ими в основной памяти, а затем использовали еще больше кода для записи их обратно во вторичное хранилище. Это различие сохраняется и по сей день в большинстве операционных систем (ОС).

В 1960-х годах были введены разделение времени и многопрограммирование . В этих системах одновременно могло работать несколько программ, и каждая из них хотела иметь собственную память для работы. Это приводило к появлению иногда сложных систем, в которых программы описывали минимальные и желаемые объемы памяти, необходимые им для работы, а ОС разбивала основную память на блоки, обычно называемые сегментами . Поскольку теперь потенциально могло работать много программ одновременно, у каждой отдельной программы могло быть меньше памяти для работы, чем ей хотелось.

Попытки решить эту проблему привели к разработке виртуальной памяти (ВМ). Системы ВМ разбивают основную память на ряд сегментов фиксированного размера, или «страниц», и выделяют их программам по требованию. Программы не знают о существовании системы ВМ, они просто запрашивают память и получают ее или отказывают, как и раньше. Разница в том, что каждая программа не будет ограничена некоторой частью основной памяти, отведенной для нее, а вместо этого будет предоставлен доступ ко всей памяти, фиксированной «виртуальной» основной памяти, которая обычно была намного больше фактической физической памяти. По мере того, как программы использовали физическую память, и она в конечном итоге заканчивалась, система ВМ проверяла страницы на наличие данных, которые в данный момент не нужны, и записывала их во вторичное хранилище. Это было известно как «подкачка». Когда программа пыталась получить доступ к значениям в памяти, которая была выгружена, система VM снова вмешивалась, записывая какую-то другую страницу памяти и загружая запрошенную обратно. Это невидимо для программы, для нее это выглядит как одна большая память и ее данные всегда доступны. Программы, написанные в системе VM, в остальном похожи на программы на более ранних машинах. Для постоянного хранения данных программа все еще должна была иметь код для чтения и записи данных во вторичное хранилище и из него, чаще всего файловую систему , но иногда и ядро ​​базы данных .

Одноуровневое хранилище изменяет эту модель, расширяя VM от обработки только файла подкачки до новой концепции, где «основная память» является всей вторичной системой хранения. В этой модели нет необходимости в файловой системе, отдельной от памяти, программы просто выделяют память как обычно, и эта память невидимо записывается в хранилище и извлекается по мере необходимости. Программе больше не нужен код для перемещения данных во вторичное хранилище и из него. Программа может, например, создать серию визитных карточек в памяти, которые будут невидимо записаны. Когда программа будет загружена снова в будущем, эти данные немедленно снова появятся в ее памяти. И поскольку программы также являются частью этой же единой памяти, перезапуск машины или вход пользователя в систему заставит все эти программы и их данные снова появиться.

Операционная система берет на себя ответственность за обнаружение страниц и предоставление их для обработки. Если страница находится в первичном хранилище, она немедленно становится доступной. Если страница находится на диске, происходит ошибка страницы , и операционная система переносит страницу в первичное хранилище. Никакого явного ввода-вывода во вторичное хранилище процессами не выполняется: вместо этого чтение из вторичного хранилища выполняется в результате ошибок страниц; запись во вторичное хранилище выполняется, когда страницы, измененные с момента чтения из вторичного хранилища в первичное хранилище, записываются обратно на свое место во вторичном хранилище.

System/38 и дизайн IBM i

Проект одноуровневого хранилища IBM изначально был задуман и впервые реализован Фрэнком Солтисом и Гленном Генри в конце 1970-х годов как способ создания переходной реализации для компьютеров со 100% твердотельной памятью . В то время считалось, что дисковые накопители устареют и будут полностью заменены какой-либо формой твердотельной памяти. System/38 была разработана так, чтобы быть независимой от формы аппаратной памяти, используемой для вторичного хранения. Однако этого не произошло, поскольку в то время как твердотельная память стала экспоненциально дешевле, дисковые накопители также стали дешевле; таким образом, соотношение цен в пользу дисковых накопителей сохраняется: гораздо более высокая емкость, чем у твердотельной памяти, гораздо более медленный доступ и гораздо более низкая стоимость.

В System/38 и IBM i всем данным в хранилище назначается адрес, доступный инструкциям процессора, в виртуальной памяти , и на них ссылаются по этому адресу, независимо от того, находятся ли они в данный момент в физической памяти или нет. Если данные, на которые ссылается этот адрес, не находятся в физической памяти, происходит ошибка страницы . Ошибка страницы обрабатывается низкоуровневым программным обеспечением, которое считывает страницу в доступный страничный фрейм в первичном хранилище. [5] [6]

С реализацией одноуровневого хранилища IBM i ошибки страниц делятся на две категории. Это ошибки базы данных и ошибки, не связанные с базой данных. Ошибки базы данных возникают, когда страница, связанная с объектом реляционной базы данных, например, таблицей, представлением или индексом, в данный момент не находится в первичном хранилище. Ошибки, не связанные с базой данных, возникают, когда любой другой тип объекта в данный момент не находится в первичном хранилище.

Смотрите также

Ссылки

  1. ^ Одноуровневая система хранения , T. Kilburn, DBG Edwards, MJ Lanigan, FH Sumner, IRE Trans. Electronic Computers Апрель 1962 г. Доступ 2014-08-07
  2. ^ Виртуальная память, процессы и совместное использование в Multics , Роберт С. Дейли, Джек Б. Деннис Доступ 2014-авг-07
  3. ^ Вуди, Алекс. «Фрэнк Солтис обсуждает возможное будущее одноуровневого хранения». itjungle.com . IT Jungle . Получено 4 декабря 2020 г. .
  4. ^ Технические разработки IBM System/38 (PDF) , декабрь 1978 г.
  5. ^ Френч, RE; Коллинз, RW; Лоен, LW (июль 1980 г.). «Управление машинным хранилищем System/38». Технические разработки IBM System/38 (PDF) (Второе изд.). С. 63–66.
  6. ^ «Управление памятью AS/400».