オペレーティングシステム共通のインタビューの質問

3年前、ほとんどが忘れてしまった何かを、準備するための一時的な再検討を学ぶために、実装の基礎となるで見ていない(最後のロールまたは正直な回路基板を参照)のロジックを見て

1.プロセス(工程)と、スレッド(スレッド)

プロセスは、システムの基本的な単位資源と独立スケジューリングを有する、複数のスレッドを含むことができるプロセスです。

プロセスは、独自のメモリ空間を持って、スレッドがメモリを共有することができます。あなたはIPC(プロセス間通信)に必要なプロセス間通信。

さらに、同じプロセス内のスレッドがオーバーヘッドを切り替える切替処理よりもはるかに小さいです。

2.カーネルモード(カーネルモードナット状態)とユーザモード(ユーザモード)

オペレーティング・システム・プログラムと別のマシンに対応したCPU命令セットで実行されているユーザプログラム。オペレーティングシステムは、すべての命令を使用しますが、ユーザーはプログラム命令の一部を使用することができます。

:ビューのリソース管理と制御プログラムの実行ポイントの観点からは、コマンドシステムは、2つの部分に分割され、特権命令と非特権命令:プログラムの実行、リソースの使用権およびマシン命令に従い、プログラムの実行時には、マシンは二つの状態に設定されているカーネル・モードとユーザーモード
これは、システムがカーネルモードのとき、命令はすべてのリソースを使用することができますし、CPUの状態を変更する能力を有すること、であり、CPUは、ユーザ・モードのときに、唯一の非特権命令。
CPUは、ユーザープログラム(ユーザーモード)が中断されたが実行した場合、自分の割り込みハンドラに行くシステムは、カーネルモードへのCPUのユーザーモードで変換され、割り込み処理の終了は、リターンは、ユーザプログラムの実行と、CPUやコアを継続しますユーザーモードへの態度。

したがって、ユーザーモードとカーネルモードそれがあるとの違いは何ですか?(次のような違いは、「UNIXオペレーティングシステムの設計」を選びます)

  1. このプロセスは、独自のユーザーモード命令とデータにアクセスすることができますが、カーネル命令およびデータ(または他のプロセス命令およびデータ)にアクセスすることはできません。しかし、このプロセスはカーネルモードのカーネルとユーザーのアドレスにアクセスすることができます
  2. いくつかのマシン命令は特権命令で、ユーザモードで特権命令を実行するとエラーになります

ここでは別の概念を引き出す:ユーザレベルスレッドとカーネルレベルのスレッドを

、プロセスがCPUコアに行くたびに(しかし、マルチコアCPU(だけでなく、セキュリティカーネルにこの新しいものへのスレッドのカーネル・プロセス)は、カーネルレベルのスレッドをサポートしていない従来のオペレーティングシステムではユーザレベルスレッドがあるので、まだ、)複数のプロセスを処理することができます透明カーネル、およびラウンドロビンスケジューリングプロセスのようなものを行うことはできません(プロセスを停止するためにあなたを指示するための時間は、スレッドが停止していた)、その後、管理スレッドユーザーモードを行うには、すべて、および効率がジャケットを最適化することができ、

今日のマルチコアCPU /マルチコアCPU支持ケースレベルのスレッド(これは実際にスレッドがカーネルに閲覧することを意味する、カーネルはスレッド管理を引き継ぐことができる)には、より多くの並列に実行中のカーネルレベルのスレッドよりもできます。これは、再び双方にとって損失のプロセス内のスレッドの場合は発生しません。不利な点は次のとおりです。カーネルスレッドのスケジューリングを聞かせて、その後、スイッチスレッドに切り替え、よりコストがかかるがあるだろう、カーネルモードに経験豊富なユーザーモードを持っています

しかし、今日のオペレーティング・システムでは、n個の共通の操作がユーザモードのスレッドにマッピングされている---- ---->カーネルモードのスレッドは妥協とみなさ

 

3.割り込み

内部①中止

コンピュータのハードウェアの故障や破壊は異常によって引き起こされます

②ソフト(個)割り込み(割り込み命令)

このようなシステムとして中断によって引き起こされる中断の原因となった命令のプログラムの実行は、カーネルモードへのユーザモードを呼び出すパイプコマンドに訪問を使用することです

③外部割り込み(強制中断)

ペリフェラル割り込み要求

4.複数の同時プロセスのスケジューリング戦略---

おすすめ

転載: www.cnblogs.com/yasheng/p/12617192.html