Ну а ежели у меня диск или "дисковая память" шустренькая? Нафига мне завязываться на всякие там банки, страницы и т.п.? Понятно что это медленнее, зато мудрить ничё не надо, не?
Ну а ежели у меня диск или "дисковая память" шустренькая? Нафига мне завязываться на всякие там банки, страницы и т.п.? Понятно что это медленнее, зато мудрить ничё не надо, не?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Если там используется DMA, работающий со скоростью сравнимой с LDIR, то делать многозадачность с выгрузкой на диск приемлимо, иначе много задачность теряет смысл (комп будет заниматься только выгрузкой-загрузкой). Но остается вариант с немногозадачным Юзиксом - вот как тем что я вчера выложил. CP/M же однозадачная тоже. По большому счету - те же яйца только в профиль, заниматься этим имеет смысл если будут интересные приложения именно для Юзикс, не работающие в CP/M.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Даже дисковая память постороеная на RAM будет на несколько порядков медленнее страничной за счет накладных расходов. Нужно обслуживать файловую систему + ввод/вывод.
Конечно, однозадачность не интересна. Кстати, а для (вытесняющей) многозадачности ведь, как минимум, нужен таймер, или нет? В cp/m я такого не наблюдаю. Как это может решаться?
Да, нужен. Аппаратно это есть (как на большинстве 8-биток), в CPM 2.2 это никак не было прописано, обработка таймера прерываний я в BIOS-е CP/M сам доделывал - конечно ни с чем не совместимо, это ж был благословенный 95-й год, про MP/M в наших деревнях тогда информации не было. Вот этими особенностями Альтаир-ДОС (Орионовской CPM) сейчас и пользуюсь в Юзиксе.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
http://p112.sourceforge.net/index.php?uzi180
осталось чуть чуть, найти силы выгнать голдящий дивичий табор из дома на пару дней и допилить, платки для 180)
Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)
Последний раз редактировалось Error404; 09.01.2015 в 23:32.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
этим железякам сто лет в обед, как и uzi180, у меня просто камней 6 штук
180 на 33Mгц и пара на 8, я озадачился их применением.тихонько железку свою ваяю на 180. Осталось вытравить и спаять. Подумываю чего по запускать.
Почитываю профильные темы.
а тема у тебя действительно интересная.
UZI
таймеров 2, но полноценно можно использовать только 1.Task switching consists of saving the current process status in the User
stack and data area, block moving the user data area and stacks to the
respective process area in the reserved top 4k (via DMA), restoring the
new task's data into common memory (also via DMA), changing the Bank Base
Register in the Z180 MMU to bring the new task in context, resetting the
new process' stack pointer, restoring processor status and continuing as
before. This results in relatively rapid response since the bulk of time
required is due to two 768-byte DMA transfers which consume 1536 * 6 T-
states or 9216 / 18,432,000 = .0005 Sec = 500 microseconds on a 18.432 MHz
P112 or YASBEC upgraded with the Z8S180, and double this time, or 1000
microseconds (1 millisecond) on a standard 9.216 MHz YASBEC. This ignores
any additional time due to insertion of memory wait states and the
relatively insignificant overhead associated with housekeeping.
Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)
Многозадачная версия ядра как-то заработала.
Не без вопросов конечно (какие-то моменты надо прояснять коллективным разумом - есть желающие? напишу где у меня затыки), но уже что-то.
Даже подогнал структуры чтобы бинарные MSX-ные ps, top заработали, чего сначала делать не собирался, но поскольку LIBC пока не готов (чтобы пересобрать своё), то пришлось выкручиваться так.
Ошибки попутно чищу, но думаю их там пока еще богато, плюс кое-что тупо надо доделать (редкоиспользуемое - типа прямого блочного чтения устройств: там к примеру пока заглушка PANIC, т.к. тут еще и IDEBDOS надо чуть допилить), а оптимизировать даже не начинал.
Вопрос такой - промежуточные работоспособные версии выкладывать? Кому-нить интересно их пробовать? А однозадачную недельной давности пробовали уже? А то я имею печальный опыт, когда в эмуляторе (где и отлаживаюсь) моё программирование на С работало, а на платке Орионе-2010 не работало.
Если выкладывать то исходники или имидж диска, или и то и то?
У кого-нить есть готовый libc.lib от Uzix 1.0? М.б. у sayman?
Как запускать много процессов в юзиксовом шелле sash? Максимум чего я пока добился это 3-4 процесса:
3 когда init+sh+process (просто команда под sash)
и 4 когда init+sh+process+piped_process (типа команды cat file | more ).
И кстати у кого есть бинарный sash в полной функциональности (он комплилируется на дефайнах в 3 варианта полноты)? Тот, что в моем образе, имеет только полдюжины встроенных команд: явно не самый полный. А памяти то вагон: 58 с гаком килобайт, не то что 32k на MSX, на Орионе можно было бы и пожирнее шелл пользовать.
Последний раз редактировалось Error404; 17.01.2015 в 02:30.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Запуск фоновых процессов делается двумя способами:
1. При запуске жмем ^Z (Ctrl+Z) и приложению будет отправлен сигнал остановки с терминала, попутно оболочка выведет номер задания, под которым находится остановленный процесс. Далее берем этот номер и делаем команду bg <номер> процесс уйдет в фон. Но это для линуксов/фрях и другиг взрослых юниксов
2. После имени команды поставить амперсанд:
# long_running_task &
long_running_task заменить на свою команду соответственно
Но это опять же во возрослых юниксах
А в нашем случае скорее всего ни как, т.к README к sash говорит нам
https://github.com/menelkir/uzix/blo.../Source/README* UZIX doesn't have the concept of background/foreground applications
controlled by user;
Весьма куцая многозадачность получается, если сильно хочется -- придется пилить систему самому, чтобы в нее это добавить.
2:5083/89
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)