タグ付けされた質問 「mmap」

3
カーネルmmap操作のメモリサイズ
Linuxがメインメモリにファイルをmmapsする方法(私のコンテキストでは実行するためですが、mmapプロセスは書き込みと読み取りでも同じだと思います)とそれが使用するサイズに興味があります。 したがって、Linuxが通常4kBのページサイズでページングを使用していることを知っています(カーネル内でこのサイズを見つけることができますか?)。しかし、これは割り当てられたメモリに対して正確に何を意味するのでしょう。数千バイトのサイズのバイナリがあると仮定し、5812Bとだけ言って実行します。カーネルで何が起こるか:2 * 4kBを割り当ててから、5812Bをこのスペースにコピーし、2ページ目で3KBを超えるメインメモリを浪費していますか? ページサイズが定義されているカーネルソース内のファイルをだれかが知っているとすばらしいでしょう。 私の2番目の質問も非常に単純だと思います。ファイルサイズとして5812Bを想定しました。このサイズは単にiノードから取得されるのは正しいのでしょうか。
9 kernel  memory  inode  mmap 

1
MMAPについて
ここでMMAPに関するドキュメントを調べていて、これを使用して実装しようとしました その実装について、いくつか疑問があります。 MMAPはファイルのマッピングを提供し、物理メモリ内のその場所のポインターを返しますか、それともマッピングテーブルのアドレスを返しますか?そして、そのファイルにもスペースを割り当ててロックしますか? ファイルがメモリ内のその場所に保存されたら、munmapが呼び出されるまでファイルはそのまま残りますか? ファイルはメモリに移動されますか、それともリダイレクトとして機能する単なるマッピングテーブルであり、ファイルは実際には仮想メモリ(ディスク)にありますか? メモリに移動されたと仮定すると、他のプロセスがアドレスを持っている場合、そのスペースにアクセスしてデータを読み取ることができますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.