システムコールはどのように機能しますか [重複] 質問する

システムコールはどのように機能しますか [重複] 質問する

どうやってシステムコール動作しますか?
システムコール中に行われる操作は何ですか?など、
さまざまなシステムコールがありますopen , read, write, socket。一般的にどのように動作するのか知りたいです。

ベストアンサー1

簡単に言うと、システムコールは次のように機能します。

  • まず、ユーザー アプリケーション プログラムはシステム コールの引数を設定します。
  • 引数がすべて設定された後、プログラムは「システム コール」命令を実行します。
  • この命令により、例外:プロセッサを新しいアドレスにジャンプさせ、そこでコードの実行を開始させるイベント

  • 新しいアドレスの命令は、ユーザー プログラムの状態を保存し、必要なシステム コールを判断し、そのシステム コールを実装するカーネル内の関数を呼び出し、ユーザー プログラムの状態を復元し、制御をユーザー プログラムに戻します。

システム コールを呼び出すユーザー アプリケーションの視覚的な説明open():

ここに画像の説明を入力してください

システム コール インターフェイス (オペレーティング システムによって使用可能になるシステム コールへのリンクとして機能します) は、OS カーネルで目的のシステム コールを呼び出し、システム コールのステータスと戻り値を返すことに注意してください。呼び出し側は、システムコールがどのように実装されているか、実行中に何が行われるかについて何も知る必要はありません。別の例:
Cプログラムがprintf()ライブラリ呼び出しを呼び出し、それがwrite()システムコールを呼び出す

ここに画像の説明を入力してください

より詳しい説明については、CH-1のセクション1.5.1とCH-2のセクション2.3を参照してください。オペレーティング システムの概念

おすすめ記事