OSDev
http://osdev.su/

Память
http://osdev.su/viewtopic.php?f=26&t=623
Страница 10 из 10

Автор:  Станислав [ 27 сен 2012, 12:16 ]
Заголовок сообщения:  Re: Память

phantom-84 писал(а):
В чем проблема? Не нужно придумывать что-то свое только по той причине, что не удается реализовать вполне устоявшееся и хорошо зарекомендовавшее себя решение.



Вполне устоявшееся и хорошо зарекомендовавшее себя решение это создание адресного пространства для приложения и копирование его туда. Решение хорошее, но при переборе системой всех пространств для просмотра буферов для отрисовки рабочего стола формами задача решаемая, а моя система сохранение любого объекта(его адреса) в пиксель при его рисовании для быстрого его доступа работать не будет, т.к. адреса из разных пространств, и нужен уже второй адрес туда пихать (адрес этого пространства для переключения и просмотра объекта по первому адресу там).

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

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

Автор:  iz56 [ 27 сен 2012, 14:18 ]
Заголовок сообщения:  Re: Память

На счёт того, что б сначала попроще, только могу заметить, что я понимаю слово _проще_ - в смысле сделать скелет системы, а потом мясо. А у тебя Станислав, по ходу, наоборот. А вообще проблема сложности не только у тебя. Я сейчас пытаюсь определить для себя что собственно считать скелетом. В идеале, для работы на этом уровне нужно что-то вроде специализированного языка. А оперировать с такими вещами как процессорное время , память, и все структуры данных для управления.

Автор:  Станислав [ 19 окт 2012, 07:00 ]
Заголовок сообщения:  Re: Память

Я доделал работу с памятью и теперь у меня при запуске задачи(приложения) выделяются страницы по требованию задачи в общем пространстве и собственном пространстве, а после закрытия все страницы освобождаются.
Общее пространство для задачи сделал 512Мб а собственное после 1Гб до 4Гб
Так же сделал общее пространство для модулей и там добавляются модули(компоненты, протоколы, драйвера, форматы, системы файловые) и регистрируются в системе.
Для объектов сделал общие функции переключения задачи при их активации, отрисовке, посылке сообщения.
Каждый раз при обращении к объекту включается его адресное пространство его задачей, но мне ещё нужно переходить в этот момент на нужный сегмент, где записаны права доступа(1-3).
Подскажите как это сделать(переключение при прыжке на код объекта в фасме), в таблице дескрипторов я создал записи для системы(доступ 0) и приложений(доступ3)? Чтобы не было прав у задачи на управляющие команды.
Вообще система поумнела и похоже теперь получилось что то интересное.
Сейчас переношу драйвера сетевухи дисков и флешек с записью данных от них в страницы находящиеся в пространстве задачи, а звуковуха должна получать реальные адреса из пространства и играть их.
Из задачи я хочу выделять память для объектов и вызывать функции инициализации конкретного типа(по номеру) объекта(заполнение полей функционалом) и добавление своих данных(размер, цвет, ...) и добавлением своим функционалом. При создании объекта формы передаётся адрес на болванку(находящуюся в общем пространстве как и все объекты) к заполнителю, там уже должны быть данные о задачи в которой она будет работать, цвете и максимальном размере, ставятся функции и создаётся буфер в собственном пространстве задачи, после чего объект готов и будет функционировать.

Страница 10 из 10 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/