2012-03-04 10 views
0

他のプロセスを切り替えるためにプロセスを何回か停止しなければならず、メモリアクセスのような操作も監視する必要があります。それでは、OSは1つずつ命令をチェックして実行しますか?OSはアセンブリコードと対話しますか?

ps。私はちょうどアセンブリ言語とコンピュータアーキテクチャを学び始めました。

答えて

1

多くのハードウェアは時々刻々の割り込みを提供します。発生した割り込みは、その割り込みが発生したときに実行されるプロシージャを含むメモリ位置に対応し、この場合、プロシージャは、コンテキスト切り替えおよびプロセススケジューリングとして知られているものを実行する。プログラムカウンタや各種レジスタの内容などのハードウェア情報の大部分は、各プロセスの情報構造に格納されます。プログラムが再び実行を開始する前に、(プログラムが使用していた)マシンのレジスタの内容が復元されます。オペレーティングシステムの設計についての本を取り上げると、これがどのように達成されたかについてもっと詳しく説明します。

+0

ありがとうございました!だから、CPUは思ったよりもはるかに多くの能力を持っています。 – bgeyts668

0

いいえ、OSは非常に複雑で高価(遅い)なので、OSで命令をチェックしません。 CPUはメモリアクセスのチェックを行い、エラーが発生した場合は、指定されたコードをOSで実行します。たとえば、現在のプロセスが終了し、エラーメッセージが表示されます。

2

OSはコードを実行しませんが、プロセッサは行いません。プロテクトモードもプロセッサによって実装され、OSはそれを設定します。違反によって引き起こされたトラップはOSコードによって処理され、最終的にプロセスが合理的な方法で処理できない場合には終了させます。コンテキストスイッチは、クロックティックからのハードウェア割り込みによって開始されます。または、ブロックされた入出力システムコール。

関連する問題