Обсуждение:Работа с памятью — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
 
(не показано 7 промежуточных версий 3 участников)
Строка 10: Строка 10:
  
 
Хорошо. Выделение памяти действительно лучше перенести в статью про heap. Но визуализировать адресное пространство нужно по-любому, причем желательно именно через vmmap --- так нагляднее. Что должно быть в этой статье? Адресные пространства не пересекаются между процессами (это есть), адресные пространства не зависят от объема физической памяти (это есть), суммарный объем выделенной физической памяти по всем адресным пространствам не превышает объем физической памяти (мне кажется, это стоит явно прописать), нужно рассказать про page fault, явно сказать, что код программы и зависимостей берется с жесткого диска и не дублируется в оперативке. -- АК
 
Хорошо. Выделение памяти действительно лучше перенести в статью про heap. Но визуализировать адресное пространство нужно по-любому, причем желательно именно через vmmap --- так нагляднее. Что должно быть в этой статье? Адресные пространства не пересекаются между процессами (это есть), адресные пространства не зависят от объема физической памяти (это есть), суммарный объем выделенной физической памяти по всем адресным пространствам не превышает объем физической памяти (мне кажется, это стоит явно прописать), нужно рассказать про page fault, явно сказать, что код программы и зависимостей берется с жесткого диска и не дублируется в оперативке. -- АК
 +
 +
Ясно, сейчас дополню. Выделение памяти временно помещено в подзаголовок "Архив". --[[Участник:Phil|Phil]] 17:07, 11 июля 2011 (UTC)
 +
 +
Есть еще такой момент: у вас куча фактических ошибок. Некоторые места на лекции мы отмечали как "модельные" моменты (и тут нужно пометить их как некоторое приближение), а некоторые (как, например, глобальные переменные в хипе) вы взяли непонятно откуда :) -- АК
 +
 +
Как только будет хорошая структура, будем править фактические ошибки. -- АК
 +
 +
Структура отредактирована --[[Участник:Phil|Phil]] 17:33, 11 июля 2011 (UTC)
 +
 +
Архив перенесен в статью [[Выполнение программы]] --[[Участник:Phil|Phil]] 17:36, 11 июля 2011 (UTC)
 +
 +
Бред в данной статье перестает быть терпимым. Что ты написал про page faults? Какие глобальные переменные в heap? Какая библиотека Kernel.dll, ты же запускал vmmap? Отцепи, пожалуйста, от основного репозитория mediawiki ветку с конспектом моих лекций, чтобы никто кроме нас не читал эти статьи. -- АК
 +
 +
Ребят, поправьте пожалуйста статью, у меня два дня не будет доступа в сеть. Ветка отцеплена. --[[Участник:Phil|Phil]] 17:33, 13 июля 2011 (UTC)

Текущая версия на 22:29, 16 июля 2011

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

Ясно, переделаем --Phil 20:15, 10 июля 2011 (UTC)

Хотя, я не полностью согласен. На мой взгляд, стоит дать понять, что такое АП, где оно находится, как хранится в физической памяти - и только потом показывать, как с ним можно работать, в т.ч. выделять память в хипе, и т.д. --Phil 20:23, 10 июля 2011 (UTC)

5 человек из 5 опрошенных сказали, что из этой статьи им ясно, что такое адресное пространство. Некоторые добавили, что не ясно, как с ним работать - то есть цель достигнута; работа с адресным пространством будет описываться в следующих статьях.

И да, я не уверен, что стоит приводить шоты в этой статье - пока мы не рассказали, когда память выделяется в стеке, а когда в хипе. Думаю, это только затруднит понимание. Предлагаю сделать это в следующей главе. --Phil 21:03, 10 июля 2011 (UTC)

Хорошо. Выделение памяти действительно лучше перенести в статью про heap. Но визуализировать адресное пространство нужно по-любому, причем желательно именно через vmmap --- так нагляднее. Что должно быть в этой статье? Адресные пространства не пересекаются между процессами (это есть), адресные пространства не зависят от объема физической памяти (это есть), суммарный объем выделенной физической памяти по всем адресным пространствам не превышает объем физической памяти (мне кажется, это стоит явно прописать), нужно рассказать про page fault, явно сказать, что код программы и зависимостей берется с жесткого диска и не дублируется в оперативке. -- АК

Ясно, сейчас дополню. Выделение памяти временно помещено в подзаголовок "Архив". --Phil 17:07, 11 июля 2011 (UTC)

Есть еще такой момент: у вас куча фактических ошибок. Некоторые места на лекции мы отмечали как "модельные" моменты (и тут нужно пометить их как некоторое приближение), а некоторые (как, например, глобальные переменные в хипе) вы взяли непонятно откуда :) -- АК

Как только будет хорошая структура, будем править фактические ошибки. -- АК

Структура отредактирована --Phil 17:33, 11 июля 2011 (UTC)

Архив перенесен в статью Выполнение программы --Phil 17:36, 11 июля 2011 (UTC)

Бред в данной статье перестает быть терпимым. Что ты написал про page faults? Какие глобальные переменные в heap? Какая библиотека Kernel.dll, ты же запускал vmmap? Отцепи, пожалуйста, от основного репозитория mediawiki ветку с конспектом моих лекций, чтобы никто кроме нас не читал эти статьи. -- АК

Ребят, поправьте пожалуйста статью, у меня два дня не будет доступа в сеть. Ветка отцеплена. --Phil 17:33, 13 июля 2011 (UTC)