パスワードを忘れた? アカウント作成

「メモリの使用量を減らす」というソフトウェアに効果はあるのか」記事へのコメント

  • by Anonymous Coward

    空きメモリのサイズを見て安心するのって、DOSの頃の感覚だよね。

    今どきはメモリ圧縮もやってるし(Win10-1511以降だっけ?)、
    使用頻度の低い領域の占有サイズなんてたかが知れてるだろうに。

    ページアウトもされておらず、圧縮もされてないなら、これで強制的に
    メモリ空けてもすぐ読み込まれて一時的な効果しかないんじゃないの?

    • EMSとかXMSとかUMAか、懐かしいよねぇ。コンベンショナルメモリを1KB空けるためにメモリマネージャーの読み込み順を色々試したりして。もう書き方忘れちゃったけどさ。

      OS/2のMVDMでコンベンショナルメモリが700KBとかなってて「今までの苦労は何だったんだ~ッ!」ってなったのも懐かしい記憶(笑)
      • by Anonymous Coward

        HMAとUMBじゃなかったっけ?
        High Memory AreaとUpper Memory Blockかな。
        セグメントとオフセットの隙間を突いてメモリ確保するようなヤツだったかな。

        PC98でVEM486使って色々やって、MSDCEXとFEP組み込んでも600KB以上(覚えてないや、630KBぐらい?)開けられた時は達成感あった気がした。

        • by Anonymous Coward on 2020年01月09日 13時48分 (#3742828)

          HMAは640kB~1MBの区間でもともと普通にアクセスできる。
          EMSやXMSは拡張メモリで1MB超の領域をHMA領域にマッピングして切り替えて使う。

          • Re:CONFIG.SYS (スコア:3, 参考になる)

            by taka2 (14791) on 2020年01月09日 19時03分 (#3743005) ホームページ 日記

            なんか全然違うよ。

            誤> HMAは640kB~1MBの区間でもともと普通にアクセスできる。
            正> UMAは640kB~1MBの区間でもともと普通にアクセスできる。

            640kB~1MBの区間は「UMA」。
            「HMA」は、1MBを超えた約64kB分のメモリのこと。他のコメントで解説されてるけど、8086のメモリ空間は1MBしかないけど、80286以降の8086互換モード(リアルモード)では裏技的に1MBを64KBほど超えてアクセスできる。

            次に、
            EMSは (MMUによるページングのように)メモリを切り替えることで、1MBのメモリ空間で、1MBを超える量のメモリをアクセスできるようにする方法だけど、その実装方法は問わないので、
            ・ソフトウェア的にスワップイン/スワップアウトするもの(めっちゃ遅い)
            ・ハード的にバンク切り替えするもの
            ・386以降の仮想86モードを使うもの(MMUを使って1MB超の領域から1MBより下にマッピングして切り替える)
            などがある。
            割り当て先はどこでもいい(UMAに限らない)んだけど、コンベンショナルエリアはもったいないからUMAを使うのが普通。

            XMSは、通常の640KBを超えたメモリ空間利用規格の総称で、HMAやUMBも含むんだけど、たいていは、HMAやUMBを除いた、1MB+64Kより後ろの部分を差すことが多い。
            仮想86モードなEMSは、「(HIMEM.SYSなどの)XMSドライバが、1MB超の領域をメモリ管理してる」「(EMM386.SYSなどの)仮想86EMSドライバは、XMSから必要なメモリを取得して、それをMMUでマッピングしてEMSメモリとして提供する」みたいな流れになる。

            なので、
            誤> EMSやXMSは拡張メモリで1MB超の領域をHMA領域にマッピングして切り替えて使う。
            正> 仮想86EMSは、XMSメモリを、UMA領域にマッピングして切り替えて使う。
            となる。
            マッピングの話が出るのは仮想86EMSの場合だけで、一般論的な話にはできない。まあ、それは許しても、
            XMSは割り当て元の「1MB超の領域」の方。で、その割り当て先は「UMA領域」が正しい。

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...