Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Свопинг, как можно реализовать? 
:(
    Опции темы
eXcoder
Дата 8.6.2006, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 26.2.2006

Репутация: нет
Всего: нет



Дали задание воспроизвести  функцию свопинга на Delphi.
И чтобы можно было видеть картинку живьем как что происходит.

У кого-нибудь есть подобного рода исходники или мануалы?
Помогите, плз.  smile  
PM MAIL   Вверх
Snowy
Дата 8.6.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



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

Добавлено @ 16:24 
И его нужно производить или только показывать на картинке? 
PM MAIL   Вверх
eXcoder
Дата 8.6.2006, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 26.2.2006

Репутация: нет
Всего: нет



Цитата(Snowy @  8.6.2006,  16:23 Найти цитируемый пост)
Смотря что подразумевается под свопингом.

Обмен между оперативной памятью и файлом подкачки.


Цитата(Snowy @  8.6.2006,  16:23 Найти цитируемый пост)
И его нужно производить или только показывать на картинке? 

И то и другое  smile 
 
PM MAIL   Вверх
Snowy
Дата 8.6.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Вообще-то свопингом занимается операционная система.
Что именно нужно свопить? 
PM MAIL   Вверх
eXcoder
Дата 8.6.2006, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 26.2.2006

Репутация: нет
Всего: нет



В том то и дело что нужно сэумулировать этот процесс  smile 

Цитата

Задание на работу:
Разработать программу, моделирующую один из алгоритмов управления памятью (я выбрал своппинг). При моделировании считать, что:

* объем моделируемой "памяти" составляет 64к
* поступаемые на выполнение задачи содержатся в файлах, которые пользователь может "загружать в моделируемую "память" и выгружать из нее (файл моделирует лишь размер задачи)
* размер задачи в диапазоне от 0 до 65535 байт

Программа должна иметь возможность просмотра состояния моделиуремой "памяти"
 
PM MAIL   Вверх
Rouse_
Дата 8.6.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Может писать данные напрямую в своп? 


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
Snowy
Дата 8.6.2006, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Дайте-ка я попробую перевести задачу на русский.
Итак, имеем "условную" оперативную память в 64 килобайта.
Имеем какую-то информацию в файле, размером, например пару метров.
Нам нужно обработать эту информацию, не выходя за пределы 64 килобайт.
Причем делать это не напрямую - из файла в файл, а эмулируя свопинг.
То есть. Например информация текстовая.
Мы читаем из файла строку. Смотрим, а осталось ли еще место в нашей условной памяти...
Если нет, то скидываем ее часть в условный своп.
То есть задача сводится к написанию объекта-менеджера, которому дают каким-то образом маркированный кусок данных. Его задача хранить все эти данные в памяти, добавлять новые, удалять, предоставлять данные по идентификатору.
При этом он должен следить, чтобы размер занимаемой памяти не превышал 64 кило.
Для этого он должен иметь хитро-маркированный файл, где бы он мог размещать данные и быстро получать к ним доступ по требованию...

Если так, то это тянет если не на дипломный проект, то на курсовую как минимум.
Это работа на месяц, если хорошо спланировать... 
PM MAIL   Вверх
Rouse_
Дата 8.6.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Хм, а класс TStack не устроит? 
Вообще пишется обертка над TMemoryStream где переопределяется Realloc в котором четко ставим размер в 64К. 


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
bems
Дата 8.6.2006, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 21
Всего: 88



Используй memory mapped file, только свой, а не системный файл подкачки 


--------------------
Обижено школьников: 8
PM MAIL   Вверх
eXcoder
Дата 9.6.2006, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 26.2.2006

Репутация: нет
Всего: нет



Цитата(Rouse_ @  8.6.2006,  17:56 Найти цитируемый пост)
Хм, а класс TStack не устроит? 
Вообще пишется обертка над TMemoryStream где переопределяется Realloc в котором четко ставим размер в 64К. 



Цитата(bems @  8.6.2006,  23:22 Найти цитируемый пост)
Используй memory mapped file, только свой, а не системный файл подкачки 


Можно отсюда поподробней?  smile 
 
PM MAIL   Вверх
Sardar
Дата 9.6.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



По моему для лабы нужно всё делать по честному, следовательно выделить цельный кусок 64к, разбить по страницам 512б и реализовать отображение виртуального адреса в реальный (выборка по байтам твоей функцией, т.к. исключений ты не получишь), написать свои malloc/free. Есессно это всё thread-safe должно быть smile

Написать не сложно, будет "как по настоящему". 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0636 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.