Важная информация

User Tag List

Страница 3 из 8 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 77

Тема: Менеджер памяти для многозадачной ОС

  1. #21
    Activist Аватар для acidrain
    Регистрация
    01.03.2005
    Адрес
    Russia, Krasnodar
    Сообщений
    433
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от random
    предлагаю все стандартные функции встроить в ОСь таким образом чтобы можно было их вызывать по определенному оффсету с например 0х10 из ПЗУ. по четыре байта на функцию. (оффсет функции и оффсет дескриптора). так потом можно будет в асме делать хедер по которому вызывать через LD HL, Х: CALL (HL). ну с определенными параметрами. так можно и "сигнатуру" проверить на функцию если есть желание, для пущей совместимости.
    Ну не знаю, имо - капание гроба для самих себя. Не надо рст, не надо пзу. Надо делать разумно. Вот амига 500 с процем в 7,14 МГц так там многозадачная ось и продуманная (правда там спец процы есь), не то что Мы тут пытаемя сделать.
    Проблема вся в том, что каждый тянет одеяло на себя и пытается сделать для себя любимого (и я в их числе). Я предлагаю найти компромис.

  2. #22
    Activist Аватар для random
    Регистрация
    21.01.2005
    Адрес
    ссср
    Сообщений
    468
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    не понимаю как удобство вызова стандартных функций (например strlen или memcpy или malloc) означает копание гроба? как это не надо ПЗУ? просто нижнюю память? и так ее всего 64К!

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

    ответь по теме, чем плохо иметь доступные функции в ПЗУ?

  3. #23
    Activist Аватар для random
    Регистрация
    21.01.2005
    Адрес
    ссср
    Сообщений
    468
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от dwt
    Никто не говорил, что необходимо делать ТОЛЬКО через rst. Их нужно предусмотреть на отдельные частоиспользуемые КЛАССЫ функций. И, естественно, предусмотреть отдельные точки вызовов целевых функций.
    система рестартов значительно ограничена. предложеный мною способ позволяет удобно иметь большое количество функций причем из версии в версию вызов их останется по старым адресам.

    главное написать грамотный header к этим фунцкиям, с пояснениями параметров и формата ответов.

    например предположим:

    ; функция strlen.
    ; считает длину строки (null terminated)
    ; HL = адрес строки
    ; возвращает:
    ; в HL = длина строки в символах

    strlen jp (0x20)

    ; функция malloc.
    ; выделяет блок памяти для программы
    ; HL = длина блока памяти в байтах
    ; возвращает:
    ; в HL = адрес выделенного блока памяти
    ; если HL==0 памяти недостаточно

    malloc jp (0x21)

    и так далее

    тогда вызов элементарен

    ...
    ld hl, stroka
    call strlen
    ...

  4. #24
    Veteran Аватар для lvd
    Регистрация
    23.01.2005
    Сообщений
    1,113
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от random
    не понимаю как удобство вызова стандартных функций (например strlen или memcpy или malloc) означает копание гроба? как это не надо ПЗУ? просто нижнюю память? и так ее всего 64К!
    Вот мне интересно, с каких пор strlen и memcpy стали функциями ОС? Всегда были функциями сёвыми, и были даже там, где оси нету как класса.

  5. #25
    Member Аватар для dwt
    Регистрация
    16.01.2005
    Адрес
    ЕнакиеВО!
    Сообщений
    129
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от lvd
    Вот мне интересно, с каких пор strlen и memcpy стали функциями ОС? Всегда были функциями сёвыми, и были даже там, где оси нету как класса.
    Я думаю, что просто такая формализация. Менеджмент памяти на низком уровне (имеется ввиду выделение физической памяти с физическими адресами, и соответственно их трансляция в прямой адрес) - это прерогатива именно ОС. Да и речь идет именно о многозадачной ОС!

  6. #26
    Activist Аватар для random
    Регистрация
    21.01.2005
    Адрес
    ссср
    Сообщений
    468
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от lvd
    Вот мне интересно, с каких пор strlen и memcpy стали функциями ОС? Всегда были функциями сёвыми, и были даже там, где оси нету как класса.
    на самом деле я взял эти примеры с потолка. все равно внутри ОСи эти фунцкии будут необходимы. почему их не открыть для пользователей/программ? все равно программа будет совместима только с этой осью

  7. #27
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,255
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    35 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    насчет вызовов.
    зачем тратить память (3 байта на каждую точку) и время (10 тактов на вызов), организуя набор точек перехода? или тратить туеву хучу тактов на интерпретацию параметров рестартов? если можно сделать так, что система будет подставлять адреса вызовов в тело процесса, настраивая его. не считая время на настройку, получаем 2 лишних байта на точку входа (таблицу-то надо хранить) и никаких лишних тактов на вызов

  8. #28
    Activist Аватар для random
    Регистрация
    21.01.2005
    Адрес
    ссср
    Сообщений
    468
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  9. #29
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,255
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    35 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от random
    таблица необходима для совместимости! чтобы программы все не пересобирать когда будут явные системные изменения!!!
    читай внимательней предыдущий пост. не компилятор будет подставлять адреса, а СИСТЕМА. т.е. начихать что там адреса физические сменились. лишь бы порядок нумерации не менялся (на нем основывается подстановка)

  10. #30
    Activist Аватар для random
    Регистрация
    21.01.2005
    Адрес
    ссср
    Сообщений
    468
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ты чего, предлагаешь делать DLL сразу же? не быстровато ли? по любому будет проще систему собирать если у самой системы есть общая таблица всех вызовов. и не 4 байта а всего 2, если не хотите версии проверять.

Страница 3 из 8 ПерваяПервая 1234567 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 6
    Последнее: 10.09.2013, 16:04
  2. Порты памяти - Scorpion и др.
    от ASMAN в разделе Программирование
    Ответов: 27
    Последнее: 18.06.2008, 12:20
  3. Unreal. Breakpoint на чтение памяти.
    от valker в разделе Эмуляторы
    Ответов: 1
    Последнее: 12.02.2005, 12:58

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •