spamsink: (Default)
[personal profile] spamsink
Если бы я знал ответ на более или менее ретрокомпьютерный вопрос, который хочу задать, из него могла бы получиться неплохая задачка для олимпиад по лингвистике. А пока это только вопрос в воздух.



Имеется двоичный код (считай, "черный ящик"), реализующий функциональность хранилища данных, позволяющий работать с массивами пар "ключ-данные", хранящихся на внешних устройствах, адресуемых по "логический номер устройства-номер блока"

Известен неполный интерфейс к нему (мелкие детали опущены):

  • создать новый каталог верхнего уровня, задавая Номер Устройства/Начальный Номер Блока/Число Блоков для каталога
  • создать в каталоге верхнего уровня массив, задавая имя массива и НУ/ННБ/ЧБ, где массив будет храниться
  • открыть массив по имени, он становится текущим
  • занести в текущий массив запись "ключ-данные" (если запись с таким ключом уже есть, возвращается ошибка)
  • считать из текущего массива данные по ключу
  • удалить из текущего массива запись по ключу
  • модифицировать новыми данными в текущем массиве запись по ключу (если записи с таким ключом не было, выполняется как "занести")


Известно, что код работает на "микропрограммном" принципе. Интерфейсные вызовы дают "чёрному ящику" следующие последовательности микрокоманд:

  • создать каталог: 10-21
  • создать массив: 31-11-15-21-26-11-14-12-10-21
  • открыть массив: 31-11-14-12-25
  • занести запись: 11-15-21-26 (в случае ошибки отрабатывает только 11-15)
  • считать данные: 11-14-22
  • удалить запись: 11-14-23-27
  • модифицировать: 11-15-00-21-26-40 (подаётся на вход и выполняется, если такой записи не было); если была, то вместо этого выполняется 11-15-20


Предлагается, используя навыки логического мышления, вывести из этого смысл и назначение использованных микрокоманд, насколько это возможно. У меня есть несколько идей, но полной ясности я не достиг.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting
Page generated Jul. 12th, 2025 08:23 am
Powered by Dreamwidth Studios