User Tag List

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

Тема: Оконный интерфейс для БК0011

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

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

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Atari Посмотреть сообщение
    vinxru, как думаете переключать задачи, передавать между ними данные (вызов ф-ции DLL в т.ч.), думаете ли организовывать кольца защиты?
    Защиты не будет, любая программа может уронить систему. У БК0010 есть пультовый режим (типа режима отладки с подключением альтернативного ПЗУ, с возможностью пошаговой отладки), но он требует железной поддержки (доп платы) и пока я его не планирую использовать. Так же можно сделать полноценный пейджинг (блокирование чтения или записи блоков размером 64 байта) на внешнем контроллере памяти, но это то же паяльник.

    DLL

    DLL выполняется в контексте задачи. То есть все созданные окна и выделенная память будет принадлежать вызвавшему процессу. Завершается процесс, уничтожаются все созданные окна.

    DLL может обладать собственными данными, только если будет модифицировать свой сегмент данных.

    (Но не должна. И если будет использоваться пейджинг, то это вызовет ошибку.)

    Взаимодействие задач

    Задачи должны будут общаться только через функцию SendMessage. Она переключает страницы памяти и изменяет контекст задачи. То есть все созданные ресурсы будут принадлежать новой задаче.

    Если одна задача передает другой задаче блок памяти (например строку), то эта строка должна быть создана функцией GlobalMemAlloc. Что бы строка гарантированно была создана в общей памяти. А принимающая задача должна изменить владельца блока на себя.

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

    Еще будут файловые трубы (CreatePipe). Одна задача пишет в виртуальный файл, другая читает.

    ---------- Post added at 14:43 ---------- Previous post was at 14:37 ----------

    Цитата Сообщение от Atari Посмотреть сообщение
    как вообще на PDP организованно обработка ловушек и исключений?
    Внешнем или встроенным в процессор MMU (менеджером памяти). Он обеспечивает что то похожее на защищенный режим 286/386 процессоров.
    В БК0010 этого нет.

    ---------- Post added at 15:15 ---------- Previous post was at 14:43 ----------

    Вообще разные бывают MMU, я видел такой:

    Адресное пространство 64Кб делится на 8 блоков по 8 килобайт.

    К каждому блоку можно подключить любую область физической памяти. Например 4 Мб с шагом 64 байта.

    (Аналог сегментных регистров, только тут их 8 и шаг 64 байта.)

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

    (Аналог защищенного режима)
    Последний раз редактировалось vinxru; 14.03.2012 в 15:59.

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

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

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

Похожие темы

  1. Ищу схему на интерфейс И12
    от AlecV в разделе ДВК, УКНЦ
    Ответов: 8
    Последнее: 23.07.2022, 07:46
  2. БК0011 разные
    от alexsan в разделе БК-0010/0011
    Ответов: 4
    Последнее: 26.10.2015, 22:40
  3. ST IDE-интерфейс
    от megabyte в разделе Atari
    Ответов: 5
    Последнее: 17.04.2011, 13:02
  4. Интерфейс Спарк
    от Alex III в разделе Внешние накопители
    Ответов: 0
    Последнее: 31.01.2010, 02:13
  5. Ищу БК0010...БК0011
    от GrifonLeo в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 19.05.2009, 07:22

Ваши права

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