name: overview class: title, smokescreen, shelf, no-footer # 第02回 プロセス <div class=footnote> <small><small> </small></small> </div> --- class: compact # プロセスとは? <div class=footnote> <small> <small> </small> </small> </div> - OSはユーザに指示されたプログラムを実行し、その結果をユーザに返しています - プロセスとは「実行中のプログラムイメージの総体」です - 同義語: タスク (本科目はUnixなので用語はプロセスを使います) - a.out由来のデータやOSのプロセス管理情報などメモリ上にあるもの全部 --- class: compact, img-right # プロセスの生成 <div class=footnote> <small> <small> </small> </small> </div> ![](../../images/os-abstraction.png) - OSはユーザに指示されたプログラムを実行し、その結果をユーザに返します - 具体的には、ターミナル(CLI)の上でうちこむコマンドや、ウィンドウシステム(GUI)のメニューをクリックした時、 そのたびにOSが新しいプロセスを生成し、ユーザが利用できるように色々な準備をしたあと、ユーザに提供しています - CLI = Command Line Interface - GUI = Graphical User Interface - シェルでプロセス(ps aux)を実行する様子が図の右端です --- class: compact, col-2 # Unixプロセスの例 <div class=footnote> <small> <small> 動いているプロセスは、 左がブラウザ、右はウィンドウを表示するアプリ (GUIはOS本体ではないことに注意) </small> </small> </div> ![height400px](/slides/os/internal/process/images/process.chrome-and-vocareum.png) ![height400px](https://www.ubuntulinux.jp/sites/all/themes/ubuntu/images/11.10-desktop-1.png) --- class: compact # ある瞬間に動いているプロセスは数個だけです <div class=footnote> <small> <small> </small> </small> </div> - OSでは数十も数百もプロセスを実行できる(ように見える)けれど - 処理の実体はCPUで - ある瞬間に実行中のプロセスは<B>最大でもコア数</B>だけです。 <br> 残りは<B>強制的にお休み(SLEEP)</B>させています <small> - いまどきのCPUは、複数の実体=コアからなります(1つのコアが大昔でいうCPUと考えて下さい) <br> 個人向けなら4-8コアあたり、業務用なら64コアなどもあります - プロセスを<B>交互に走らせたり休ませたりする</B>のはカーネルの重要な仕事です </small> - 演習の予告 - このあとpsやtopコマンドでプロセスの様子を確認することにします