3

オペレーティング システムに関して、このステートメントは何を意味しますか?

2^32 アドレス空間と 4K ( 2^12 ) ページ サイズの場合、ページ テーブルには 2^20 エントリが残ります。エントリごとに 4 バイトの場合、これは 4 MB のページ テーブルに相当し、大きすぎて連続したメモリに適切に保持できません。(そして、各プロセス スイッチでメモリのスワップ インとスワップ アウトを行います。) 4K ページでは、ページ テーブルを保持するだけで 1024 ページかかることに注意してください。

最後に1024ページをどのように計算しているか説明してください。この点で、エントリあたり 4 バイトとは何ですか? 4K ページ サイズの意味は何ですか? 4K は 4*1024 バイトを意味しますか? 彼らは 4 バイト (1 ワードあたり) を考慮していますか、それとも 4 バイトとは 4*1024 ワードがあり、各ワードに 4 バイトなどのサイズがあることを意味しますか?

4

2 に答える 2

6

最後に1024ページを計算する方法を教えてください。

2 の累乗を扱っていることを思い出してください。

4 MB = 4,194,304 バイト

4KB = 4096 バイト

4 MB / 4 KB= 4,194,304 Bytes / 4096 Bytes= 1024バイト

この点で、エントリあたり 4 バイトとは何ですか?

すべての2^32アドレス空間を参照するには 32 ビットが必要です。1 バイトあたり 8 ビット32 bits= 4バイト。

たとえば、最初のアドレスは 0 で、最後のアドレスは 4294967295 または (2^32 - 1) です。

Entry |   Page Memory Location
------------------------------------------
    1 |          0
    2 |       4096
    3 |       8192
  ... |        ...
 2^20 | 4294963200 ->  (2^32 - 1) - 4096

テーブル内の各エントリは、メモリ内のどこかにある 1 ページを指しています。この例では、ゼロから始まるとしましょう。2^20 のエントリがあり、メモリ アドレスのスパン全体 (2^32) をカバーします。各エントリは 4096 バイトなので、すべてのページをカバーするには 2^20 エントリしか必要ありません。

4K は 4*1024 バイトを意味しますか?

はい、各ページが 4096 バイト (4*1024) であることを意味します。

彼らは4バイト(1ワードあたり)を考慮していますか、または4バイトは、各ワードが4バイトと言うサイズの4 * 1024ワードを持っていることを意味しますか?

32 ビット プロセッサでは小さくなりますが、通常、1 ワードは 32 ビットまたは 4 バイトです。

追加コメント

ページ サイズが 4K であると言う場合、それは、それぞれ 4 バイトの 1024 エントリ、またはそれぞれ 1 バイトの 1024*4 エントリ、または他に何かあることを意味します。

ページは何でも保持できます。これは、この例では 4096 バイトのデータのコンテナーです。ページ テーブルには、ページを指すエントリが保持されます。Davidが述べたように、ページテーブルはメモリに保存されるため、ページにも保存されます。

説明が間違っていると誰かが言っていました。正しいものは次のとおりです。2^32 アドレス空間と 4K (2^12) ページ サイズの場合、テーブルには 2^20 ページが残ります。エントリあたり 4 バイトの場合、これは4 GBのページ テーブルに相当し、大きすぎて連続したメモリに適切に保持できません。(そして、各プロセス スイッチでメモリのスワップ インとスワップ アウトを行います。) 4K ページ サイズでは、合計テーブルを保持するだけで 1024 k ページ (=1M ページ) かかることに注意してください。彼は正しいですか、それとも間違っていますか?

彼は間違っています。ページテーブルに実際に各ページのデータが含まれていれば、彼は正しいでしょう。4096 バイトのページと 2^20 のエントリを使用すると、4,294,967,296 バイト (4 GB) になりますが、エントリのサイズはわずか 4 バイトです。これを 2^20 エントリで乗算すると、4,194,304 バイト (4 MB) になります。

于 2014-12-30T17:37:30.867 に答える
2

ドキュメントでは、次の値を想定しています。

2^32 = number of bytes in address space
2^12 = 4K = 4*1024 = number of bytes in one page
2^20 = 1M = 1024*1024 = number of pages
4 = number of bytes in the page table to describe one page
4M = 4*1024*1024 = total number of bytes in the page table
1024 = (4*1024*1024)/(4*1024) = number of pages in the page table

したがって、4 バイトは 4 バイトです ( ページ自体のサイズではなく、1 ページのページ テーブル内のエントリのサイズです!)。はい、4K は 4 *1024 ワードではなく、4*1024 バイトを意味します。

OS とアプリケーションが使用するすべてのメモリは、システムのどこかにあるページに保存されます。ページテーブルはメモリに格納する必要があるため、ページにも格納されます。

于 2014-12-30T17:36:23.477 に答える