User Tag List

Показано с 1 по 10 из 49

Тема: Взялся я писать статью... SDCC как всегда:)

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    Также присоединяюсь к мнению Oleg N. Cher:
    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Придерусь к частности. ИМХО зря использовал HL вот здесь:
    ...
    Лучше взять BC или DE.
    А по-моему лучше вообще не использовать никаких регистров. Кроме программистов на Си встречаются ещё программисты на ассемблере, которые передают параметры в регистрах. Например, "резидентная интерфейсная часть" (в английском используется термин "Import Library") может состоять из команд JP 0, JP 3, JP 6 и т.д., которые изменяются в ходе настройки основной программы на фактический адрес загрузки модулей.

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

    - - - Добавлено - - -

    Цитата Сообщение от SfS Посмотреть сообщение
    Там проблема - как данные между страничками передавать при вызове...
    Я тоже думал над этой проблемой. Пришел к следующим идеям:

    1) Исполняемые файлы и динамические библиотеки состоят из сегментов. Paged Code/data - код или данные, которые можно размещать в страницах (C000-FFFF); Nonpaged Code/data - то, что необходимо размещать вне страниц, в резидентной памяти. Сегменты реализованы в современных исполняемых форматах (Windows EXE, ELF). Упомянутый подход реализован для драйверов Винды, где часть кода или данных загрузчик размещает в "дорогой" резидентной памяти (Nonpaged Pool), а остальные - в той памяти, которая может свопиться.

    2) Системный менеджер памяти принимает параметр - какая требуется память: резидентная (которой мало), страничная в текущей странице (которой тоже мало, но предпочтительно использовать её) или же страничная в любой странице (которой много, но доступ неудобный).

    3) Программист должен стремиться свести к минимуму перемещения данных между страницами и использование Nonpaged Memory. Вызовы функций можно разделить на "близкие" (когда вызываемый код находится в резидентной памяти или той же странице); и "далёкие" - посредством системной функции, переключающей страницу перед вызовом и после возврата.

    4) Для крайних случаев сделать системные функции вроде "Far memory Read" и "Far memory Write", которые перемещают данные из "чужой" или "в чужую" страницы.

    5) Резидентный код может вызывать системные фукнции переключения страниц и иметь непосредственный доступ к памяти из любых страниц.
    Цитата Сообщение от SfS Посмотреть сообщение
    Да и в одного както грустно творить чтото большое.
    Ну дык, аналогично. Давай скооперируемся. Я уже выкладывал прототип диспетчера многозадачности. С тех пор пришло много идей его улучшения, грустно только было за это браться ввиду отсутствия единомышленников! Также я недавно выложил свой оконный интерфейс, драйверы клавиатур, диска. Этот код старый, но тоже может быть тщательно переработан и выведен на современные стандарты качества. За последнюю неделю занимался функциями быстрого вывода текста. Выложить только не успел еще.
    Последний раз редактировалось Barmaley_m; 27.12.2018 в 01:40.

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

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

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

Похожие темы

  1. Ответов: 8
    Последнее: 04.11.2006, 13:14
  2. Как писать простые програмы?
    от alexfreed в разделе Софт
    Ответов: 3
    Последнее: 11.12.2005, 14:57

Ваши права

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