Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Создание диспетчера памяти,виртуальная память


Автор: shadowtony 5.1.2007, 21:40
Доброго времени суток, друзья.

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

Необходимо ИМЕННО продемонстрировать _алгоритмы_ управления памятью, прочие аспекты мало волнуют. Организация - Сегментно-страничная ( Ну возможен вариант и со страничной,чтобы я хоть понял, далее адаптировать можно.)

То есть вот такая часть операционки. В плане реализации - чистый асм или Си с вставками асма - ограничений нет. Но от этого не весьма легче стало.

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

В принципе понятно,что должны быть а) загрузка, например, с дискетки нашей будущей ОСи(или ее части)
б) подготовка к переходу в защищенку, таблицы готовим, прерывания( ведь страничные прерывания как минимум будем ловить), А20 проверяем\открываем и т.д и.т.п...
перешли в защищенку....

все,нам доступны возможности этого режима, 32-битность, куча плюшек...
а дальше что?

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


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

интересует не теория,а хоть каким боком прктическая реализация( доступная).

заранее спасибо за ответы.

Автор: Daevaorn 6.1.2007, 01:15
shadowtony, http://www.wasm.ru/series.php?sid=20
от начала и до конца. очень много нового узнаешьsmile

Автор: shadowtony 6.1.2007, 02:43
Спасибо, но эту рассылку я уже читал в ноябре-декабре,когда был озабочен самим защищенным режимом.

Там информативней,чем тот же Зубков, но там в основном описывается до момента перехода в защищенный режим и инфа про организации памяти,это полезно. но а дальше?
в чем будет состоять управление памятью-то? как осуществляться? как это по науке делали на практике? ведь 100% я не первый и даже не 1001-й кто это делать собирается.

Автор: Daevaorn 6.1.2007, 03:00
shadowtony, смотри:
http://en.wikipedia.org/wiki/Comparison_of_open_source_operating_systems
выбирай любую и изучай исходники. Самоя простая в изучении наверно minix

Автор: MAKCim 6.1.2007, 10:04
Цитата

интересует не теория,а хоть каким боком прктическая реализация( доступная).

Используй исходники ОС Linux
могу тогда точно сказать, где лежит то, что тебе надо, но Assembler там AT&T, поэтому придется подучить
хотя бы по http://freepascal.ru/wiki/index.php/GNU_Assembler_%E2%80%94_as мануалу

Автор: MAKCim 6.1.2007, 10:30
Цитата

в чем будет состоять управление памятью-то? как осуществляться?

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

Автор: W4FhLF 6.1.2007, 12:23
Марк Руссинович, Дэвид Соломон "Внутрненне устройство Microsoft Windows", Глава 7 "Управление памятью", абсолютно все ответы на свои вопросы ты найдёшь там. Вопрос станет только за реализацию.

Автор: shadowtony 6.1.2007, 17:23
Цитата

Самоя простая в изучении наверно minix 


ну насколько я в тененбаумовской книжке разбирался, они у них даже без виртуальной памяти. но да, 2-й миникс надо будет покопать более основательно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)