Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2013, 16:58   #11
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
интересно мне знать какая статическая память в винде?
В винде её нет, ибо работает супервизор. Я говорю о тех временах, когда даже DOS небыло, а о супервизоре, мы только менчтали.
Цитата:
кусками где?
Например так:
"кусок 1" указатель на другой...
"Кусок 2" укакзатель на следующий
"И так далее"
В случае malloc, указателей нет, просто выделяется сегмент, с кратностью 256 (один младший байт адреса.)
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 12.01.2013 в 17:04.
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.01.2013, 17:06   #12
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
интересно мне знать какая статическая память в винде?
Статическая память процесса?
_Bers вне форума Ответить с цитированием
Старый 12.01.2013, 17:10   #13
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Smitt&Wesson
походу тебя переклинило, и ты перепутал new с крестовыми аллокаторами, которые действительно могут выделять память чанками
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 12.01.2013, 17:14   #14
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
Статическая память процесса?
В винде, нет статики. Работает супервизор. В проце, предусмотрен кеш указателей на сегменты и винда его активно использует.

Цитата:
Сообщение от pproger Посмотреть сообщение
2Smitt&Wesson
походу тебя переклинило, и ты перепутал new с крестовыми аллокаторами, которые действительно могут выделять память чанками
Меня не переклинило. "крестовый акллокатор" выделяет память под поток и размер его буфера может изменяться от 0 до max, заданного при открытии потока. Кстати почему к5рестовый? Потому, что берйт начальный и конечный адрес физической области памяти и выявляет не занятую облать. Матрица квадратная, потому и "крестовый".
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Stilet; 12.01.2013 в 17:55.
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.01.2013, 17:22   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

как будет устроена куча не важно, важно чтоб она делала свое дело.
в пределах одной аллокации память непрерывна.
Цитата:
В винде её нет, ибо работает супервизор. Я говорю о тех временах, когда даже DOS небыло, а о супервизоре, мы только менчтали.
платформо зависимые вещи к malloc не имеют отношения.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.01.2013, 17:30   #16
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
В винде, нет статики. Работает супервизор. В проце, предусмотрен кеш указателей на сегменты и винда его активно использует.
Код:
int val[3] = { 10,20,30};  //в какой области памяти живут данные?

int main()
{
   ...
}
_Bers вне форума Ответить с цитированием
Старый 12.01.2013, 17:36   #17
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
платформо зависимые вещи к malloc не имеют отношения.
Ещё как имеют. Память, в проце, разбита на сегменты 256 байт. Выделение идёт с начала сегмента и до n+x, где n - количество сегментов, x - "хвост" до конца используемого сегмента. Такая-же схема используется при записи на диск. Только там это называентся - кластеры.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.01.2013, 17:43   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Ещё как имеют. Память, в проце, разбита на сегменты 256 байт. Выделение идёт с начала сегмента и до n+x, где n - количество сегментов, x - "хвост" до конца используемого сегмента. Такая-же схема используется при записи на диск. Только там это называентся - кластеры.
кластер термин ФС в общем то(в винде он 4096).
у накопителей обычно идет адресация блоками по 512 байт.

проц использует систему страниц, страница минимум 4096 байт.
выравнивание же используется на границу слова, но явно не границы неких 256 байт.
как я выше показал new использует malloc(что и логично)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.01.2013, 17:50   #19
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
проц использует систему страниц, страница минимум 4096 байт.
Путаешь физику и логику. Согласен с тем, что винда разбивает логирческое пространство, на кластеры по 1096 байт, но "физическая" разбивка, по прежнему остаёться по 256 байт. И с этим ничего не поделаешь.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.01.2013, 17:57   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну вообще то страницы это понятие проца, винда тут не причем.
ну ширина шины данных...ну может она и 256 битная.
хотя я бы лично не стал к этому привязыватся.

тем не менее мы отошли в сторону от темы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка оболочки для UPX для своих нужд Ёжик в тумане Общие вопросы Delphi 9 08.08.2012 12:04
Ограничение/выделение памяти для приложений(программ) gekap404 Win Api 1 13.03.2012 14:30
Выделение памяти для строк virtuhay266 Общие вопросы C/C++ 4 05.12.2011 23:52
Выделение диапазона адресов для окна памяти платы ISA Veri Общие вопросы C/C++ 1 27.09.2011 14:20
Выделение памяти в функции для переданных параметров LinuxUser Общие вопросы C/C++ 1 12.11.2007 19:21