|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.12.2011, 11:08 | #1 |
Форумчанин
Регистрация: 26.06.2010
Сообщений: 168
|
CopyOnWr
может ктонибудь обяснить что такое CopyOnWr
написано что страница в которую происходит запись копируется.... на жесткий копируется? и адрес доступа к данным меняется? |
02.12.2011, 12:18 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
[telepat]
CopyOnWr - "копирование при записи", такая стратегия кеширования, что копирование переменных, страниц памяти,... происходит только, когда кто-то ее хочет поменять например: переменная1 = 123; переменная2 = переменная1; ... если попыток изменить переменная1, переменная2 не было, то реально будет только одна копия если же кто-то соберется переменная1 = 232, то создатся копия переменная2 = 123 [/telepat] |
02.12.2011, 14:21 | #3 |
Форумчанин
Регистрация: 26.06.2010
Сообщений: 168
|
а где можно почитать как все это происходит на уровне ассемблера
|
02.12.2011, 17:22 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
в смысле на уровне ассемблера? вы хотите реализовать свой менеджер памяти или кеш в проце, ОС?
|
03.12.2011, 14:11 | #5 |
Форумчанин
Регистрация: 26.06.2010
Сообщений: 168
|
скопировал в память значение... и где поевляется копия?
|
03.12.2011, 14:34 | #6 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
Копия появляется в физическо памяти.
например один процесс загружает DLL к себе в память. Если DLL уже загружена каким-либо другим процессом, то она снова не грузится. Чтобы впустую не расходовать физическую память, в память процесса отображается только её копия (ключевое слово отображается!), при этом если мы что-нибудь изменим в области памяти в которую отображена DLL, то изменяться данные у искомого процесса, который загрузил DLL первым (ведь физическая память общая). Чтобы избежать этого, страница накоторую призводится запись копируется и получается её копия для нашего процесса. Таким образом достигается экономия физической памяти до первой операции записи. При этом если DLL занимает больше одной страницы, копируются только её отдельные страницы, в которые производилась запись. Это только упрощённый пример на пальцах, в реальности всё сложнее.
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|