Читать «ZX, бред к юбилею» онлайн - страница 29

Олег Николаевич Пономаренко

Ну а в мировом зоопарке компов каждый производитель делает свой букет. С точки зрения процессора и пользователя например наш, прошитый в ПЗУ "Спектрум+" Бейсик тоже операционная система. Причем не самая худшая — поддерживает работу с кучей устройств хранения данных, запуск программ в машинном коде, интерактивный диалог с пользователем. Например команда SAVE m1 "Program" при отсутствии микродрайва — вежливо пошлет нафиг…

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

В старых машинках было все просто, как у нацистов — один процессор, одна память, одна программа, и ниипет. Если что — восемь бед, один ресет. Поздней, уже на Спектруме с расширением, или на "плюсе" была фактически введена простейшая пофигическая многозадачность. Т. е. какая-то программа радостно работает, до определенного события. Например если ей приспичило данные записать на микродрайв. Тут она резко стопорится, из теневого ПЗУ радостно выползает программа-контроллер, кушает данные, делает работу. И снова тихо уползает, передав назад управление программе в основной памяти.

Но сейчас задачка стоит посерьезней — тут уже нужно думать. И нам, и процессору, и программам. Будем использовать приоритетную многозадачность.

То есть куча программ бодается за процессорное время и доступ к памяти, внешним устройствам. Естественно это надо контролировать, и висит постоянно в памяти ядро ОС.

Способное при необходимости раздавать пендели остальным процессам, и вырубать их если нужно. На текущем уровне, при мизерных объемах ОЗУ казалось можно было бы и обойтись — живут же "ПиСи-шки" под однозадачным ДОС-ом. Но зачем плодить себе же в дальнейшем проблемы? Анахронизмы MS-DOS торжественно прошагают аж в следующее тысячелетие. Как в том анекдоте: "Папа, а правда Виндовс многозадчная ОС? Правда, сынок. Паапааа, а покажи! Сейчас, только подожди пока дискету отформатирую…"

К тому же при создании "Квантового Скачка" мы твердо взяли курс на многопроцессорную архитектуру. И полноценно использовать ее без многозадачности будет невозможно. Так что прошитый в ПЗУ "Диспетчер процессов" работает с максимальным приоритетом, управляя всеми остальными программами, раздавая им ресурсы согласно приоритетам. Он же аппаратно работает с девайсами реального времени, например с мышкой. Хотя немножко неточно сказал — там записана целая QLOS, занимая почти половину из 64кб ПЗУ. Мы долго решали, как быть с возможными ошибками и апгрейдами. Использовать перезаписываемое ПЗУ? Слишком дорого, годится только для тестовых машин. И на них старались отловить все баги, отладить все варианты. Но все равно, на серийных машинках, если перевернуть — снизу была маленькая крышка. При необходимости можно открутить два болтика и заменить ПЗУ, без потери гарантии. На исправленное, хотя к счастью не потребовалось — или проапгрейженное. Например ёмкостью в несколько раз больше, и с драйвером жесткого диска. Ну, это я немного вперед забежал. Кроме собственно контроллера процессов в ПЗУ был прошит привычный язык программирования, бейсик. Привычный, да не совсем — по своим возможностям он был велик и могуч.