virtual-memory

    5

    2答えて

    メモリマップされたI/Oデバイスがあり、アドレス0x16D34にあるこのデバイスのレジスタに書き込む場合、0x16D34アドレスは実際には仮想アドレスであり、CPUは物理アドレスに変換します、物理アドレスにデータを書き込んでください。 しかし、ポートマッピングされたI/Oデバイス(たとえば、シリアルポート)はどうでしょうか。したがって、アドレス0x3F8にあるシリアルポートのレジスタに書き込む場合

    2

    2答えて

    私は、2.6.35.3カーネルの組み込みLinuxシステムで作業しています。 デバイス内では、データキャプチャドライバの1つに4MB + 192kBの連続DMA対応バッファが必要です。ドライバはSPI転送を使用してこのバッファにデータをコピーします。 ユーザー空間アプリケーションは、バッファをユーザー空間にマップするためのmmapシステムコールを発行し、その後、利用可能なデータを直接読み取ります。

    0

    1答えて

    私はちょうどオペレーティングシステムのコースを取っています。 Linuxでは、仮想アドレス空間は のように私の質問は0x08048000には0x0から保存されているものですか?私は、ユーザーのスタックとヒープのランダムなオフセットがあることを知っていますが、.textセグメントの定数オフセットを設定する意味はありますか?

    0

    1答えて

    私はちょうどその仮想アドレスが1ページ番号と2オフセットに分割されていることを読んでいます。 私はまた、ページ番号は右のページを見つけることができるようにあなたを導き、あなたがの物理メモリを取得したい右の「バイト」を取得するためにオフセットをお読みください。 だから4KBサイズのページでは、たとえば、我々は4KBある2^12 = 4096、以来、オフセットのために予約12bitsを持っています。

    0

    1答えて

    mmap()はaddrとlenバイトから始まる呼び出し元プロセスの仮想アドレス空間内の新しいマッピングを作成し、munmap()は、プロセス開始のアドレス空間の任意の部分を含むもの全体のページのすべてのマッピングを削除しますaddrで続き、lenバイトです。 変更されたmmapファイルがメモリを解放する前にmunmapによってディスクに書き込まれているかどうか、または変更を同期させるために別の関数

    1

    1答えて

    私は、メモリのページ構造について読み、いくつかのポイントを取得することはできません。 ページテーブルを:私は(インテルi5のような)プロセスを理解できるようにページを持っていますテーブルとその結晶に統合されたTLB、それはありませんか?しかし、このテーブルには仮想ページのアドレスが含まれていないので、OSは動作可能なメモリ内にまだ1つのページテーブルを持っていなければなりません。そう? 反転テーブ

    0

    2答えて

    仮想メモリを扱うときに、しばしばTLBを使用します(ソフトウェア管理TLBについて質問しています)。仮想アドレスをページテーブルに差し込んで物理アドレスを取得するのではなく、間にTLBを使用して最近使用したページを格納することができます。 仮想アドレスを取得してTLBにアドレスが含まれているかどうかを調べると、仮想アドレスがマップする物理アドレスが返されますが、ヒットしなければページテーブルに移動

    0

    1答えて

    を解決:私たちは64キロバイトの仮想アドレススペース、32キロバイトの物理アドレススペースを持つ picture を、ページとフレームサイズが4キロバイトです。 論理アドレス20,4010,8300を物理アドレスに変換したいとします。 どのようにして物理アドレスを見つけることができますか? 私はこれを見てみました:Convert logical (virtual) address to physi

    0

    2答えて

    私はそれが実行されているシステム上でページサイズを必要とするコードを書いています。 sysconfはそのトリックを行いますが、それがサポートされている場合に限ります。 質問:動的にページサイズを問い合わせることができないシステムで自分自身が見つかった場合、すべてのx86プロセッサで保持されるページサイズの保証下限はありますか?