私はこれらの質問に非常に混乱しています。
32 ビット プロセッサでは、すべてのプロセスに 4 GB の仮想メモリがあります。ただし、すべてのプロセスに 4 GB のスペースがある場合、100 のプロセスが実行されている場合はすべての巨大な量になります。これはスワップ領域よりも大きくなります。誰かがこれを説明してもらえますか; 私は非常に混乱しています。
オペレーティング システムはどのようにメモリをプロセスに割り当てますか? プロセスに があるとします
a = malloc(2)
。このメモリをプロセスに割り当てるのは誰ですか? OS は、これらの 2 バイトのメモリをプロセスに割り当てますか。
(セグメンテーション エラーを生成する a[2] にアクセスします)。プロセスのさまざまな部分 ( Code 、 Data 、 Stack、 Heap ) は、メイン メモリまたはセカンダリ メモリのどこに残りますか。
私が見つけたリンクは仮想メモリを完全に説明していないので、仮想メモリとそのメカニズム全体を理解できるように、良いリンクを教えてください。