Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 13:41

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: идеи by mOleg
СообщениеДобавлено: Пт июн 06, 2008 15:29 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Первое, для обсуждение данной темы предназначается другие темы: тут и тут. Все на мой взгляд лишнее я буду туда ссылать, уж не обижайтесь.

не смотря на то, что топик содержит слово "идеи" - сразу все кидать в тему не собираюсь.


Последний раз редактировалось mOleg Сб июн 07, 2008 03:57, всего редактировалось 4 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 06, 2008 15:32 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
немного сумбурно, но уж простите, сегодня меня рано разбудили по очень дрянному вопросу 8(

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

Немного об использовании памяти системы.
Понятно, что на данный момент физическая память современных компов адресуется
непрерывно(хотя и дырки в физическом адресном пространстве бывают).

Принятую плоскую модель памяти для пользовательских процессов использовать не стоит
по ряду причин:
1) это ограничивает максимальный доступный размер памяти максимально адресуемой величиной,
чего, вроде, достаточно для 32 разрядных процов, но, например, уже для 16разрядных
не хватает.
2) сложнее изолировать области памяти (необходимо использовать достаточно нетривиальные
методы защиты памяти, поддерживаемые процессорами, которые, кроме всего прочего, сильно
привязаны к конкретным семействам процессоров, а значит сложнее портировать).
3) сложнее отслеживать переполнение буферов, порчу собственного кода, перехлестывание
стеков и т.п. вещи.
4) жесткая фиксация адресного пространства за типом ЗУ, что тоже не очень удачно на
мой взгляд.
5) жесткая привязка к адресам в памяти (сложности с обеспечением страничной подкачки и т.п.)
В любом случае, необходимо поддерживать динамическую память (HEAP), причем сразу.

Я предлагаю использовать модель памяти по типу сегментной, точнее, механизма, аналогичного селекторам, которые поддерживает ix86 архитектура. А именно, любой адрес в памяти ОС представлять парой чисел: id:disp - идентификатор блока и смещение внутри него. Такой подход позволяет адресовать, например, на 16 битном процессоре 2^32 ячеек памяти. Кроме того, достаточно просто организуется изоляция адресных пространств, подкачка отдельных слов (сваппирование).
id - позволяет адресовать не только ОЗУ, но и файлы, например, и любые другие устройства хранения данных и даже каналы их передачи.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 06, 2008 15:39 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
немного поясню предыдущее сообщение. Предложенный вариант работы с памятью не определяет типа ШК, используемого системой (под типом ШК понимать любой вариант компиляции кода в форт-системе).

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

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 06, 2008 17:34 
Не в сети
Аватара пользователя

Зарегистрирован: Вт ноя 06, 2007 21:23
Сообщения: 227
Откуда: Екатеринбург
Благодарил (а): 4 раз.
Поблагодарили: 7 раз.
mOleg писал(а):
Я предлагаю использовать модель памяти по типу сегментной, точнее, механизма, аналогичного селекторам, которые поддерживает ix86 архитектура.ю.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB