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/ |