Closed2

「はじめて読む486」を読んで

nasanasa

どうせなのでメモを残しながら読むことにする。

nasanasa

3章 オペレーティングシステム

OSの持つ主要な基本機能。

  • プロセス管理
  • メモリ管理
  • ファイルシステム
  • 入出力管理

マルチタスクの実現方法

OSでは複数のプログラムを並行で実行している。このときの切替方法についてまとめる。

あるタスクの実行コンテキストはレジスタにある状態なのでこれをメモリに対比しておくことでタスクの中断を行う。再開したくなったときはメモリから実行コンテキストを取得し、レジスタに保持し直しタスクを実行する。と言う方法をとっている。

486だと特殊命令で実行コンテキストのload, storeが行えるみたい。このような命令がなくてもレジスタ操作を愚直にかけば実現できる。

プリエンプティブマルチタスクとは?

従来のマルチタスクでは入出力の待ちが発生した時にタスクスイッチを行なっていた。これだと1つのプログラムがCPUを専有してしまう可能性がある。また、常時動いていることが期待されるプログラムが正常に動かなくなってしまう。ex:ネットワーク通信を常時受信するようなプログラムは一定期間動かないだけでも幾つかのパケットを失ってしまう。

そのため、入出力のみをトリガーとしてスイッチングするのではなく一定のタイミングで他のタスクにスイッチするアプローチが主流となっている。これをプリエンプティブマルチタスクと呼んでいる。

ref

メモリ管理

メモリ管理の主要機能。

  • メモリ割り当て
  • メモリ保護
  • 仮想記憶

MS-DOSではメモリ保護、仮想記憶は行なっていなかった。これらの機能はMMUの手助けが必要だが古いCPUにはMMUが組み込まれていないものが多く実現できていなかった。486ではMMUがあるので出来るようになった。

このスクラップは2022/03/31にクローズされました