タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

プロセスとlinuxに関するzariganitoshのブックマーク (2)

  • Linuxのしくみを学ぶ - プロセス管理とスケジューリング

    プロセスとマルチタスクの実現 Linuxは、多数のプロセスを同時に動作させる事が出来るマルチタスク環境を実現しています。 psコマンドやtopコマンドを実行しプロセスのリストを取得すると多数のプロセスが実行中である事がわかります。 また、これらのプロセス全てが同時に平行して動作しているように見えます。 これはどのようにして実現されているのでしょうか。 一般的に、1つのプロセッサは同時に複数のプログラムを実行する事が出来ません1。 そこで、マルチタスクをサポートするOSでは複数のプロセスを非常に短い時間ずつ切り替えながら実行する事で、体感上は複数のプロセスが同時に実行されているように見せています(図1)。 このような仕組みを実現する為にどんな機能がカーネルへ実装されているのか順に見ていきましょう。 プロセスの切り替え CPU上で処理中のデータを失う事なく現在のプロセスから別のプロセスに切り替

  • 第3回 プロセス・スケジューリング

    Linuxは複数のプロセスを同時に実行できるマルチタスクOSです。第2回目で紹介したように,プログラムはプロセスという単位で管理されており,それぞれが独立したメモリー空間を持つことで複数のプロセスが干渉しないように動作できます。 しかし,通常のパソコンにはプロセッサが1つしか搭載されていませんので,同時に1つのプログラムしか実行できないはずです*1。なぜ,Linuxではマルチタスクを実現できるのでしょうか。その答えはカーネルにあります。 今回は,カーネルがどのようにマルチタスクを実現しているかを解説します。 時分割でマルチタスクを実現 最初にプロセッサがプログラムをどのように実行するかを見てみましょう。 プロセッサの基構造は至って単純です。プロセッサは「Program Counter(PC)」と呼ばれるレジスタが指し示すメモリー・アドレスから命令を読み込んで実行します。実行後は再度PC

    第3回 プロセス・スケジューリング
  • 1