-3 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
|
|
1 | |
Разработать модуль подкачки с визуализацией процесса подкачки страниц или сегментов18.12.2012, 06:36. Показов 3150. Ответов 16
Метки нет (Все метки)
Всем доброго времени суток! я уже полмесяца не могу разобраться с этой задачей, может кто-нибудь в курсе как реализовать, задание такое:
1. Разработать 2 рабочих процесса, имитирующих обработку некоторой информации с обращением к сегментированному массиву данных. 2. Реализовать диспетчер памяти с сегментным или страничным способом размещения в памяти с имитацией нехватки физического пространства для размещения всего массива. 3. Разработать модуль подкачки с визуализацией процесса подкачки страниц или сегментов. 4. В качестве стратегии размещения и замещения выбрать следующий вариант: а) стратегия размещения (только для сегментов) - поиск свободного места в ОП для подгрузки нового сегмента - первый подходящий - наиболее подходящий - наименее подходящий Программу нужно реализовать в Visual Studio 2008 в консольном приложении))) Добавлено через 1 час 15 минут помогите кто нить!
0
|
18.12.2012, 06:36 | |
Ответы с готовыми решениями:
16
Физическая память или файл подкачки Файл подкачки Файл подкачки Файл подкачки |
18.12.2012, 08:06 | 2 |
непонятно
Сегментная модель - есть сегмент памяти, размер которого - константа., допустим 64 КБ. Обращение к памяти происходит так сегмент:смещение. Если смещение превышает размер сегмента - исключение. Страничная модель - если по минимому, то должна быть хотя бы одна таблица страниц, которая содержит указатели на страницы. Страница - кусока памяти размером, например, 64 КБ. Если не по простому, то каталог стрниц -> таблица страниц -> страница (или каталог каталогов (PML4) -> каталог страниц -> таблица страниц -> страница). При этом адрес делится на 3 (4) части, например адрес перменной 0x12345678 - это 0х12 - адрес + флаги таблицы страниц в каталоге, 0х34 - адрес + флаги страницы в таблице страниц, 0х5678 - смещение на странице. Указатель на каталог верхнего уровня хрянится где-нибудь в отведенной памяти (например для porotected, compatibility и long mode он хранится в регистре CR3, но в случае имитации можно просто создать переменную для этого). Под флаги (которые в адресах каталогов/страниц) отводится несколько бит, они могут означать например доступность чтения/записи/исполнения и т.д. Если происходит нарушение прав доступа или катлог/таблица/станица не мапирована (не отображена) - исключение (процессор кидает исключение #PF (page fault)). Вот, как-то так. В адресах каталогов/таблиц есть флаг присутствия страницы в памяти. Если этот флаг не выставлен, то происходит исключение и в обработчике исключения страница подкачивается, если подкачка не возможно, то еще одно исключение. Короче в твоем случае нужно сделать этот флаг, рандомно выставлять его и имитировать подкачку. Не совсем понятно, похоже ОП тоже нужно имитировать. Подходящий, неподходящий думаю зависит от того, выровнен ли кусок памяти, его расположение относительно сегмента и т.д. Думаю у тебя есть методичка в которой описаны эти критерии.
2
|
-3 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 14
|
|
18.12.2012, 09:14 [ТС] | 3 |
мне код нужен на С++
0
|
18.12.2012, 09:39 | 4 |
так изначально вопрос стоял вот так
в курсе, о чем и написал выше. По поводу кода - тут работы на целый день, если все грамотно делать (ну может на пол дня, если все сразу заработает ). Поэтому думаю есть смысл переместить тему во фриланс.
0
|
-8 / 3 / 0
Регистрация: 01.06.2012
Сообщений: 108
|
|
18.12.2012, 17:56 | 5 |
Переместить во ФЛИРАНС, как это сделать??
Добавлено через 3 часа 21 минуту Есть еще кто-нибудь, кто сможет помочь в написании кода???
0
|
Почетный модератор
21413 / 9147 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
18.12.2012, 18:38 | 6 |
Если Вы не знаете, что такое Фриланс - лучше подумайте еще раз.
Это платный раздел, где Вам решают задачи практически любой сложности, но учтите, что за это Вам придется платить деньги, и, скорее всего, 500 рублями Вы не отделаетесь
0
|
-8 / 3 / 0
Регистрация: 01.06.2012
Сообщений: 108
|
|
20.12.2012, 12:15 | 7 |
Кто-нибудь может еще что-то подсказать???
Здесь не нужна суперпрограмма, а небольшой код, всего лишь d консольном приложении Visual Studio 2008. Просто показать как работает механизм виртуальной памяти. Добавлено через 23 часа 55 минут Есть ли кто-нибудь знающий данный материал???
0
|
-8 / 3 / 0
Регистрация: 01.06.2012
Сообщений: 108
|
|
20.12.2012, 14:03 | 9 |
Интересует конкретно реализация на C++ в Visual Studio 2008 в консольном приложении, не знаю как написать код...
0
|
vxg
|
20.12.2012, 15:45
#11
|
Не по теме: *ишь, Kastaneda, как тонко измывается :)*
0
|
-8 / 3 / 0
Регистрация: 01.06.2012
Сообщений: 108
|
|
20.12.2012, 16:08 | 12 |
в смысле конкретно код программы написать и его объяснить)))
0
|
20.12.2012, 19:01 | 13 |
Не по теме: Если на выходных будет время и желаение - может что-нибудь напишу, но пока ни чего не обещаю. По подобным вопросам советую сайт, в частности раздел paging. Добавлено через 11 минут Не по теме: Блин, залез на нашу википедию по этому вопросу, пришлось страницу немного подправить :)
1
|
-8 / 3 / 0
Регистрация: 01.06.2012
Сообщений: 108
|
|
21.12.2012, 12:08 | 14 |
Kastaneda, будем очень благодарны тебе если ты поможешь нам написать код)))
Там сильно замудренного ничего такого не нужно, просто в консольном приложении VS 2008 на цифрах все это показать как нибудь)))
0
|
Kastaneda
|
21.12.2012, 13:08
#15
|
0
|
Модератор
12736 / 7566 / 1764
Регистрация: 25.07.2009
Сообщений: 13,954
|
|
21.12.2012, 18:09 | 16 |
А "суперпрограмма" - это когда с окошками и красивыми кнопочками?
Круто! Я бы значительно дольше провозился, хотя честно говоря раньше этим и не занимался, просто примерно в курсе, как оно бывает. Но учитывая объём и сложность работы, думаю, однокурсники этим чуть-ли не с 1 сентября озадачивались. Так, что, заказать во фрилансе - видимо лучший выход. Вас же двое, ну скиньтесь - дешевле выйдет. При всём уважении к Kastaneda, убивать просто так на это задание целый выходной (а то и два, если сразу не заработает ) - какое-то сомнительное удовольствие...
0
|
22.12.2012, 13:37 | 17 | |||||
Короче вот что-то набросал
Ага, я что-то про день/полдня неподумав сказал. Реально если делать все как следует, с реализацие всего всего, то пару дней надо (с учетом понимания paging'a). И это только на реализацию модели paging'a, а плюс еще сами задания. Да, просидел часа полтора, потом плюнул, даже дескрипторы не стал делать, просто в коментариях отметил Короче совет - во фриланс! Только вот стоить это будет (как уже писали выше) далеко не 500 рублей. P.S. не пытайтесь запускать этот код, я там не подумав мапировал все 4 ГБ памяти (как это на самом деле бывает), только вот я эти 4 ГБ из кучи беру, поэтому программа (и ОС) просто зависнут Поэтому нужно подумать - либо обрезать размер памяти, либо мапировать только используемую таблицу -> страницу по запросу.
1
|
22.12.2012, 13:37 | |
22.12.2012, 13:37 | |
Помогаю со студенческими работами здесь
17
Файл подкачки файлы подкачки Файл подкачки Файл подкачки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |