Обсуждение:Работа с памятью
Адская жесть. Вот что, друзья, давайте сделаем так: напишите программу, которая будет иллюстрировать работу с адресным пространством. Скажем, для начала она просто будет выделять большой кусок памяти в хипе. С помощью 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, явно сказать, что код программы и зависимостей берется с жесткого диска и не дублируется в оперативке. -- АК