Цитата Сообщение от Sayman Посмотреть сообщение
Своп вообще НЕ НУЖЕН, иначе будет ТОРМОЗ
нормлаьная ос с многозадачностью не может пренебрегать наличием свопа! это очень сильный козырь, даже у венды, у ленукса, у юникса и у многих других. даже извините у доса есть надстройка, позволяющая делать свап.
Ай, молодца.! Sayman не разобравшись,выхватил строчку из контекста сообщения и перевёл в недостаток.

Так вот обьясняю - о чем там шла речь, Alone говорил, что если программе по запросу предоставляется физические номера страниц, то не возможно организовать виртуальную память, то есть давать программе левые номера страниц (вместо настоящих), и потом, когда программа вызывает функцию включить страницу, то система смотрит - ага , нет сободных страниц, выбирает "жертву", у которой можно страницу забрать, сохраняет странцу в своп-файл, и отдаёт эту страницу проге,сделавшей запрос, а дальше мы имеем ТОРМОЗ,а именно, та другая прога , у которой была забрана страница, грит,типа, а ну подайте мене мою страницу , ща печатать картинки буду (или следующий кусок архива распаковывать), и начинается, система сохраняет страницу 2-й проги в своп-файл,загружает оттуда страницу для первой проги,первая прога начинает обрабатывать данные, а потом переключаются процессы и переключалка должна включить страницу второй проги,и опять всё по новой - сохранили загрузили - переключили
Вот про энто безобразие я и говорил, что его НЕТ, и НЕ БУДЕТ!!!
Специально повторяю, читайте внимательно!

Цитата Сообщение от Zet9 Посмотреть сообщение
Своп вообще НЕ НУЖЕН, иначе будет ТОРМОЗ , так как программа при переключении страниц не будет знать прошло 1000 тактов или 10 000 000 тактов, а она должна это знать!!!(из-за этого всё нереально тормозит сам знаешь где... )

Каждая программа может создать себе свой собственный файл подкачки любого размера (до 4-х Гигабайт) и сама будет туда скидывать те страницы, которые ей ДЕЙСТВИТЕЛЬНО не нужны(а не те которые системе мешают а программе нужны в 1-ю очередь).Система не знает и не может определить нужность/ненужность страниц для программы (а всякие там счетчики обращений к страницах и алгоритмы планирования, которые должны определять якобы ненужные программе страницы для выкидывания в своп - свою задачу не решают и только тормозят систему и программы, а также расходуют лишнюю память )
Прога будет создавать свой файл, если система по запросу на выделение страниц скажет, мол, нет свободных страниц.
Ну а сама система будет использовать своп для того чтобы сохранять туда спящие процессы (кусками или полностью ) и тем самым она будет освобождать память для вновь запущенных прог

---------- Post added at 11:25 ---------- Previous post was at 10:55 ----------

Цитата Сообщение от Дмитрий Посмотреть сообщение
Да, такой подход не позволяет в онлайн выводить инфу в окно, но кто мешает объявить процедуры прорисовки в системных вызовах? если тебе удобно рисовать окно и содержимое динамически посредством API - рисуй, мне больше нравится статический вывод, если что-то надо будет - обращусь по API и поменяю заголовок.
Ну я бы назвал это так:
Вы говорите про меню - прямоугольник или квадрат со строчками текста, заголовком и возможно с маленькой картинкой(пиктограммой), а я говорю про окно (тот же прямоугольник) - в которое постоянно выводиться информация - даже если это просто листалка, посточно листаем текст и он в окне должен снизу вверх перемещаться - и как это в Вашем варианте осуществить? для вывода окна с тестком смещенным на одну строку вверх формировать новый описатель окна? - я пробовал в делать нечто подобное в минивиндовс98 - впечатление, что текст на бэйсике выводиться (в смысле очень медленно)
Цитата Сообщение от Дмитрий Посмотреть сообщение
Просто статический описатель окна будет компактнее, чем код, вызывающий те же апи-функции для генерации аналогичного окна. А с учетом малого количества непрерывной памяти расточительно ее использовать не хорошо.
Ну, этот код спокойно располагается в страницах, а непрерывная память на него не раходуется

Цитата Сообщение от Дмитрий Посмотреть сообщение
Кстати идея - принять манеру pc-шных моделей с сегментами кода и данных и размещать код программы в непрерывной памяти, а тексты, графику и прочее - в страницы
Ужасная идея! она не годится!!!
НИ В КОЕМ СЛУЧАЕ нельзя связывать кодера по рукам и ногам и указывать ему, что и где хранить - при такой схеме даже вьюевер 3-колорных картинок нельзя сделать!!!


Цитата Сообщение от Дмитрий Посмотреть сообщение
В том то и дело, что в каждой программе (читай в каждом окне) придется делать обработку сообщений от манипулятора - это увеличит код (бесполезный) программы, а если сделать это средствами граф подсистемы - будет один кодовый блок. Ведь все равно все программы будут "перелопачивать" свои окна. Причем если каждый программист сделает эту обработку по своему и некорректно - то это утянет на дно всю систему.
Перелопачивать свои окна будут не все программы а только одна - которой придет сообщение - воздействие на её окно - в результате имеем немерянный выигрыш по скорости

а единый кодовый блок графсистемы займет немеряно памяти (он будет занимать не менен 8 кб (со 2 шрифтами) и 5.5 Кб с одним шрифтом) и теперь в Вашем варианте сюда надо добавить ещё кучу описателей каждого окна - Вы об этом подумали?
даже если описатель займет 200 байт - 10 окон это уже 2 Кб - и где их хранить? в странице с граф.подсистемой ещё место для процедур ядра нужно, или предлагаете сделать полноценный менеджмент памяти, который будет использоваться граф.подсистемой для манипулирования областями памяти с кучей описателей? или сильно усложнит код, увеличит занимаемую им память - и в результате стоит ли овчинка выделки?
Цитата Сообщение от Дмитрий Посмотреть сообщение
И что сложного в обработке описателей всех окон? выяснить каким окнам принадлежит указанная координата и какое из этих окон находится на вершине.
Ничего сложного нет, кроме больших затрат памяти и процессорного времени

---------- Post added at 11:45 ---------- Previous post was at 11:25 ----------

Цитата Сообщение от Дмитрий Посмотреть сообщение
Я понял, что для того чтобы включить страницу - нужно в почтовый ящик положить номер нужной страницы и "подождать"? подождать чего? пока менеджер задач не отберет у программы время работы? а если программа будет часто щелкать страничками? Скоростной режим не нужен, а просто необходим! Нужен системный вызов (API-функция называй как хочешь) для переключения страниц,
Ну я же сказал - будет такая возможность - специальный вызов, для переключения страниц напрямую: типа прога делает call adr2 и страница сразу переключается без всяких "входов в режим ядра, поиск нужной функции , перевода номера логической в физический", только пока не определился с параметрами - вот склоняюсь к тому, что предлагает Alone - при заказе страниц система даёт проге два байта , прога не вникает в их смысл - а это байты,засылаемые в порты,тогда страница переключается максимально быстро

пример для Профи,проге надо две страницы и ей даётся 4 байта(#01,#10,#01,#11), она берет первые 2 байта и вызывает:
ld hl,#0110
call adr2
итого включается страница 8, а прога по барабану, она знаёт что теперь включена ПЕРВАЯ страница этой проги
а потом она берет вторые 2 байта и делает так
ld hl,#0111
call adr2
включается страница 9
и теперь прога знает что включена ВТОРАЯ страница этой проги

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