作業の第九週で2019-2020-1 20199328「Linuxカーネルの原理と分析」

ノートセクション

2019年11月12日夜2時45分44秒


  • Linuxオペレーティングシステムの観点から、CPUとメモリ

CPU角:まず、我々は体系的なスケジュールを実施し、システムのカーネル・モード、情報のプッシュを入力し、私たちは入力待ちを引き起こす可能性がシステムコールを入力するため、このパートタイムスケジュール他のプロセスが、この時間を実行するために、プロセス管理内部I / O端子場合は、再スケジュールは、関連するデータを取得し、ユーザのスケジューリングモードに戻りますように、戻ってくるだろう。

メモリ角:プロセスは、3Gの一部以上にマッピングされています。

  • 関連するコード分析プロセスコンテキストスイッチ

まず、含むプロセスコンテキスト:ユーザーのアドレス空間、制御情報、ハードウェアコンテキスト、スケジュール()関数を新たなプロセスを選択するためには実行され、コンテキストを切り替えcontext_switchは、このマクロは、重要なコンテキストを切り替えswitch_to内で定義され、完全なカーネルスタックスイッチ新しく作成された子プロセスがret_from_forkであるため、通常は$ 1Fをnext_ip

  • タイミング解析プロセスのスケジューリングおよびプロセスのスケジューリング

Linuxのプロセスにプライオリティキューイングによれば、スケジューラは直接スケジュール、ユーザ・モード・プロセス受動コールを呼び出すことができ、自動または手動で構成された処理を中断することによって達成プロセススケジューリングsheduleを調整する、直接呼び出され、またはカーネルモードことができます割り込みスケジューリングの発生

  • Linuxシステムは、一般的にいくつかの特別なケースとしてだけでなく、プロセス分析を行います

実験セクション

2019年11月12日夜07時54分35秒


  • gdbのトラックスケジュール
  1. ブレークポイントの設定と実行がスケジュールで停止しました

  1. 関連するコードをチェックしてください

  1. pick_next_taskで停止し、続行

  1. コードの表示

  1. context_switchで停止し、続行

  1. コードの表示

おすすめ

転載: www.cnblogs.com/llj76720197/p/11845063.html