510 likes | 761 Views
http://www0.info.kanagawa-u.ac.jp/~kaiya/os/. オペレーティングシステム 2014. 2014/4/10 木曜 2 限 2 年前期 海谷 治彦 永松 礼夫. 目次. 講師紹介等,前置き 1.1 OS とは? 1.2 役割 1.3 提供する機能 1.4 管理する資源 1.5 利用形態 1.6 主な OS. 講師紹介. 永松 礼夫 先生 皆さん,ご存知かと思います. 海谷 治彦 私,カイヤと読みます. 4 月に移籍してきました.. オペレーティング システム.
E N D
http://www0.info.kanagawa-u.ac.jp/~kaiya/os/ オペレーティングシステム 2014 2014/4/10 木曜 2限 2年前期 海谷 治彦 永松 礼夫
目次 • 講師紹介等,前置き • 1.1 OSとは? • 1.2 役割 • 1.3 提供する機能 • 1.4 管理する資源 • 1.5 利用形態 • 1.6 主なOS
講師紹介 • 永松 礼夫 先生 • 皆さん,ご存知かと思います. • 海谷 治彦 • 私,カイヤと読みます. • 4月に移籍してきました.
オペレーティング システム • Operating System (OS) • Windows 8, 7, XP ... • UNIX • Linux • OS X (MacOS) • Android • iOS • .....
授業の目的 • ユーザー視点でOSとは何かを理解しよう. • アプリケーション開発のプログラマ等もユーザーの一種とみなす. • OSの内部機能を理解しよう. • ある意味,OS開発者視点といえます. • 実際にOSを開発してもらうわけではないですが.
教科書・参考ページ • 野口健一郎,オペレーティングシステム(IT Textシリーズ),オーム社,2002. • おそらく昨年度と同じものです. • http://www0.info.kanagawa-u.ac.jp/~kaiya/ • 暫定ページです. • http://kaiya.cs.shinshu-u.ac.jp/os/ • 前組織のページです.たまに参照するかも.
オフィスアワーについて • 原則,毎週水曜日 AM9-PM2 • 昼食時間を除く • 場所 2号館 217号室 • 事前にメール等で連絡してくれると,大変,助かります.
特に重要な前提知識 • 情報科学リテラシー • 基本的なコンピュータの知識とPCの使い方 • プログラミングI • OSでは特にC言語は重要です • 計算機システム基礎 • コンピュータ・ハードウェアの基礎知識 • 情報科学概論 • 基本的なデータ構造とアルゴリズム
授業計画 • 基本,教科書(使用書)の一章を一回にやります. • 1章 OSの役割 • 2章 OSのユーザーインタフェース • ・・・・ • 適宜,新しい話題をいれていきたいと思います. • 例えば,VirtualBox 等の仮想化技術. • クラウド系の話題. • プログラミングを伴う演習を行うかもしれません. • 出席代わりに毎回,単文によるアンケートを出してもらいます. • 試験はやります.
アンケート • 毎回,授業の最後の頃~数十分程度の間に提出してもらいます. • 100文字程度. • その授業で上手く理解できなかった部分,疑問もしくは意見等を100文字程度で書いてください. • もし,全て理解できたのであれば,授業の中で興味を持った話題を100文字程度で書いてください.
例 • TSSによって複数の人間が一台のコンピュータを同時に利用できるとある.しかし,何故,人間にとってストレス無くコンピュータが応答するのかがわからなかった. (76文字) • OSを介してタッチパネル等のハードウェア資源を利用しなければいけない理由がわからなかった.アプリケーションで直接にハードウェアにアクセスしたほうが効率的ではないかと思う. (85文字)
悪い例 • わからないところがわかりません. • わからないところは無いし,興味も持ちませんでした.
アンケートの出し方 • 学科(学部?)のレポート提出システムを利用 • https://ereport1.educ.info.kanagawa-u.ac.jp/ • テキストファイルを作成してアップしてください. • ファイル名は学籍番号が望ましい.
1.1 OSとは • 「基盤ソフトウェア」と呼ばれることもある. • コンピュータを利用する際の最初の窓口となっている. • プログラムを呼び出し,入出力装置を操作する仲介となっている. • 利用者はOSを使いたいのではなく,音楽を聴いたり,画を書いたり,道を調べたり,文書を作成したりしたい. • アプリケーション (アプリ) • 現実的にOSによって動くアプリが決まってくるので,OSの理解は重要となる.
情報科学でOSを学ぶ意義 • 情報の専門家なんですから,最低限以上にOSを知っていないとマズいでしょう. • OSはコンピュータ(ハードウェア)を一般化,抽象化して扱うためのソフトウェアである. • 実際はデータの羅列であるディスクの中身が,木構造として扱える等. • 抽象化とは何かを「具体的に」学ぶ良い教材である.
1.2 OSの役割 • ハードウェアを容易に使うための仲介 • コンピュータの効率的な運用 • 複数利用者間の情報共有 • 利用者に一貫した統一的な利用法を提供
ハード利用の仲介 • ハードの操作には電気的な処理が必要. • 押されたキーボードの認識,タッチされたパネルの位置,カメラがスキャンした画像. • 画面に文字や図を描画,音が出る. • アプリ毎にそのような処理をプログラミングしていたらプログラマの身が持たない. • よって,OSが仲介役としてハードとアプリの間に入って,より平易にアプリからハードを扱えるようにできるようにした.
画面 カメラ タッチ パネル マイク
コンピュータの効率利用 • 一般にコンピュータは複数の仕事を同時にこなしている(ように見える). • 音楽聴きながら,ツイートしながら,プログラミングする等 • このような同時作業を行っていても,利用者にストレスを感じさせないような管理を提供. • 大昔はコンピュータが高価だったので,コンピュータの待機時間を最小化するということが重要だった.
情報共有 • 複数利用者が同時に参照・更新できるデータや情報の保存場所を提供. • いわゆるファイルシステム • 昔はOSを直接複数人が利用することで,ファイルシステムを共有していた. • 今ならWebメール等によるウエブとメールの情報共有等. • 今でこそOSを介した直接の共有は少ないが,Webサービスやネットストレージ等の基盤をOSが与えている. • Webのデータ等はファイルシステムに保存 • Dropbox等はファイルシステム間のデータ複製を実現.
一貫した統一利用法の提供 • メーカーやハードウェアが異なっても,コンピュータの使い方がほぼ一緒になるための仕組み. • 実際,メーカー毎にコンピュータのハードウェア部品は異なるが,それを意識することはOSが同じなら少ない. • 「Mac信者」や「Windows教」等の宗教戦争が起こってしまう所以. • iOS vs Android も • プログラミングレベルは利用レベルより統一されている. • POSIX等の標準
1.3 OSが提供するインタフェース • ユーザーインタフェース (UI) • User Interface • (アプリケーション) プログラミング インタフェース (API) • Application Programming Interface • 通信インタフェース • Communication Interface
ユーザーインタフェース • 人間とコンピュータが対話するための機構を提供する. • 当然,人間は打鍵,画像,音声等の物理的な現象しか認知・行使できない. • キーボード,マウス,タッチパネル,画面,スピーカー等を介して,人間が何かすると,何かが起こるようにOSが管理してくれている. • アプリ起動はもちろん,操作中も,実際はOSを介してハードウェアを利用している.
例 • タブレットで画面をタッチすれば風景を画面で見られる. • カメラアプリの起動 • マウスポインタがある領域内にある状態でマウスを押すと,音楽が聞こえる. • 音楽プレーヤーの起動 • キーボードから文字を打つと,打った文字が表示され,編集・保存が可能な状態になる. • テキストエディタの利用
API • Application Programming Interface • アプリケーションを開発する際,OSが管理する資源(後述)を利用するための関数群をシステムコールと呼ぶ. • ごく普通の計算(例えば平方根の計算や並び替え等)を行う関数群とシステムコールをあわせて,APIと呼ぶ.
通信インタフェース • 通信機器管理し通信規約(プトロコル)を有することで,他のコンピュータや機器と情報交換を可能とする. • 詳細は11章.
OSの機能 (役割) • プロセス・リソース管理 • メモリ管理 • デバイス管理 • ファイル管理 • ユーザー管理 • それぞれ適宜来週から解説します.
1.4 OSが管理する資源 • OSが管理する機器やプログラム群を「資源」と呼ぶ. • コンピュータを操作することで,処理ができるのは,OSがこれら資源を管理しているおかげ. • ハードウェア資源 • 入出力装置群,デバイスとも呼ばれる. • キーボード,マウス,ディスプレイ,マイク,スピーカー,タッチパネル,ネットワーク装置(NIC)等 • ソフトウェア資源 • アプリケーションプログラムやデータ • 通常,ファイルシステム上に管理されている.
OS管理のシナリオ例 • 利用者が画面をタッチする • OSはカメラアプリが選択されたことを識別 • OSによってアプリの実行が開始される • アプリはOSにカメラ画像を要求する • OSはCCDカメラをオンにして,画像データをアプリに送る • アプリは画像を画面に表示するようにOSに依頼する. • 画面にアプリの画が表示される.
画面 カメラ タッチ パネル
OS カメラ 画面 利用者 ファイルシステム 1: () タッチ 1.1: () アプリ選択を識別 1.1.1: () プログラムの読み出し <<create>> 1.1.2: () 実行 アプリ 2: () カメラ画像要求 2.1: () カメラ起動 2.2: () 画像取得 3: () 画像表示要求 3.1: () 画像描画 シナリオを図示して表示
1.5 OSの利用形態 教科書 p.10- • バッチ処理 • オンライン処理 • 時分割処理 (TSS) • 個人使用
バッチ処理は何故必要(だった)か? • (大昔は)計算機利用料が高価だった. • 大学全体で今のスマホにも劣る計算機が一台しかない. • 30年以上前の話 • 短期間で大量の処理をしなければならない. • メガバンクの処理 • センター試験
オンライン処理 • 現在のウエブサイトに個々人がブラウザでアクセスする形態に似ている. • OS+オンラインPG ⇒ OS+ウエブサーバー • 端末 ⇒ ブラウザ • 現在ではほとんどウエブアプケーションに置き換えられているが,残存するものもある. • 駅窓口の端末 • 航空会社の端末
TSS • Time Sharing System • 詳細は7,8章で再度,解説する. • コンピュータ(正確には1個のCPU)は,ある一瞬には1個の処理しかできない. • しかし,非常に短い時間(数ナノ秒)で処理を切り替えることにより,人間からはコンピュータが複数,同時処理しているように見える. • この仕組みを利用して,複数利用者が一台のコンピュータを同時利用する仕組み.
時分割の考え方 (図7.4改) 時間の流れ 利用者1 利用者2 CPU利用時間 利用者3 利用者4 数ナノ秒程度
個人利用 • Personal Computer/Computing (PC) • スマートフォン • タブレット • 等,いまどきのコンピュータは個人利用を想定して作られているのは皆さんご存知の通り. • 個人利用でさえ同時に複数のアプリを使うので,TSSの技術が用いられる. • Windowsのタスクマネージャーを見てみよう
1.6 主なOS • Windows系 • Windows 7, 8 ... • Windows mobile (Windows Phone) • UNIX系 • BSD系UNIX • Linux • Android • OS X (Mac OS) • iOS • メインフレーム用
利用目的から分類すると • いわゆるPC向け • Windows 7, 8 ... • Linux • OS X • Mobile device 向け • Windows Phone • Android • iOS • サーバー (含むクラウド) • Windows サーバー • Linux • UNIX (Solaris等) • 組み込み,ゲーム機器 • PS4はFreeBSD (UNIX)がベースらしい
Multicsとクラウド • 教科書p.16のMultics解説参照 • 情報処理を電気,ガス,水道等と同様のインフラとして提供する. • ある意味クラウドコンピューティングはMulticsの再来 • クラウドコンピューティングとは、 • ネットワーク、サーバー、ストレージ、アプリケーション、サービスなどの構成可能なコンピューティングリソースの共用プールに対して、 • 便利かつオンデマンドにアクセスでき、最小の管理労力またはサービスプロバイダ間の相互動作によって迅速に提供され利用できるという、モデルのひとつである。 ・・・略・・・ [NISTの定義]。