Я очень запутался в этих вопросах.
На 32-битном процессоре каждый процесс имеет 4 ГБ виртуальной памяти. Но если каждый процесс имеет 4 ГБ пространства, то это будет каждый огромный объем, если запущено 100 процессов -, это больше, чем область подкачки. Может кто-нибудь объяснить это; Я очень смущен.
Как операционная система выделяет память процессу? Предположим, что процесс имеет a = malloc(2)
. Кто будет выделять эту память процессу? Отдаст ли ОС эти 2 байта памяти процессу.
(Мы обращаемся к a[2], он генерирует ошибку сегментации ).
Где остаются различные части процесса (Код, Данные, Стек, Куча )в основной памяти или во вторичной памяти.
Пожалуйста, дайте мне хорошую ссылку, чтобы я мог также понять виртуальную память и весь ее механизм, поскольку ссылки, которые я нашел, не полностью объясняют виртуальную память.