4級データベースエンジニアが本当の問題と間違った問題を磨く(1)オペレーティングシステムの選択の原則

1. オペレーティング システムの「正確さ」、「柔軟性」、「メンテナンスのしやすさ」、「拡張性」を向上させるために、最新のオペレーティング システムの構造を設計する際には、たとえシングル プロセッサ環境であっても、そのほとんどがクライアント/サーバー モード (つまり C/S モード) のマイクロカーネル構造は、オペレーティング システムをマイクロカーネルと複数のサーバーの 2 つの部分に分割します。OSを設計する場合、OSの構築方法はOSの構造から始める必要がありますが、OSのアーキテクチャにはモノリシック構造、階層構造、マイクロカーネル構造の3種類しかありません。

2.バッチ処理とは、ジョブのプロパティに従ってジョブをグループ化し、グループごとにコンピューター システムに送信することで、コンピューターが自動的に完了して結果を出力するため、ジョブの作成と終了のプロセスで無駄な時間が削減されます。欠点は、非対話型であり、ユーザーがジョブを送信するとその操作を制御できなくなり、バッチ処理されるため、ジョブの所要時間が長く、ユーザーが使用するのが不便であることです。

3. プロセッサのストレージ保護には主に 2 つの許可状態があり、1 つは特権状態とも呼ばれるコア状態 (管理状態)、もう 1 つはユーザー状態 (アイ状態) です。コア モードは、オペレーティング システム カーネルが実行されるモードであり、このモードで実行されるコードは、制限なくシステム ストレージおよび外部デバイスにアクセスできます。割り込みのマスキングはカーネル モードでのみ実行できます。それ以外の場合は問題が発生します。(マスク割り込みは特権命令であり、システム カーネル モードでのみ実行できます。)

4. システムが発生するすべての割り込みに適時に応答して処理できるようにするために、システムは、割り込み優先度と呼ばれる割り込みイベントの重要性と緊急性に応じて、ハードウェアによって割り込みソースをいくつかのレベルに分割します割り込み信号を失わずに発生する緊急割り込みにシステムがタイムリーに応答して処理できるようにするために、コンピュータ開発の初期段階では、割り込みシステムのハードウェアを設計する際に、次のようにライン上で手配が行われていました。さまざまな割り込みの重大度を考慮して、割り込みへの応答を効果的に行うことができます。

5. オペレーティングシステムの主な機能は、ハードウェアリソースを管理し、アプリケーション開発者がアプリケーションの互換性を高めるための良好な環境を提供することであり、この目的を達成するために、カーネルは、所定の機能を備えた一連のマルチカーネル機能を提供します。システムコールと呼ばれる一連のインターフェイスを通じてユーザーに送信されます。システムコールは、アプリケーションプログラムの要求をカーネルに渡し、対応するカーネル関数を呼び出して必要な処理を完了させ、処理結果をアプリケーションプログラムに返す。

6. アプリケーション プログラミングのためにオペレーティング システムがユーザーに提供する唯一のインターフェイスは、システム コールです。

7.プロセス制御ブロック (PCB) は、プロセスを管理するためにシステムによって設定される特別なデータ構造であり、プロセスの外部特性を記録し、プロセスの移動および変更プロセスを記述するために使用されます。システムは PCB を使用してプロセスを制御および管理するため、PCB はシステムがプロセスの存在を認識する唯一の兆候です。プロセスと PCB の間には 1 対 1 の対応関係があります

8. 実行中のプロセスには、次の 3 つの基本状態があります。1)レディ状態(Ready):プロセスはプロセッサ以外の必要なリソースを獲得し、プロセッサリソースの割り当てを待っており、プロセッサが割り当てられている限りプロセスは実行可能である。

2) 実行状態 (Running): プロセスはプロセッサ リソースを占有しています。この状態のプロセスの数はプロセッサの数以下です。

3) ブロック状態 (Blocked): プロセスは特定の条件 (I/O 操作やプロセスの同期など) を待っているため、条件が満たされるまで実行を続けることができません。

9. コンピュータープログラミングにおける fork () 関数。戻り値: 1 回の呼び出しに成功すると 2 つの値が返され、子プロセスは 0 を返し、親プロセスは子プロセスのマークを返しますが、それ以外の場合はエラーで -1 が返されます。プログラムが正しく実行され、子プロセスが正常に作成されたと仮定すると、子プロセスの pid は戻り値 0 を受け取り、親プロセスの pid は子プロセス番号の戻り値を受け取ります。出力し、子プロセスが出力を実行します。

10. pthread_join() 関数は、スレッドで指定されたスレッドの終了をブロック方式で待ちます。関数が戻ると、待機中のスレッドのリソースが再利用されます。プロセスが終了した場合、関数はすぐに戻ります。また、読み取りで指定されたスレッドは参加可能である必要があります。

11. プロセスのスケジューリングの原因:

(1) 実行中の処理が完了します。

(2) 実行中、プロセスはブロッキング プリミティブを呼び出して自身をブロックし、スリープ状態やその他の状態に入ります。

(3) プロセスはブロッキング プリミティブ オペレーションを呼び出してリソース不足によりブロックされるか、ウェイクアップ プリミティブ オペレーションを呼び出してリソースを待っているプロセスを起動します。

(4) タイムシェアリングシステムでタイムスライスを使い果たした。

(5) レディペア欄のプロセスの優先度は、現在実行中のプロセスの優先度よりも高くなります。

プロセスのスケジューリングの主な理由は、解放する CPU リソースがあるかどうか、解放する CPU リソースがある場合は必ずしもスケジューリングが発生するわけではありませんが、解放する CPU リソースが存在しない場合は、プロセスのスケジューリングは絶対に発生しません。 。

12. ミューテックスの初期値は 1 であるため、クリティカル エリアに同時に入ることができるプロセスは 1 つだけであり、ミューテックスの待機キューには k 個のプロセスがあるため、現在 k + 1 個のプロセスが存在します
。クリティカルエリアにアクセスする必要があるプロセスと各プロセス ミューテックスにアクセスすると、ミューテックスの値が1減りますので、このときのミューテックスの値は-kとなります。

13.仮想ページングストレージ管理: プロセスが実行を開始する前に、すべてのページをロードするのではなく、1 つまたは 0 ページをロードし、メモリ空間がいっぱいになったとき、プロセスのニーズに応じて他のページを動的にロードします。新しいページをロードする必要がある場合、新しいページをロードできるように、特定のページが特定のアルゴリズムに従って置き換えられます。仮想ページングとは、メモリ容量を動的に拡張することです。仮想ページングストレージ技術の基本的な考え方は、大容量の外部ストレージを使用してメモリを拡張することです。スワップテクノロジーを使用してメモリ容量を動的に拡張します。

14. いわゆるBelady 現象とは、ページング仮想メモリ管理において、ページ フォールト発生時の置換アルゴリズムが FIFO (先入れ先出し) アルゴリズムを使用し、プロセスがすべてのページを割り当てられない場合を指します。割り当てられるページ数が増加するが、その代わりにページフォールト率が増加するという異常現象が発生します。

15. リクエストページングストレージ管理では、置換したばかりのページがすぐに再度アクセスされる場合があります。別のページを置き換える空きメモリがないため、このページを転送する必要があります。また、後者がアクセスされるページであるため、システムはこの頻繁なページ交換に多大な時間を費やす必要があり、実際の効率が低下します。システムの信号が非常に低く、重大なシステム麻痺を引き起こします。この現象はジッター現象と呼ばれます。つまり、不当なページ置換アルゴリズムはシステム ジッターの原因となります

16.ファイルへのアクセス方法は、ファイルの物理構造とファイルを保存するデバイスの物理特性によって異なります。ファイル アクセス方法は、ファイルを保存するデバイスの物理的特性に依存し、記憶媒体の物理的特性によってファイルの物理的記憶構造も決定されるため、ファイル アクセス方法は物理構造と記憶媒体によって決まります。ストレージ メディアがテープの場合、ファイルの物理構造は連続ストレージ構造のみであるため、シーケンシャル アクセス方式のみが可能です。

17. ディレクトリ管理により、名前によるアクセスが実現します。つまり、ユーザーは、アクセスするファイルの名前をシステムに提供するだけで、外部ストレージ内の検索対象のファイルの保存場所をすばやく見つけることができます。ディレクトリの検索速度の向上、ファイルの共有の実現、ファイル名の変更が可能です。

18. ファイル記述子は、負でない整数の形式です。実際、これは、プロセスごとにカーネルによって維持されるプロセスのオープン ファイルのレコード テーブルを指すインデックス値です。プログラムが既存のファイルを開くか、新しいファイルを作成すると、カーネルはファイル記述子をプロセスに返します。プログラミングでは、一部の低レベル プログラミングはファイル記述子を中心に展開することがよくあります。ただし、ファイル記述子の概念は、多くの場合、UNIX や Linux などのオペレーティング システムにのみ適用されます。

19. ディスク装置は動作中、一定の速度で回転します。読み書きするには、ヘッドが必要なトラックに移動し、必要なセクタの開始位置がヘッドの下で回転するのを待つ必要があります。したがって、ディスクへのアクセス時間は、シーク時間 Ts 、回転遅延時間 Tr 、送信時間 Ttの 3 つの部分に分割されます。そのうち、ディスクの読み取りおよび書き込みのパフォーマンスに最も影響を与える可能性があるのはシーク時間 Ts です

20. デバイスの独立性を実現するために、システムは、アプリケーション プログラムで使用される論理デバイス名を物理デバイス名にマッピングするために使用される論理デバイス テーブルを設定する必要があります。このテーブルの各エントリには、論理デバイス名、物理デバイス名、デバイス ドライバ エントリ アドレスの 3 つの項目があります。システムデバイステーブル SDT。システムに接続されている各デバイスがエントリを持ちます。デバイスの名称が登録され、デバイス管理テーブルDCTのエントリアドレスなどの関連情報が特定される。システム内の周辺リソースの状況と、論理デバイスと物理デバイスの対応関係を完全に反映します。

21. バッファ技術は、スループット速度が大きく異なるデバイス間のデータ送信作業を調整することです。オペレーティング システムでバッファリングが導入される主な理由は、次の点に起因すると考えられます。

1. CPU と I/O デバイス間の速度の不一致を改善します。

2. CPU の割り込み頻度を減らし、割り込み応答時間の制限を緩和できます。

3. CPU と I/O デバイス間の並列性を向上させるために、バッファリングを導入すると、CPU とデバイスの並列動作の度合いが大幅に向上し、システムのスループットとデバイスの使用率が向上します。

22. セット内の各プロセスが、セット内の他のプロセスによってのみ引き起こされる可能性のあるイベントを待機している場合、プロセスのセットはデッドロックになります。デッドロックの原因は次のとおりです。 1. リソースの競合によりプロセスのデッドロックが発生する; 2. プロセスの進行順序が不適切であるとデッドロックが発生します。

23. 安全な状態とは、システム内のすべてのプロセスで構成される安全なシーケンス (P1...Pn }) が存在する場合、システムは安全な状態にあり、安全なシーケンスがない場合、システムは安全でない状態にあることを意味します。システムが安全な状態であればデッドロックは発生せず、安全でない状態であれば必ずデッドロックが発生しますが、安全でない状態が必ずしもデッドロック状態であるとは限りません。

e880cf8adf074716b66ff574d9f58862.jpg

 

 

おすすめ

転載: blog.csdn.net/qq_52045638/article/details/129753098