![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| eXcoder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 26.2.2006 Репутация: нет Всего: нет |
Дали задание воспроизвести функцию свопинга на Delphi.
И чтобы можно было видеть картинку живьем как что происходит. У кого-нибудь есть подобного рода исходники или мануалы? Помогите, плз. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Смотря что подразумевается под свопингом.
Добавлено @ 16:24 И его нужно производить или только показывать на картинке? |
|||
|
||||
| eXcoder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 26.2.2006 Репутация: нет Всего: нет |
||||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Вообще-то свопингом занимается операционная система.
Что именно нужно свопить? |
|||
|
||||
| eXcoder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 26.2.2006 Репутация: нет Всего: нет |
В том то и дело что нужно сэумулировать этот процесс
|
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Может писать данные напрямую в своп?
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Дайте-ка я попробую перевести задачу на русский.
Итак, имеем "условную" оперативную память в 64 килобайта. Имеем какую-то информацию в файле, размером, например пару метров. Нам нужно обработать эту информацию, не выходя за пределы 64 килобайт. Причем делать это не напрямую - из файла в файл, а эмулируя свопинг. То есть. Например информация текстовая. Мы читаем из файла строку. Смотрим, а осталось ли еще место в нашей условной памяти... Если нет, то скидываем ее часть в условный своп. То есть задача сводится к написанию объекта-менеджера, которому дают каким-то образом маркированный кусок данных. Его задача хранить все эти данные в памяти, добавлять новые, удалять, предоставлять данные по идентификатору. При этом он должен следить, чтобы размер занимаемой памяти не превышал 64 кило. Для этого он должен иметь хитро-маркированный файл, где бы он мог размещать данные и быстро получать к ним доступ по требованию... Если так, то это тянет если не на дипломный проект, то на курсовую как минимум. Это работа на месяц, если хорошо спланировать... |
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Хм, а класс TStack не устроит?
Вообще пишется обертка над TMemoryStream где переопределяется Realloc в котором четко ставим размер в 64К. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 21 Всего: 88 |
Используй memory mapped file, только свой, а не системный файл подкачки
-------------------- Обижено школьников: 8 |
|||
|
||||
| eXcoder |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 26.2.2006 Репутация: нет Всего: нет |
||||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
По моему для лабы нужно всё делать по честному, следовательно выделить цельный кусок 64к, разбить по страницам 512б и реализовать отображение виртуального адреса в реальный (выборка по байтам твоей функцией, т.к. исключений ты не получишь), написать свои malloc/free. Есессно это всё thread-safe должно быть
Написать не сложно, будет "как по настоящему". -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |