プロセスとスレッド(1)


1.Whatはフォークとexecとの間の差である 、あなたの意見は?。証明するためのプログラムを使用してください
回答:フォークは、新しいプロセス(新をコピーする処理であるとして)、異なるプロセスの同じ数だけ新しいプロセスや古いプロセスを作成することです。しかし、execのパラメータではなく、それが現在のプロセスのプログラムの適用範囲を指定する新しいプログラム・コードとデータセグメントの実装である、現在のプロセス、プログラムの内容を指定します。
する#include <unistd.h>
する#include <stdio.hの>
INT)(主
{
  pid_t PID;
  PID =フォーク();
  IF(PID == 0)
  {
   ながら(1)
   {
     SLEEP(1);
     のprintf(「123 \ N- ");
   }
  }
  (PID> 0)IF
  {
   ながら(1)。
   {
     SLEEP(1);
     のprintf(" N-456 \ ");
   }
 }
}
の#include <unistd.h>
する#include <stdio.hの>
メインINT()
{
  PIDのpid_tは、
  ; PIDフォーク()=
  EXECL( "/ホーム/ユーザー/ a.outの"、0);
  IF(PID == 0)
  {
    (1)一方、
    {
    (1)SLEEP;
    のprintf( "\ N-がhello123します" );
    }
  }
  (PID> 0)IF
  {
    。しばらく(1)
    {
      。SLEEP(1)
      のprintf( "hello456 \ N-");
    }
  }
}
?条件条件のウィルトラップユーザプログラムザ・カーネルに2.In
A:①システムコール:これはカーネルモードの方法に切り替えることを申し出たユーザプロセスで、作業プログラムを完了するために、ユーザ・プロセスは、オペレーティングシステムが提供するサービス、アプリケーションシステム、およびそのコアシステムコールの機構やオペレーティング・システム・ユーザーのための特別な開口部を使用して呼び出します割り込みは、このようなLinuxのINE 80割り込みとして、実装されています。
②例外:CPUがプログラム実行時にユーザモードで実行され、特定のイベント未知の異常を発見し、その後、カーネルモードに、現在のプロセスによって実行される異常なバッチカーネル関連番組をトリガするために切り替わり、など不足しているページ例外。
③周辺機器割り込み:ユーザーが操作を完了するために周辺機器を要求した場合、CPUの割り込みに対応する信号を発行し、次の命令を実行するCPUが割り込み信号をサスペンドオンにする処理を行い、この時に実行される、最初の実行であればユーザモードでプログラム命令は、変換プロセスの切り替えは、ユーザモードに自然にカーネルモードを生じます。ハードディスクの書き込み操作が完了するなどの割り込みハンドラは、後続の操作などでリーダーをドライブに、システムが切り替わります。
    ビューの出発点から、それは3つの異なるタイプが存在するが、ユーザーモードから最終的なスイッチングの実際の完了、動作のモードカーネルと考えることができる、関与する重要なステップは全く同じであり、違いはありません、実装に相当しますシステムは、実際の割込み機構が実装されている終了呼び出すためのプロセスの割り込み応答は、機構を割り込み例外処理しながら、本質的に同じです。

?3.Whatはシェルである
A:シェルと呼ばれるUNIXコマンドインタプリタ。シェルは、システムのユーザーインターフェイス、カーネルと対話するためのユーザインタフェースです。これは、ユーザーがコマンド入力を受け取り、実行するためにカーネルにそれを置きます。
シェルは、ユーザが実際にコマンド入力を解釈し、コアに送るコマンドインタプリタです。また、シェルは、ユーザーが構成コマンドシェルをプログラムすることを可能にするコマンドを編集するために使用される独自のプログラミング言語を、有しています。それはまた、他のアプリケーションと同様の効果を有するこのプログラミング言語シェルプログラムで制御ループ構造、分岐構造を有しているような、多くの機能を共通のプログラミング言語を有するシェルプログラミング言語。

 

4.Whatプロセスの作成のための4つのイベントは(あることを確認するために、Linux上で実行できる例を使用)?
A:作成プロセスにつながる4つの主要なイベントがあります
①システムの初期化は、
システムを作成することにより、起動したプロセスを実行するプロセスの実施②呼び出し
新規プロセス作成する③ユーザ要求
④バッチジョブ初期化処理
する#include <unistd.h>
する#include <stdio.hに>
()メインINTを
{
  ; PIDをint型
  PIDは、(フォーク=);
  IF(PID == 0)
  {
     のprintf( "新しい新しいを作成するプロセスです!");
   }
}
//は、プロセスを作成することです!

5.Whatプロセスの終了のための4つの条件は何ですか?(Linux上で実行することができ、使用exampeことを確認する)
A:プロセスは、通常、次の条件によって引き起こさ終了:
①正常終了(自発的)
の#include <unistd.h>
する#include <stdio.hの>
int型のmain()
{
  のprintf( "Hello Worldのは、\ N-!");
}
//プロセスが終わった
②エラー終了)(自主的な
書式#include <unistd.h>
書式#include <stdio.hに>
int型のmain()
{
  int型I = 10;
  。しばらく(1)
 {
   のprintf( "%Dの\のN-"、10 / I)、
   SLEEP(2);
   i--;
  }
}
//処理エラー
③重大なエラー(不随意)
④別のプロセス(不随意)殺さ

6.Whatは、プロセスの内部構造ですか ?
:プロセスの内部構造:コード・セグメント・コード・セグメントは、データセグメントのデータセグメント、スタックセグメントスタック、アドレス空間のアドレス空間、プロセス制御ブロックPCBプロセス制御ブロック

7.Whatはスレッドで、何のスレッド&プロセスの違いは?
:スレッドスレッド(軽量プロセス)は、スニペットプロセスが(プロセス)の他の断片と並行して実行できることです。
差:
(1)プロセスがリソース割り当ておよびスケジューリングの別個の単位であり、スレッドは、CPUスケジューリングの基本単位です。
(2)同じプロセスが複数のスレッドを含むことができ、そしてスレッドは、スレッドのうちの少なくとも1つを含む、プロセス全体(レジスタ、スタック、コンテキスト)のリソースを共有します。
pthread_createのを呼び出すスレッドを作成しながら、フォーク(3)プロセスまたはvforkの呼び出しを作成し、それが破壊されたプロセスの終了、スレッドの終了後にすべてのスレッドは、プロセスとスレッドのもう一方の端には影響を与えません。
(4)スレッドが軽量プロセスであり、その創造と破壊の時間がプロセスよりもはるかに小さいが必要な、すべてのオペレーティングシステムの機能を実行完了するために、スレッドを作成しています。
彼らは同じプロセスが(5)スレッドを実行する共有するようにすべてのリソースは、一般に、同期して相互に排他的であることを要求されています。
(6)スレッドはTCB、スレッドID、レジスタ、ハードウェアコンテキスト独自のプライベート属性を有し、そしてプロセスはまた、PCBのプロセス制御ブロックの独自のプライベート性を有している、これらのプライベートプロパティは共有されない、プロセスまたはスレッドのマーカーを示すために使用します。


8.Whatは、ユーザ空間との間の差であるカーネル空間?
:通常の状況では、アプリケーションは、通常モードで実行され、特権レベルがシステムコールを介して実行するときにコードが含まれるべき場合、コードは、ユーザ空間で実行されているとして知られている空間のこの部分は、対応するコードが実行される空間は、カーネル空間と呼ばれます。
    カーネルモードとユーザーモードでオペレーティングシステムを実行するには、2つのレベルがあり、レベル3の特権レベルで実行しているとき、これは最低の特権レベルであるので、あなたは、ユーザーモードで実行して、それを呼び出すことができ、実行している通常のユーザー・プロセスの特権ですグレード、ほとんどのユーザーは、直接ユーザーモードで動作しているプログラムに直面している。プログラムは、特権レベル0で実行され、逆に、カーネルモードで動作して呼び出すことができます。直接オペレーティングシステムのカーネルデータ構造および手続きにアクセスすることはできません、ユーザーモードでプログラムを実行します。我々はシステムでプログラムを実行すると、ユーザーモードで実行している場合、ほとんどの時間は、それは、オペレーティング・システムは、それが何の力と完成する能力を持っていない作業を完了するためにいくつかの助けを必要とする、カーネルモードに切り替わります。
    ユーザモードのメモリ空間を実行し、ターゲット・プロセスが制限されているアクセスできる場合には、プロセッサを所有している先行され得る、およびカーネル・モード・プロセスで実行される、すべてのメモリとオブジェクトへのアクセス、およびプロセッサによって占有を先取りすることが許可されていません。

。9。UNIX_____がシェルと呼ばれる
A:シェルと呼ばれるUNIXコマンド・インタプリタは、bashシェルで、Linuxのbashの上ではデフォルトで使用されています。

おすすめ

転載: www.cnblogs.com/ku1274755259/p/11108523.html