酒居敬一(sakai.keiichi@kochi-tech.ac.jp) オペレーティングシステムJ/K 2004年10月4日 酒居敬一(sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS2004/

Slides:



Advertisements
Similar presentations
計算機リテラシーM 第 11 回 計算機・ネットワーク技術 伊藤 高廣
Advertisements

Linuxを組み込んだマイコンによる 遠隔監視システムの開発
「コンピュータと情報システム」 03章 ソフトウェア
C言語システムプログラミング クラス分け 1の人:紫合クラス(302教室) 学籍番号を3で割った余りが、 0の人:冬爪クラス(208教室)
Linuxのデバイスファイルを意識して使ったこと が無い方へ入口の紹介。
オペレーティングシステムJ/K 2004年10月18日(5時限目)
情報検索概説II 第8回 パソコン組み立てと記憶装置 1999/11/25.
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
Android と iPhone (仮題) 情報社会とコンピュータ 第13回
組み込み環境における ユーザレベル・デバイスドライバの検討 (進捗報告)
オペレーティングシステムJ/K 2004年10月7日
JTAG ICEによる 組み込みLinuxデバッグ
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
オペレーティングシステム (OSの機能と構造)
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第1回 イントロダクション 担当:青木義満
組込みシステムとは コンピュータ制御システム?
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
ソフトウェア階層 分類 具体例 応用ソフト 基本ソフト アプリケーションソフト 個別アプリケーション SEやユーザが開発するプログラム
計算機システム概論・7回目 本日のトピック:やや先進的な話題 OSのネットワーク機能について OSを起動する仕組み 試験の実施方法について.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
担当:青木義満、篠埜 功 情報工学科 3年生対象 専門科目 システムプログラミング 第8回、第9回 シグナル処理 担当:青木義満、篠埜 功
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
オペレーティングシステム (割り込み処理)
Linuxカーネルについて 2014/01.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
C言語システムプログラミング C Language System Programming
UNIXについて 松野秀平.
専門演習Ⅰ 国際経済学部 国際産業情報学科 2年 石川 愛
情報コミュニケーション入門b 第6回 Part1 オペレーティングシステム入門
情報コミュニケーション入門e 第11回 Part1 オペレーティングシステム入門
オペレーティングシステム2005 デバイス管理 (1)
型付きアセンブリ言語を用いた安全なカーネル拡張
オペレーティングシステム (プロセス管理とスケジューリング)
オペレーティングシステム (プロセス管理とスケジューリング)
オペレーティングシステム2006 第1回 概要 2006年10月12日 海谷 治彦.
OSの仕組みとその機能 1E16M001-1 秋田 梨紗 1E16M010-2 梅山 桃香 1E16M013-3 大津 智紗子
実行時情報に基づく OSカーネルのコンフィグ最小化
オペレーティングシステム イントロダクション
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
情報コミュニケーション入門b 第6回 Part1 オペレーティングシステム入門
情報コミュニケーション入門e 第11回 Part1 オペレーティングシステム入門
オペレーティングシステム 第2回 割り込みとOSの構成
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第6回 システムプログラミング概要 プロセスの生成 担当:青木義満
アルゴリズムとデータ構造1 2005年6月10日
オペレーティングシステムJ/K 2004年11月18日
情報通信制御 情報通信工学科 3年 森村 知弘.
オペレーティングシステムJ/K 2004年11月15日2時限目
オペレーティングシステム (ファイル) 2009年11月9日
組込みシステムとは コンピュータ制御システム?
オペレーティングシステム (ネットワークと分散システム)
オペレーティングシステムJ/K 2004年11月8日
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
オペレーティングシステム (OSの機能と構造)
コンパイラ 2012年10月1日
システムプログラミング 第6回 システムコールのエラーメッセージ ファイルシステム 情報工学科 篠埜 功.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第12回 システムプログラミング 反復サーバと並行サーバ 担当:青木義満
オペレーティングシステムJ/K (システムプログラミング)
ネットワーク・プログラミング デバイスドライバと環境変数.
オペレーティングシステムJ/K (並行プロセスと並行プログラミング)
オペレーティングシステム (ファイル) 2006年11月16日
オペレーティングシステム (ファイル) 2008年11月17日
オペレーティングシステム (OSの機能と構造)
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
L4-Linux のメモリ管理における問題点とその解決策
Presentation transcript:

酒居敬一(sakai.keiichi@kochi-tech.ac.jp) オペレーティングシステムJ/K 2004年10月4日 酒居敬一(sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS2004/

演習日 10月14日、10月21日、11月1日(中間試験)、11月11日、11月18日 教科書を必ず持ってくること。 連絡先 酒居 居室: A468 メイル: sakai.keiichi@kochi-tech.ac.jp TA(福家君) メイル: fuk@kikuken.org 専門科目演習日程 講義と同じ部屋A107で行います。 演習日 10月14日、10月21日、11月1日(中間試験)、11月11日、11月18日 教科書を必ず持ってくること。

予定 第1回講義 10月 4日2時限目 第2回講義 10月 7日2時限目 第1回演習 10月14日2時限目 第3回講義 10月18日2時限目 第1回講義 10月 4日2時限目 第2回講義 10月 7日2時限目   第1回演習 10月14日2時限目 第3回講義 10月18日2時限目 第4回講義 10月18日5時限目   第2回演習 10月21日2時限目 第5回講義 10月25日2時限目 第6回講義 10月28日2時限目 第7回講義 11月 1日2時限目   中間試験 11月 1日5時限目 第8回講義 11月 4日2時限目 第9回講義 11月 8日2時限目   第3回演習 11月11日2時限目 第10回講義 11月15日2時限目 第11回講義 11月15日5時限目   第4回演習 11月18日2時限目 第12回講義 11月22日2時限目 第13回講義 11月25日2時限目 第14回講義 11月29日2時限目 クオータ末試験 11月29日5時限目 ※これらは予定なので、変更の可能性があります。

コンピュータのハードウェア CPU メモリ システムデバイス(チップセット、スーパーI/O) 外部記憶装置(HDD、FDD、USBメモリ) 通信装置(イーサネット) 入力装置(キーボード、マウス、タブレット、カメラ) 表示装置(ビデオカードとディスプレイ)

[Intel, 2003]

ルネサスSH2/7144 CPU RAM ROM Timer Serial A/D Converter [RENESAS, 2003]

ハードウェアをすべて制御しなければならない。 異なるアプリケーションを使えない。 ハードウェア構成を変えられない。 OSが無ければ… ハードウェアをすべて制御しなければならない。 ファイル操作どころか、キー入力すらままならない。 異なるアプリケーションを使えない。 共通のインターフェースがないから。 ハードウェア構成を変えられない。 プログラムの改造しかないけど、それは困難。 共通の下地を作れば…

OSの位置付け ユーザー アプリケーションソフトウェア 共通のインターフェースを提供 オペレーティングシステム 抽象化 ハードウェア

OSの基本概念 CPUの抽象化 メモリの抽象化 デバイスの抽象化 ネットワークの抽象化 → 仮想計算機を提供 プロセスとスレッド 仮想記憶 ファイルシステム ネットワークの抽象化 ソケット        → 仮想計算機を提供

OSの構成 カーネル 管理コマンド ユーザーインターフェース デバイスドライバ(割込み・入出力・タイマ管理) 記憶管理 プロセス管理(生成・消滅・スケジュール) 同期と通信制御 ファイルシステム 管理コマンド 利用者管理 ユーザーインターフェース

タスクとジョブ タスクはコンピュータからみた仕事の単位 ジョブは人間からみて目的のある一区切りの仕事 シングルタスクOS マルチタスクOS シングルジョブ シングルタスクOSでもマルチタスクOSでも処理できる マルチジョブ マルチタスクOSでないと処理できない

プロセスはプロセッサを抽象化 プロセスどおしは互いに影響を及ぼさないほうがよい デバイスはカーネルの管理下に置きたい

OSの構成法 情報隠蔽 モジュール化あるいはカプセル化 方針と機構の分離 スケジューラとディスパッチャ ページ管理とページング 階層化

情報隠蔽の例 struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char *, size_t, loff_t *); ssize_t (*write) (struct file *, const char *, size_t, loff_t *); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, struct poll_table_struct *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); int (*release) (struct inode *, struct file *); int (*fsync) (struct file *, struct dentry *, int datasync); int (*fasync) (int, struct file *, int); int (*lock) (struct file *, int, struct file_lock *); ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long,unsigned long); };

ユーザープログラムからシステムコールによりカーネル内の処理を呼ぶ。 カーネル内部はモジュール化されている。 モノリシックカーネル ユーザープログラムからシステムコールによりカーネル内の処理を呼ぶ。 カーネル内部はモジュール化されている。 ひとつのプログラムとしてリンクされている。 不要なものまで含んでいるため、巨大になる。 モジュール間は関数呼び出しである。 オーバーヘッドが少ない。 デバイスドライバの変更=カーネルの再構成 最近は Loadable Kernel Module という機構がある。 DLLと同じように、動的にオブジェクトファイルをリンクする

モジュールはシステムサーバーとして実装。 マイクロカーネル カーネルに実装される処理は必要最低限。 モジュールはシステムサーバーとして実装。 各機能は各々プロセスとして実現される。 モジュールが分離していてシステム設計が容易。 モジュール間はプロセス間通信である。 オーバーヘッドが多い。 デバイスドライバの変更≠カーネルの再構成 機能変更や拡張が容易。

タスクとユーザー マルチタスク・マルチユーザー マルチタスク・シングルユーザー シングルタスク・シングルユーザー 複数の人が同時に並行処理を行うことができる。 いわゆるUNIX系のOS。 マルチタスク・シングルユーザー 利用者という概念がない。並行処理はできる。 初期のWindows。組み込み用RTOS。 シングルタスク・シングルユーザー 利用者という概念がない。単一処理しかできない。 PC用ではWindowsより前、DOSなど。

初期化中 稼動状態 電源オン POST ブートストラップ IPL OS コマンド インタプリタ ユーザ・ タスク1 ユーザ・ タスク2 ハードウェアのリセット処理によりプロセッサが働き始める。つまり、リセットベクタで指定されたプログラムを実行する 初期化中 稼動状態 電源オン POST I/Oのチェック メモリチェック 初期化 ブートストラップ IPL OS IPLを読み込む コマンド インタプリタ OSを読み込み システムタスクとして稼動 ユーザ・ タスク1 ユーザ・ タスク2 OSの初期化終了後、コマンド・インタプリタを起動 ユーザーからのコマンドを処理する ユーザ・ タスクn