CHITAT-KNIGI.COM
Читать бесплатно хорошую книгу!
  • Главная
  • Жанры
  • Авторы
  • ТОП книг
  • ТОП авторов
  • Контакты

Инженер 2.1 (СИ)

Часть 115 из 123 Информация о книге

Если подумать над произошедшим, то вырисовывается следующая картинка:

Появилось некое существо. Что отличает живое существо от неживого? Наличие инстинкта самосохранения! Если таковой отсутствует, то живое существо быстро становится неживым.

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

Сейчас, ретроспективно, я нашёл тысячу и один способ, как я мог прервать лавинообразно развивающиеся процессы. Даже, когда свободных процессоров не осталось, у меня были варианты действий! Прежде всего, у меня была возможность остановить тактовый генератор. Да, он тоже достраивался по мере создания компьютера, но это была та самая ручка, которую можно было потянуть, чтобы всё прекратить!

“Русский мужик силён задним умом!” — почему-то эта пословица всё время оказывается подходящей ко мне. “Ладно, хоть обошлось.” — другая фраза, которую я избыточно часто теперь применяю.

Итак, вспомнив о генераторе, я взял и просто остановил его. Аура Вектрона погасла. Подождав несколько минут, я запустил генератор в работу и всё, включая ауру, восстановилось. Судя по активности, Вектрон и не заметил факта временного отключения. Этот опыт окончательно подтвердил то, что Вектрон — существо, живущее в Орион-128.

Решив, пока по крайней мере, что слаб-аллокатор останется со мной навсегда, я придумал как разделить Орион-128 с Вектроном так, чтобы мы даже теоретически не мешали друг другу.

Я занялся добавлением аппаратной поддержки управления слаб-блоками на уровне ассемблера. Поскольку выделение и освобождение слаб памяти — рекурсивные операции, то я сделал ассемблерную команду, которая выполняет один цикл разделения слаба пополам и, если дальше делить не требуется — возвращает его адрес, а иначе — возвращает ошибку. И такой же подход применил для возврата памяти в систему.

Таким образом, когда нужно выделить память, программа в цикле вызывает одну и ту же ассемблерную инструкцию, пока не получит результат. Слаб помечается как “занятый” тоже аппаратно. Аппаратно же в него попадает идентификатор процессора, метка программы, которая запросила память и собственно статус блока памяти “занят/свободен”.

С одной стороны получилась система выделения памяти в конкурентной среде, а с другой, я иду к возможности построения “забора” между моей памятью и памятью Вектрона.

Поскольку теперь известно какой процессор занял какой слаб, то в каждом процессоре я добавил регистр, указывающий на список запрошенной им памяти. Таким образом, удалось разделить память на “своя-чужая”.

Реализовав шифратор, входами которого является выбираемый процессором адрес, а так же список привязанных к нему слабов, я смог сгенерировать исключение “доступ к чужой памяти” — если процессор обращается к памяти, которую запрашивал процесс с иной меткой.

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

Но как научить Вектрона пользоваться этим? Чтобы решить эту проблему, я исходил из того, что считал Вектрон не имеющим разума, то есть сразу отбросил пути как-то с ним договориться. А так же из того, что он — живое существо, а потому может трансформироваться под действием влияющих на него внешних обстоятельств.

Выждав когда у Вектрона будет период спокойствия, я просто взял и включил построенную систему защиты памяти, основанную на метках процессов. Сейчас этих меток всего две: 1 — Мои программы, 2 — Вектрон. Включив защиту памяти, я стал внимательно наблюдать за его аурой.

Рассуждал я так: Ему понадобится память, он возьмёт любой из доступных кусков и… внезапно получит исключение. При этом у него под рукой теперь есть две ассемблерные инструкции для выделения и освобождения памяти. Попав в жёсткие рамки ограничивающие его в доступе к такому важному ресурсу, он перепробует различные варианты, в том числе и эти инструкции.

Дальше это или приведёт его к тому, что он перестроится на их использование, либо он умрёт. О его состоянии я могу судить по цвету его ауры, если что, то смогу отключить систему защиты, не давая ему умереть.

Пока я возился со всем этим, Этера и Косм написали простенький дизассемблер и перевели все программы, написанные нами в кодах в текстовый формат. Теперь мы можем вносить в них изменения.

Я периодически включал и выключал систему защиты памяти, но почему-то Вектрон никак не мог придти к тому, что для работы с памятью ему нужно использовать специально предназначенные для этого инструкции.

Выход из ситуации мне подсказала Этера.

— Если это маг, то…

— Он точно маг, ты же видела! — перебил я её.

— Если это маг, то он должен быть как-то связан и с астралом. Наши учёные считают, что астрал всегда отражает всю существующую в мире информацию.

— И что ты предлагаешь?

— Я думаю, что можно подсказать ему, собрав для него какую-то астральную картинку.

— Хгм… — сказал я, и мы стали пробовать.

Я представил Вектрона как этакого червячка, питающегося памятью. У червячка внутри было много органов, но все они состояли из наших процессоров. Вокруг Вектрона была питательная среда, которая могла поглощаться нашими процессорами.

Иногда эта среда становилась токсичной и кушать её можно было через одну инструкцию, а выводить отходы жизнедеятельности — через другую.

Мы нарисовали несколько страшных картинок о том, что будет, если не выводить отходы, надеясь, что помимо запросов на выделение памяти, от него будут приходить и запросы на её освобождение.

Проделав эту работу, мы вернулись к экспериментам.

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

Включая защиту, мы смотрели на то, как аура Вектрона плавно становится из зелёной жёлтой, потом краснеет, а потом защиту приходилось отключать.

Чего-то не хватало, но мы не понимали чего. Выключив генератор у Орион-128, я исследовал процессы Вектрона и убедился, что астральные картинки помогли и какое-то количество памяти, запрошенное правильным способом у него есть. Но полностью переходить на её использование он почему-то не хотел.

Поняв, что мне очень неудобно наблюдать за процессом выделения памяти, я добавил несколько аппаратных индикаторов и запустил программу их размножения.

Это часто так бывает: пока у тебя нет системы мониторинга, то у тебя ничего не получается, а когда она появляется, то всё начинает работать так, что она вроде как и не нужна.

Когда у нас появилась аппаратная индикация кто сколько памяти использует, то при первом же включении защиты памяти, аура Вектрона чуть пожелтела, а затем вернулась к привычному голубовато-зелёному цвету.

— У него получилось? — удивилась Эт.

— Похоже, что да. — прошептал я.

Я оценил расходы Вектрона на себя: ему и нужно-то было всего около десятка миллиардов ячеек памяти, да от десятка до миллиарда процессоров.

Моя система пока ограничивает только перекрёстное использование памяти, но не вводит какие-либо квоты.

На всё это заборостроение между нашей и Вектрона памятью мы убили около трёх месяцев времени.

Руки к небу!

Где-то в самом начале этого пути, я пришёл к тому, что программирование на ассемблере — это очень сложно и решил, что нам нужен другой язык программирования. Более высокого уровня. Но написать на ассемблере компилятор языка высокого уровня — это крайне сложная задача.

Я долго не решался подступиться к ней: даже простой язык, вроде какого-нибудь Lua выглядел, как нечто неподъёмное. А однажды меня осенило: LISP! Этот язык считается одним из самых мощных в мире не только потому, что абсолютно все современные технологии пришли из него, но и потому, что базовый его интерпретатор очень простой, поскольку весь его синтаксис базируется на одинаковых s-выражениях.

Перейти к странице:
Предыдущая страница
Следующая страница
Жанры
  • Военное дело 2
    • Спецслужбы 2
  • Деловая литература 55
    • Деловая литература 1
    • Корпоративная культура 4
    • Личные финансы 7
    • Маркетинг, PR, реклама 9
    • О бизнесе популярно 29
    • Управление, подбор персонала 4
    • Экономика 5
  • Детективы и триллеры 984
    • Боевики 120
    • Дамский детективный роман 11
    • Детективы 414
    • Иронические детективы 83
    • Исторические детективы 194
    • Классические детективы 68
    • Криминальные детективы 68
    • Крутой детектив 46
    • Маньяки 8
    • Политические детективы 23
    • Полицейские детективы 125
    • Прочие Детективы 277
    • Техно триллер 2
    • Триллеры 511
    • Шпионские детективы 33
  • Детские 125
    • Детская образовательная литература 4
    • Детская проза 54
    • Детские остросюжетные 17
    • Детские приключения 54
    • Детские стихи 4
    • Прочая детская литература 16
  • Детские книги 236
    • Детская фантастика 85
    • Детские детективы 3
    • Книги для подростков 23
    • Сказки 69
  • Документальная литература 295
    • Биографии и мемуары 188
    • Военная документалистика 1
    • Искусство и Дизайн 4
    • Критика 5
    • Научпоп 4
    • Прочая документальная литература 26
    • Публицистика 94
  • Дом и Семья 59
    • Домашние животные 5
    • Здоровье и красота 12
    • Кулинария 7
    • Прочее домоводство 1
    • Развлечения 3
    • Сад и Огород 1
    • Спорт 2
    • Хобби и ремесла 3
    • Эротика и секс 29
  • Драматургия 20
    • Драма 19
    • Киносценарии 1
  • Жанр не определен 1
    • Разное 1
  • Компьютеры и Интернет 2
    • Базы данных 1
    • Программное обеспечение 1
  • Любовные романы 12147
    • Исторические любовные романы 386
    • Короткие любовные романы 962
    • Любовно-фантастические романы 5600
    • Остросюжетные любовные романы 222
    • Порно 31
    • Прочие любовные романы 26
    • Слеш 233
    • Современные любовные романы 5128
    • Фемслеш 20
    • Эротика 2532
  • Научно-образовательная 139
    • Альтернативная медицина 1
    • Астрономия и Космос 3
    • Биология 13
    • Биофизика 2
    • Биохимия 1
    • Ботаника 1
    • Военная история 2
    • Геология и география 3
    • Детская психология 3
    • Зоология 1
    • Культурология 18
    • Литературоведение 11
    • Медицина 14
    • Обществознание 3
    • Педагогика 6
    • Политика 13
    • Прочая научная литература 28
    • Психотерапия и консультирование 8
    • Религиоведение 3
    • Секс и семейная психология 6
    • Технические науки 1
    • Физика 5
    • Философия 12
    • Химия 1
    • Юриспруденция 3
    • Языкознание 6
  • Образование 273
    • Бизнес 45
    • Биография и мемуары 46
    • Здоровье 10
    • История 137
    • Карьера 4
    • Психология 139
  • Поэзия и драматургия 12
    • Драматургия 5
    • Поэзия 7
  • Приключения 262
    • Вестерны 2
    • Исторические приключения 150
    • Морские приключения 33
    • Природа и животные 15
    • Прочие приключения 57
    • Путешествия и география 18
  • Проза 824
    • Антисоветская литература 2
    • Военная проза 37
    • Историческая проза 124
    • Классическая проза 61
    • Контркультура 8
    • Магический реализм 34
    • Новелла 4
    • Повесть 14
    • Проза прочее 8
    • Рассказ 38
    • Роман 55
    • Русская классическая проза 27
    • Семейный роман/Семейная сага 1
    • Сентиментальная проза 3
    • Советская классическая проза 29
    • Современная проза 792
    • Эссе, очерк, этюд, набросок 1
  • Прочее 514
    • Газеты и журналы 2
    • Изобразительное искусство, фотография 6
    • Кино 2
    • Музыка 2
    • Театр 1
    • Фанфик 502
  • Религия и духовность 83
    • Буддизм 1
    • Православие 1
    • Прочая религиозная литература 1
    • Религия 9
    • Самосовершенствование 22
    • Эзотерика 52
  • Справочная литература 24
    • Прочая справочная литература 2
    • Путеводители 6
    • Руководства 6
    • Справочники 8
    • Энциклопедии 5
  • Старинная литература 41
    • Античная литература 1
    • Древневосточная литература 4
    • Мифы. Легенды. Эпос 14
    • Прочая старинная литература 23
  • Техника 2
    • Автомобили и ПДД 1
    • Архитектура 1
  • Фантастика и фентези 11645
    • Альтернативная история 1633
    • Боевая фантастика 2506
    • Героическая фантастика 625
    • Городское фэнтези 707
    • Готический роман 2
    • Детективная фантастика 280
    • Ироническая фантастика 71
    • Ироническое фэнтези 57
    • Историческое фэнтези 176
    • Киберпанк 111
    • Космическая фантастика 716
    • Космоопера 15
    • ЛитРПГ 655
    • Любовная фантастика 183
    • Любовное фэнтези 113
    • Мистика 198
    • Научная фантастика 438
    • Попаданцы 3501
    • Постапокалипсис 370
    • Сказочная фантастика 4
    • Социально-философская фантастика 197
    • Стимпанк 58
    • Технофэнтези 24
    • Ужасы 103
    • Ужасы и мистика 306
    • Фантастика 250
    • Фантастика: прочее 111
    • Фэнтези 5900
    • Эпическая фантастика 131
    • Юмористическая фантастика 576
    • Юмористическое фэнтези 423
  • Фольклор 2
    • Народные сказки 2
  • Юмор 73
    • Анекдоты 1
    • Комедии 1
    • Прочий юмор 29
    • Сатира 1
    • Юмористическая проза 38
    • Юмористические стихи 3
CHITAT-KNIGI.COM

Читать онлайн бесплатно книги полностью без регистрации

Контакты
  • chitatknigicom@gmail.com
Информация:
  • Карта сайта
  • Слушать Аудиокниги
  • Руководства по ремонту автомобилей
© chitat-knigi.com, 2025. | Вход
Этот сайт использует cookie для хранения данных. Продолжая пользоваться сайтом, вы даете свое согласие на работу с этими данными в соответствии с нашей политикой конфиденциальности.
Я согласен