ネットワーク・プログラミ ング カーネルの役割とプロセス生成. 1.1 OS の役割 仮想マシン OS はハードウェアの多様性 をカプセル化し、利用者を 複雑な処理から開放する。 プロセス管理 時間多重化により各プロセ スに CPU を割当てる。 メモリ管理 メモリ空間の多重化により、 各プロセスにメモリを割当.

Slides:



Advertisements
Similar presentations
1 B10 CPU を作る 1 日目 解説 TA 高田正法
Advertisements

システムプログラミング 第11回 シグナル 情報工学科 篠埜 功. 今回の内容 前回の補足( exit システムコールについ て) プロセス間通信 – シグナルの送信 --- 今回の内容 – パイプによる通信 – ソケットによる通信.
システムプログラミング 情報工学科 篠埜 功 情報工学科 3 年生対象 専門科目 第5回 シェルスクリプトの続 き レポート課題 main 関数の引数 usage メッセージ.
プロセスの生成とコマンドの実行 プロセスの生成とコマンドの実行 プロセス生成のシステムコール プロセス生成のシステムコール プロセス生成のプログラム例 プロセス生成のプログラム例 プログラム実行のシステムコール プログラム実行のシステムコール 子プロセスの終了を待つシステムコール 子プロセスの終了を待つシステムコール.
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
システムプログラミング 第10回 情報工学科 篠埜 功. 今回の内容 プロセス(続き) – execve システムコール 現在のプロセスを、引数に与えられたファイル(実行 形式ファイルあるいはシェルスクリプト等の実行可能 なファイル)を受け取り、現在のプログラムをそれで 置き換える(変身)。 fork.
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
システムプログラミング 第6回、7回 main関数の引数 usageメッセージ システムコールのエラーメッセージ ファイル
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
ファイルシステムの構造 外部記憶装置のパーティション(区画) ファイルシステムとパーティション(区画) ファイルシステムのmount
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
第13回 プログラミングⅡ 第13回
12: コマンドライン引数 C プログラミング入門 総機1 (月1) Linux にログインし、以下の講義ページ を開いておくこと
12: コマンドライン引数 C プログラミング入門 基幹7 (水5) Linux にログインし、以下の講義ページ を開いておくこと
第8回 プログラミングⅡ 第8回
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
アルゴリズムとデータ構造 補足資料6-3 「サンプルプログラムcat3.c」
担当:青木義満、篠埜 功 情報工学科 3年生対象 専門科目 システムプログラミング 第8回、第9回 シグナル処理 担当:青木義満、篠埜 功
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
シグナル通信 普通の割込みとソフトウェア割込み ソフトウェア割込みとシグナル キーボードからのシグナル 例外 (exception)
オペレーティングシステム2004 プロセス (1) 2004年10月8日 海谷 治彦.
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
オペレーティングシステム2004 プロセス (2) および カーネルモード・システムコール
プログラミング論 ファイル入出力
システムプログラミング 第9回 、10回 ハードリンク、シンボリックリンク プロセスの生成
システムプログラミング 第12回 プロセス間通信 情報工学科 篠埜 功.
第10回関数 Ⅱ (ローカル変数とスコープ).
マルチスレッド処理 マルチプロセス処理について
iioLoadFile()とiioMallocImageBuffer()の補足
iioLoadFile()とiioMallocImageBuffer()の補足
iioLoadFile()とiioMallocImageBuffer()の補足
オペレーティングシステム イントロダクション
プログラミング入門2 第11回 情報工学科 篠埜 功.
演習1の解答例の解説 2004年10月21日 海谷 治彦.
プログラミング論 ファイル入出力
演習1の解答例の解説 2006年11月8日 海谷 治彦.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第6回 システムプログラミング概要 プロセスの生成 担当:青木義満
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
ネットワーク・プログラミング ソケットオプションとスレッド.
配列変数とポインタ 静的確保と動的確保 ポインタ配列 2次元配列 時間計測 第1回レポートの課題
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
B演習(言語処理系演習)第2回 田浦.
システムプログラミング 第12回 プロセス間通信 情報工学科 篠埜 功.
実装について 前田俊行.
システムプログラミング 第6回 システムコールのエラーメッセージ ファイルシステム 情報工学科 篠埜 功.
システムプログラミング 第12回 プロセス間通信 情報工学科 篠埜 功.
ネットワーク・プログラミング デバイスドライバと環境変数.
ネットワーク・プログラミング Cプログラミングの基礎.
高度プログラミング演習 (11).
ネットワーク・プログラミング Linuxシステムとソフトウェア開発.
ネットワーク・プログラミング 非同期I/Oとスレッド同期制御.
システムプログラミング 第9回 、10回 ハードリンク、シンボリックリンク プロセスの生成
ネットワーク・プログラミング TCPサーバ.
ネットワーク・プログラミング メッセージの作成とセマフォ.
モジュール分割.
ネットワーク・プログラミング ソケットプログラミングと共有メモリ.
ネットワーク・プログラミング 1対多のプロセス間通信.
ネットワーク・プログラミング パイプライン通信とシグナル.
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
ネットワーク・プログラミング マルチタスク.
情報処理Ⅱ 2005年11月25日(金).
プログラミング演習II 2004年11月 16日(第5回) 理学部数学科・木村巌.
ネットワーク・プログラミング プロセスとファイルシステム管理.
モバイルプログラミング第3回 Cプログラミングの基礎( 2 )
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
12: コマンドライン引数 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
Presentation transcript:

ネットワーク・プログラミ ング カーネルの役割とプロセス生成

1.1 OS の役割 仮想マシン OS はハードウェアの多様性 をカプセル化し、利用者を 複雑な処理から開放する。 プロセス管理 時間多重化により各プロセ スに CPU を割当てる。 メモリ管理 メモリ空間の多重化により、 各プロセスにメモリを割当 る。 資源管理 各プロセスに資源(プリン タ、ハードディスク等)の 共有及びアクセス保護のた めのインタフェースを提供 する。 Latex オペレーションシステム( OS) tar ls xfig 周辺装置メモリ CPU

1. 2 カーネルモードとユーザモード カーネルモード カーネルの特権モード。 プロセッサの全命令を利 用でき、全メモリ領域を アクセス出来る。マシン 資源と直接対話出来る。 ユーザモード プロセスの実行モード。 実行できる命令は制限さ れ、ユーザモードのメモ リ領域のみアクセス出来 る。マシン資源と直接対 話出来ない。 システムコール カーネルがプロセスに代 わってマシン資源をアク セスし、結果を返す。 資源1資源2 カーネル プロセス A プロセス B システムコー ル 結果 マシン資源と はハードディ スク等のハー ドウェアを指 す

プロセスの生成とコマンドの実 行 2.1 プロセスの生成 lv.c #include int main(int argc,char *argv[]) { int dep_time; dep_time=atoi(argv[1])*60-300; if (fork()==0) { // 子プロセスの生成 sleep(dep_time); fprintf(stderr,”Leave in 5 min\n”); } return EXIT_SUCCESS; } % gcc lv.c –o lv %./lv 30 ( 30 分後に予 定あり) % % Leave in 5 min ( 5 分前にア ラーム) fork 子プロセスを生成する インクルードファイル #include #include 書式 pid_t fork (void); 戻値成功時 親プロセス : 子プロセス ID 子プロセス : 0 失敗時 -1 説明子プロセスは親プロセスの複製で あり、戻値によって各プロセスは自 身が親か子かを判断する。 親プロセス pid=100 fork(); 戻値 102 子プロセス pid=102 fork(); 戻値 0 子プロセスの生成 /usr/include/stdlib.h ポインタ変数の配 列 % man fork % man atoi

2.2 簡単なシェルの作成 nsh.c int main() { char command[256],line[256]; int st; static char prompt[64]=“>”; fprintf(stderr, “%s”,prompt); while (fgets(line,sizeof(line),stdin) !=NULL) { if (sscanf(line,”%s”,command)>0) { if (fork()==0) { if (execl(command,command,NULL)<0) { exit(EXIT_SUCCESS); } else { wait(&st); } fprintf(stderr,”%s”,prompt); } return EXIT_SUCCESS; } %./nsh > /bin/ps プロセスの一覧が表示される >/bin/ls ファイル名一覧が表示される > ( Ctrl-D を押すと、もとのシェルに戻る) % シェルとは、 1. 文字列を入力する 2. 入力された文字列で示されるコ マンド(プログラム)を実行 3. コマンドの実行が終ったら1. へ nsh.c を実行しましょう。 プロンプト ( > )をディス プレイ上に表示 子プロセ ス が実行 command を子プ ロセス上で実行 子プロセス終 了 親プロセ ス が実行

2.3 プログラムの実行 execl プログラムをロードし実行 インクルードファイル #include 書式 int execl(const char *path, const char *arg,..); 戻値成功時 なし 失敗時 -1 説明 execl の引く数で指定したプログラムが execl を呼出たプロセスを上書きする プロセス execl(“/bin/ls”,”/bin/ls”,”-l”,NULL); ハードディスク / ls wait 子プロセスの終了を待つ インクルードファイル #include #include 書式 pid_t wait (int *status); 戻値成功時 子プロセス ID 失敗時 -1 親プロセス fork(); wait(); 子プロセス exit(); usrbin execl を実行する と、ハードディス クに格納された ls コマンドをメモリ 上にロードする。 子プロセス の終了を待 つ 子プロセスの生成

宿題3 宿題:20秒前と5秒前にメッ セージを出すプログラム (hw3.c) を作成し、動作を linux 上で確認せよ。 表紙に氏名と学籍番号を書く 本文にプログラムを書く プログラムの実行結果を書く 実施した内容を説明する文章 を書く レポートの締切は次の週の水 曜日 18:00 親子孫 sleep(40) printf() fork() return sleep(15) printf() return fork() return hw3.c #include int main(int argc, char *argv[]) { int dep_time; int dep_time2=15; dep_time=atoi(argv[1])*60-20; if (fork()==0) { //child if (fork()==0) { //grandchild sleep(dep_time2); fprintf(stderr,"Leave in 5 sec\n"); } return EXIT_SUCCESS; } 20 秒前にメッセージ ( ”Leave in 20 sec” ) を出力する命令文 (2行)をここに挿 入する。 $./hw3 1 $ Leave in 20 sec Leave in 5 sec $ 5 秒前にこのメッセージが出 る

まとめ OS の役割と構成 カーネルモードとユーザモード プロセスの生成と実行