0

メインメモリとセカンダリメモリを追跡するためにメモリテーブルが使用されることを知っています。また、OS は、二次メモリからコンテンツを取得するために、各プロセスに関する何らかの情報を維持する必要がありますが、上記に関していくつか質問があります。

1) メインメモリは限られており、CPU はメインメモリにしか直接アクセスできず、多数のプロセスが存在する可能性があるため、各プロセス情報がメインメモリの CPU によってどのように維持される可能性がありますか。(各プロセスのプロセス イメージのごく一部のみがメモリに保持されますが、それでも非常に多くのプロセスが存在する可能性があります)

2) また、セカンダリ メモリは TB である可能性があるため、TB を表すには 32 ビット以上が確実に必要になるため、アドレスはどのようにアクセスされますか。例えば。プロセスの一部のデータは、900 GB から始まる場所にあります。そのプロセスの PCB は、CPU が 900 GB の場所にあることをどのように伝えるのでしょうか。つまり、それを正しく伝えるには 32 ビット以上かかる必要があり、システムが 32 ビットであり、システムが 64 の場合はどのように異なるでしょうか。少し。

3) また、セカンダリ メモリは TB 単位です。CPU がセカンダリ メモリの任意の部分にアクセスする方法が必要です。それはどのように行われますか?

4) メインメモリにプロセスに関する情報がない場合も考えられます。その場合、そのデータの内容の取得はどのように実行されるでしょうか。これは事実ではないかもしれませんが、この観点から私が考えざるを得ないのは、メインメモリは非常に多く、非常に多くのプロセスが存在する可能性があるということです。したがって、質問です。

私はインターネットでたくさん検索してみましたが、答えを見つけることができず、何かを見つけるとさらに混乱します. 誰でもこれらの疑問を明確にしてください。

編集:任意のCPUまたは任意のOSを使用してください。一般化された画像が必要です。詳細はシステムによって異なる場合がありますが、ある程度の共通点があると思います。

4

1 に答える 1

1

テラバイト?問題ない。

短い整数から長い整数をいつでも構築できます。ファイル システムでは、CPU のポインターのサイズよりもビット単位で長いインデックス、サイズ、およびカウントが頻繁に使用されます。これが、CPU のアドレス空間のサイズよりも多くのストレージを持ち、アドレス指定できる方法です。

また、ディスクからすべてを RAM にロードする必要はありません。CPU のアドレス空間に収まるように、必要な分だけロードできます。

ファイル システムを使用すると、一度に 1 つ以上のファイルとディレクトリを構成するデータ ブロックを読み取ることができます。これらのブロックのサイズは通常、テラバイトはおろか、メガバイトやギガバイトではなく、キロバイトのオーダーです。

したがって、より長いインデックス/サイズ/カウント + 小さなブロック。RAM にロードできるよりも多くのディスク上のデータにアクセスするために必要なのは、これだけです。

于 2013-03-29T13:52:41.350 に答える