IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Модель распределения памятью, помогите с алгоритмом
Ellsa
сообщение 7.12.2007 19:01
Сообщение #1


lehf
**

Группа: Пользователи
Сообщений: 115
Пол: Женский

Репутация: -  4  +


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

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

у меня несколько вопросов.

1. как узнать что процесс закончился?
Я думала,может вводить его длительность с клавиатуры?Но я не умею работать с реальным,так сказать,временем.Может мне выразить время в каких-либо еденицах,например t и поставить счетчик,чтоб когда достигло такого-то значения-обнулился бит?
Но ведь счетчик надо ставить на какое-то условие.....
и вообще,не уверена,что этот метод разумен.

2. как сделать такчтоб пока один процесс выполняется-взяться за другой?

Спасибо за хотя бы какие-нибудь предложения. Извините,если я что не так сделала.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
andriano
сообщение 9.12.2007 11:26
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


А я не понимаю, что именно должна делать твоя программа.
Во-первых, менеджер памяти предполагается как часть программы, использующей память, или как часть ОС?
Собственно, и в первом и во втором случае процесс должен сообщить менеждеру памяти о том, что ему требуется какое-то количество памяти. Иначе он, естественно, никакой памяти не получит. Точно таким же способом он должен сообщить менеджеру, что память ему больше не нужна.
Случай, когда проесс по каким-то причинам вернул не всю запрошенную память (что свидетельствует о том, что процесс написан неправильно), будет обрабатываться по-разному в случае со встроеммым либо внешним менеджером памяти. При встроенном он заканчивает работу вместе с программой и аккуратное возвращение всей запрошенной памяти ОСи перекладывается уже на ее собственый менеджер памяти.
Если же мы рассматриваем менедлер памяти ОС, то его работа начинается раньше, чем будет запущен процесс - ведь для него сначала надо выделить память, и только потом в эту память можно будет загрузить коды запускаемого процесса. В процессе работы процесса менеджер памяти ведет учет памяти, запрошенной КАЖДЫМ процессом, а о его завершении ОС, естественно, сообщает менеджеру, после чего менеджер освобождает ВСЮ память, отведенную процессу - как запрошенную им в процессе работы, так и выделенную для загрузки кодов.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 30.07.2025 8:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"