masterspammer (masterspammer) wrote,
masterspammer
masterspammer

Category:

Pipe Dream - есть такое выражение, почти как "свет клином сошёлся", но специализируется на мечтах и в Английском. Это значит - есть только мечта и видишь её и ничего больше, как будто смотришь через трубу, ограничивающую поле зрения до небольшого пятна и только где-то там на выходе - она, мечта! А остальное - неважно!

Играя с разными бытовыми компьютерами, мне не хватало порядка в архитектуры, расширяемости и/или нормальной буферизации, удобной периферии, полной дешифрации адресов портов и памяти и собственно памяти - и чем больше, тем лучше, мне 640 не хватит, Билла Гейтса на меня нет! Может сейчас и хватит, но с возможностью расширения и точно с бОльшим адресным пространством - не 20 бит, а 22 или хотя бы 21 бит шины адреса. В принципе нет ничего сложного, но это не описание мечты, это описание места её воплощения.

Для чего нужна память, особенно при таком небыстром по нынешним меркам процессоре? Не для RAM-диска же?! Для многозадачности.

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

Это значит:
монитор может запускать разные программы в том числе и в разных, непересекающихся, наборах страниц памяти;
монитор обрабатывает прерывания, соотв. банк включается автоматически;
монитор обрабатывает системные вызовы обычных программ прозрачно для них (и с минимальными издержками)
монитор может сохранять/восстанавливать контекст программы и легко переключаться между ними (включая страницы)
монитор существует вне адресного пространства обычных программ

Отсюда сразу следуют прозрачные suspend/resume, виртуальная память с подкачкой (пусть и мой компьютер умеет тормозить) и много других приятных штук. Собственно то, что есть в __остальном__ компьютерном мире. Для надёжности показаны следующие ограничения:

обычная программа не обрабатывает аппаратные прерывания;
обычная программа не может переключать страницы памяти;
обычная программа не может писать в порты;
обычная программа не может переключить режим прерывания;
обычная программа не может запретить прерывания как минимум без определённых (вероятно - watchdog) условий;
обычная программа не может писать в R (только при использовании динамического ОЗУ);
обычная программа не может писать в I (только при использовании режима прерываний IM2);

Легко добавить такое
общая память (страница) для разных программ и примитивы синхронизации - нечего паять, одно программирование
страницы только для чтения - в том числе и так, чтоб одна программа могла писать, а другая - нет - плюс бит порта на каждое окно (не страницу!)
страницы только для данных - при попытки выполнить их код будет получаться NOP - никаких stack overflow (пользы мало, но приятно, бит на окно и пара логических элементов)

---

Маленькая невинная добавка - хочу клавиатуру, на которой русский язык не смотрится как слон в подсудной лавке, распихивая символы по другим раскладкам - всего-то +6 клавиш в алфавитном блоке - невелик прогресс по сравнению со всеми килобайтами и мегагерцами.

Subscribe

  • Техноорки

    Началось с того, что у жены в машине начал часто загораться индикатор аккумулятора и иногда возникать глюки зажигания на полной нагрузке…

  • Заусенец

    Переклеил, ага, но что-то чуйка не даёт считать дело законченным. Магнит купил, определил и подписал полюса, плюсы и минуса. Парный динамик уже…

  • Криворучие и около того

    Сначала средний сын взял недопаянную плату памяти и завернул все торчавшие проводки свиным хвостом ( по ссылке предыдущее состояние, потом проводков…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 5 comments