オペレーティングシステム2006 第1回 概要 2006年10月12日 海谷 治彦.

Slides:



Advertisements
Similar presentations
エンジニアから見る Mac OS X. Mac のイメージ お洒落、かっこいいマシン デザイナーさんが使うマシン DTP に強いマシン 実は、 Developer のためにある!・・・は ず.
Advertisements

ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
Linuxを組み込んだマイコンによる 遠隔監視システムの開発
「コンピュータと情報システム」 03章 ソフトウェア
C言語システムプログラミング クラス分け 1の人:紫合クラス(302教室) 学籍番号を3で割った余りが、 0の人:冬爪クラス(208教室)
情報検索概説II 第8回 パソコン組み立てと記憶装置 1999/11/25.
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
Android と iPhone (仮題) 情報社会とコンピュータ 第13回
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
コンパイラ演習番外編 (その2): JVM コンテスト
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
Q q システムソフトウェア 第1回:2007年10月3日(水) q q.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
オペレーティングシステム (OSの機能と構造)
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第1回 イントロダクション 担当:青木義満
講 義 ガ イ ダ ン ス オペレーティングシステム 第1回.
FPGAを用いたMG3用 インターフェース回路の解説
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
小型デバイスからのデータアクセス 情報処理系論 第5回.
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
講 義 ガ イ ダ ン ス オペレーティングシステム 10/4/07.
Linuxカーネルについて 2014/01.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
ま と め と 補 足 ネットワークシステムⅠ 第15回.
専門演習Ⅰ 国際経済学部 国際産業情報学科 2年 石川 愛
Linux リテラシ2006 第6回 デーモン CIS RAT.
オペレーティングシステム2004 プロセス (1) 2004年10月8日 海谷 治彦.
オペレーティングシステムとは オペレーティングシステム 第3回.
Flyingware : バイトコード変換による 安全なエージェントの実行
型付きアセンブリ言語を用いた安全なカーネル拡張
前坂 たけし (北大院・理) 其の壱 はじめての BIOS 前坂 たけし (北大院・理)
OSの仕組みとその機能 1E16M001-1 秋田 梨紗 1E16M010-2 梅山 桃香 1E16M013-3 大津 智紗子
実行時情報に基づく OSカーネルのコンフィグ最小化
オペレーティングシステム イントロダクション
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
Java/Swingについて+ (4) 2005年10月26日 海谷 治彦.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
1.情報機器について知ろう(p.8-9) 第1章 第1節
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第6回 システムプログラミング概要 プロセスの生成 担当:青木義満
インターネット             サーバーの種類 チーム 俺 春.
情報実験第 7 回(2016/06/17) OS インストール・起動
サーバ・クライアントシステム ( X Window System) 2006/01/20 伊藤 和也 original: 前坂たけし
ガイダンス 情報システム管理 ガイダンス 水野 嘉明 情報システム管理 1.
Java における 先進的リフレクション技術
オペレーティングシステム i386アーキテクチャ(1)
MindStorms開発環境の比較・検討
Linux の世界に 触れてみよう! 情報実験 第 3 回 (2005/10/21)
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
オペレーティングシステム (OSの機能と構造)
ソフトウェア工学 知能情報学部 新田直也.
プログラミング演習I 2003年7月2日(第11回) 木村巌.
プログラミング入門2 第13回、14回 総合演習 情報工学科 篠埜 功.
システムプログラミング 第6回 システムコールのエラーメッセージ ファイルシステム 情報工学科 篠埜 功.
オペレーティングシステムJ/K 2004年10月4日
演習1に関する講評 ~ 業務仕様を書く難しさ ~
ユビキタスコンピューティング環境 を構築するための 小型無線ネットワークコンピュータの開発
アルゴリズムとデータ構造1 2009年6月15日
プログラム分散化のための アスペクト指向言語
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
高度プログラミング演習 (11).
アルゴリズムとデータ構造 2010年6月17日
ソフトウェア工学 知能情報学部 新田直也.
オペレーティングシステム (OSの機能と構造)
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
Presentation transcript:

オペレーティングシステム2006 第1回 概要 2006年10月12日 海谷 治彦

目次 スケジュールとやり方 内容の概要 OSの概要

スケジュールとやり方 詳細はホームページ参照 適宜,演習(宿題)を出します テストはやりません.

内容の概要 (演習の都合で変わるかも) OSの役割 プロセス・リソース管理 メモリ管理 デバイス管理 ファイル管理 ユーザー管理 ネットワーク ユーザーインタフェース (CUI, GUI) デーモン・サーバーサービス(httpd, smtp等) OSセキュリティ OSの基本機能 (文献1 p.9)

基本的な方針 一般論(や太古のOSの話)はつまらんので,なるだけLinux/UNIXの具体例にあわせて話を進める.

参考文献・リンクについて 詳細はページのほうを参照. 授業スライドのほうでも適宜ふれるが別に買う必要はない. しかし,買ってもいいかも. リンクについても適宜,参考にしてください.

OSの概要編

OSの実体と役割 OSも(アプリと同様)プログラムの一種である. 2つ役割 (2面性) ユーザーが計算機に処理(計算)を依頼するための統一的な窓口となる. 計算機に接続された機器を依頼された処理を遂行するために管理・運用する.

ユーザーとOSの範疇 OSにおけるユーザーとは二つの異なる意味を持つ. 上記に対応したOSの二種類の意味 まさにパソコンの前に座っている貴方自身. OSの各種管理機能以外のプログラム (いわゆるアプリケーションプログラム) 上記に対応したOSの二種類の意味 GUIやファイル表示ツールも含めOS ディストリビューションやデスクトップ等 POSIX等で定義された管理機能を実際に処理している核となるプログラムのみをOSとみなす.⇒ カーネル カーネルは同じだが,GUIや付属アプリが違う場合がある. 授業ではこっちの意味でOSを取り扱う.

kernel version Linux kernelに限らず多数のOSはある周期でバージョンアップをしている. 最新公開版は 2.6? 2.x の xの部分は偶数版のみ公開される奇数版は開発テストバージョンらしい. uname –r コマンドで使ってるLinuxのversionがわかる. バージョンが違うとプログラムも大きく違う場合がある.

Linuxディストリビューション kernelだけでは,ユーザーが業務のためにOSを使うことができない. コマンド(アプリ),Window System, コンパイラ等はkernelには含まれない. ユーザーのためのGUIや,アプリ管理者のための道具などをセットにして配布しているのがディストリビューション. 主な系列は, Slackware系 ReadHat系 Laser5やTurboはコレに属する Debian系 とあるらしい.

窓口を統一するとは? 異なるハードでも同じ手順で処理を依頼できる. CPUの種類や数が異なっても,同じ手順で作業できる. POSIX (Portable Operating System Interface for UNIX) とかに準拠したインタフェースを提供. IEEEによって規定されたUNIX互換OSが最低限もっているべきインタフェース(関数の種類)の仕様. 大雑把にいうと標準関数の仕様. 同じ名前,同じ引数の関数で,OSの機能を呼び出すことができるということ.

例 ファイルにデータを読み書きする. 日時のデータを得る read関数 write関数 日時のデータを得る time関数 gettimeofday関数 (これはPOSIXではない) CPUやディスク,発信機等の種類が変わる度に使う関数(仕様)が変わったらプログラマの身がもたん!

オンラインマニュアルを見てみる man 2 intro システムコールの概要 man 2 read man 2 write man 2 time man 2 gettimeofday 等

IEEE 電気電子工学関係の学会 各種の標準なども規定(IEEE1394とか) 上にも書いてあるが「あいとりぷるいー」と読む. 詳細は www.ieee.org でもよんで. MACのファイヤーワイヤー SONYのiLinkのこと

カーネルの周辺 アプリケーション アプリケーション (時計) (ワープロ) カーネル (やはりプログラムの一種) ハードウェア ファイルが見える 時間情報が得れる カーネル (やはりプログラムの一種) open(…) read(…) gettimeofday(…) ハードウェア (キーボード) ハードウェア (画面出力装置) ハードウェア (発信機) ハードウェア (HD)

カーネルはオブジェクト カーネルはオブジェクト指向におけるオブジェクトとみなすことができる.(文献1, p.14) ハードウェア資源を内部データとして情報隠蔽している. アプリは,システムコールというメソッドを通してのみ,それらの資源を活用できる. ハード資源以外の内部情報も管理のために保持している. 正確にはADT(抽象データ型)といったほうが良い.

オブジェクトとしてのカーネル アプリケーション アプリケーション (時計) (ワープロ) カーネル (ハード資源を情報隠蔽) ハードウェア メソッド 呼び出し メソッド 呼び出し カーネル (ハード資源を情報隠蔽) open(…) read(…) gettimeofday(…) ハードウェア (キーボード) その他, 内部情報 ハードウェア (VGAアウト) ハードウェア (HD) ハードウェア (発信機)

クラス図風にかくと・・・ 人間 OS (kernel) * 1 1 * 1..* 1..* ※ 青字の1は*の場合のほうが正確. アプリケーション OS (kernel) ハードウェア プロセス等の情報等 * 1 1 アプリ固有の操作 電子回路的な刺激を受信. 電子回路的な反応を送信. * 1..* 1..* POSIX等で規定されたインタフェース (システムコール) ※ 青字の1は*の場合のほうが正確. 複数のOSを使うアプリや, 複数のOSに利用されるハードは存在しうる.

POSIX等の関係 ? ? MacOS/X <<interface>> POSIX Windows/NT Linux アプリケーション MacOS/X ? <<interface>> POSIX Windows/NT Linux Darwin ? RedHat/Linux Vine/Linux <<interface>> SVR4 <<interface>> BSD ※ 実は実装関係はちょいと不正確かも.実データがよくわからんので.

システムコール カーネル内の機能を利用するための関数群. これによって,アプリはプロセス,リソース,メモリ,デバイス,ファイル等,カーネルが管理しているものを利用することができる.

カーネルの管理対象 1/2 プロセス: プログラムのインスタンス.すなわち,個々の実行中プログラムのこと. 1つのプログラムが複数のプロセスにインスタンス化されるのが普通. 例: kterm や less, bash など. システムリソース: プロセスが計算を進めるために必要な資源.RAM, CPU等

カーネル管理対象 2/2 デバイス: いわゆる周辺機器.キーボード,マウス,モニタ等. ファイルシステム: いわゆるファイル.プログラムを含むデータを格納するために抽象化された記憶装置.

カーネルの管理機能 プロセス・リソース管理 メモリ管理 デバイス管理 ファイル管理 ・・・・これら順に今後話してゆきます

Linuxのカーネル 基本的には一枚板(モノリシック)なプログラム. しかし,以下の二つの部分は着脱容易となっている. プロセス,リソース,メモリ,ファイル管理が1つのプログラムになっている. 複数のプログラムでカーネルを構成するOSもある.(例: Darwin) しかし,以下の二つの部分は着脱容易となっている. 個々のデバイス管理部 /proc/devices モジュール /proc/modules

今後の展開 基本的には目次どおりに進める 時たまCでのプログラミング演習を要求する.(さすがにOSだとJavaではキツい.) 最終目標 アプリケーションの処理要求が,どのような仕組みで,最終的にハードウェア等によって実行されるかを理解する.