オペレーティングシステム
2018/4/12 木曜 2限 2年前期
目次
• 前置き • 1.1 OSとは? • 1.2 役割 • 1.3 提供する機能 • 1.4 管理する資源 • 1.5 利用形態 • 1.6 主なOSオペレーティング システム
• Operating System (OS) • Windows 10, 8, 7, XP ... • UNIX • Linux • OS X (MacOS) • Android • iOS • ...
授業の目的
• ユーザー視点でOSとは何かを理解しよう. – アプリケーション開発のプログラマ等もユー ザーの一種とみなす. • OSの内部機能を理解しよう. – ある意味,OS開発者視点といえます. – 実際にOSを開発してもらうわけではないです が.教科書・参考ページ
• 教科書は特に指定してません.
– 適宜,以下のページからスライドを提供します.
http://www.sci.kanagawa-u.ac.jp/info/kaiya/os/ • dotcampusも使います.
オフィスアワーについて
• 原則,毎週 木曜日 3限 • 場所 6号館 214号室
• 事前にメール等で連絡してくれると,大変, 助かります.
特に重要な前提知識
• 情報科学リテラシー – 基本的なコンピュータの知識とPCの使い方 • プログラミングI – OSでは特にC言語は重要です • 計算機システム基礎 – コンピュータ・ハードウェアの基礎知識 • 情報科学概論 – 基本的なデータ構造とアルゴリズム授業計画
• 基本,シラバス通りです. – 1回 OSの役割 – 2回 OSのユーザーインタフェース – ・・・・ • 適宜,新しい話題をいれていきたいと思います. – 例えば,VirtualBox, Vmware 等の仮想化技術. – クラウド系の話題. • 使い方というのも少しやりたいと思います. – 環境変数とかコマンドとか. • プログラミングを伴う演習を行うかもしれません. • 出席代わりに毎回,単文によるアンケートを出してもらい ます.アンケート
• ほぼ毎回,授業の最後の頃~数十分程度 の間に提出してもらいます. – 出席がわりです • 100文字程度. • その授業で上手く理解できなかった部分, 疑問もしくは意見等を100文字程度で書い てください. • もし,全て理解できたのであれば,授業の 中で興味を持った話題を100文字程度で書例
• TSSによって複数の人間が一台のコンピュータを 同時に利用できるとある.しかし,何故,人間に とってストレス無くコンピュータが応答するのかが わからなかった. (76文字) • OSを介してタッチパネル等のハードウェア資源を 利用しなければいけない理由がわからなかった. アプリケーションで直接にハードウェアにアクセス したほうが効率的ではないかと思う. (85文字)悪い例
• わからないところがわかりません.
• わからないところは無いし,興味も持ちま せんでした.
アンケートの出し方
1.1 OSとは
• 「基盤ソフトウェア」と呼ばれることもある. – コンピュータを利用する際の最初の窓口となっている. – プログラムを呼び出し,入出力装置を操作する仲介と なっている. • 利用者はOSを使いたいのではなく,音楽を聴い たり,画を書いたり,道を調べたり,文書を作成し たりしたい. – アプリケーション (アプリ) • 現実的にOSによって動くアプリが決まってくるの で,OSの理解は重要となる.情報科学でOSを学ぶ意義
• 情報の専門家なんですから,最低限以上 にOSを知っていないとマズいでしょう. • OSはコンピュータ(ハードウェア)を一般化, 抽象化して扱うためのソフトウェアである. – 実際はデータの羅列であるディスクの中身 が,木構造として扱える等. • 抽象化とは何かを「具体的に」学ぶ良い教 材である.1.2 OSの役割
• ハードウェアを容易に使うための仲介 • コンピュータの効率的な運用
• 複数利用者間の情報共有
ハード利用の仲介
• ハードの操作には電気的な処理が必要. – 押されたキーボードの認識,タッチされたパネ ルの位置,カメラがスキャンした画像. – 画面に文字や図を描画,音が出る. • アプリ毎にそのような処理をプログラミング していたらプログラマの身が持たない. • よって,OSが仲介役としてハードとアプリ の間に入って,より平易にアプリからハー ドを扱えるようにできるようにした.単一アプリの動作
• 処理手順を記述した「プログラム」が「メモリ」に読 み込まれる. – メモリは背番号(アドレスと呼ばれる)のついた単純な データの列 • 「CPU」と呼ばれる計算する装置がプログラムを 前から順番に読んで行く. • CPUは必要に応じて – 計算をする. – 途中結果のデータをメモリに書きこむ. – 入出力装置(画面やカメラ)からデータを送受する.アプリ実行の流れ
• アプリのプログラムがメモ リに読み込まれる. • 計算に必要なメモリも確 保される.(途中計算結 果の保持のため) • CPUがプログラムを順に 読んで,計算をする. • 必要ならば,ファイル等に アクセスする. メモリ ファイル等 CPU プ ロ グ ラ ム 途中結果等簡易な例題 ~ 二値の平均
100番地の数値を読め 101番地の数値を読め 数値を合計せよ 102番地の数値を書け 数値を2で割れ 5 3 100 101 CPU メモリ 50 51 52 ・ ・簡易な例題 ~ 二値の平均
100番地の数値を読め 101番地の数値を読め 数値を合計せよ 102番地の数値を書け 数値を2で割れ 5 3 100 101 CPU メモリ 5 50 51 52 ・ ・簡易な例題 ~ 二値の平均
100番地の数値を読め 101番地の数値を読め 数値を合計せよ 102番地の数値を書け 数値を2で割れ 5 3 100 101 CPU メモリ 5, 3 50 51 52 ・ ・簡易な例題 ~ 二値の平均
100番地の数値を読め 101番地の数値を読め 数値を合計せよ 102番地の数値を書け 数値を2で割れ 5 3 100 101 CPU メモリ 5+3 ⇒ 8 50 51 52 ・ ・簡易な例題 ~ 二値の平均
100番地の数値を読め 101番地の数値を読め 数値を合計せよ 102番地の数値を書け 数値を2で割れ 5 3 100 101 CPU メモリ 8 ÷ 2 ⇒ 4 50 51 52 ・ ・簡易な例題 ~ 二値の平均
100番地の数値を読め 101番地の数値を読め 数値を合計せよ 102番地の数値を書け 数値を2で割れ 5 3 100 101 CPU メモリ 4 50 51 52 ・ ・プログラムの実際
100番地の数値を読め 101番地の数値を読め 数値を合計せよ 102番地の数値を書け 数値を2で割れ 5 3 100 101 CPU メモリ 4 01010101 01001000 10001001 11100101 10001001 01111101 11101100 10001001 01110101 11101000 10001011 01000101 11101000 10001011 01010101 11101100 10001101 00000100 00000010 10001001 11000010 11000001 11101010 00011111 10001101 00000100 00000010 11010001 11111000 10001001 01000101 11111100 11001001 11000011 50 51 52 ・ ・コンピュータの効率利用
• 一般にコンピュータは複数の仕事を同時に こなしている(ように見える). – 音楽聴きながら,ツイートしながら,プログラミ ングする等 • このような同時作業を行っていても,利用 者にストレスを感じさせないような管理を提 供. • 大昔はコンピュータが高価だったので,コ ンピュータの待機時間を最小化するという情報共有
• 複数利用者が同時に参照・更新できるデータや 情報の保存場所を提供. – いわゆるファイルシステム • 昔はOSを直接複数人が利用することで,ファイ ルシステムを共有していた. – 今ならWebメール等によるウエブとメールの情報共有 等. • 今でこそOSを介した直接の共有は少ないが, Webサービスやネットストレージ等の基盤をOSが 与えている. – Webのデータ等はファイルシステムに保存一貫した統一利用法の提供
• メーカーやハードウェアが異なっても,コンピュー タの使い方がほぼ一緒になるための仕組み. – 実際,メーカー毎にコンピュータのハードウェア部品は 異なるが,それを意識することはOSが同じなら少ない. • 「Mac信者」や「Windows教」等の宗教戦争が起 こってしまう所以. – iOS vs Android も • プログラミングレベルは利用レベルより統一され ている. – POSIX等の標準1.3 OSが提供するインタフェース
• ユーザーインタフェース (UI)
– User Interface
• (アプリケーション) プログラミング インタ フェース (API)
– Application Programming Interface
• 通信インタフェース
ユーザーインタフェース
• 人間とコンピュータが対話するための機構 を提供する. • 当然,人間は打鍵,画像,音声等の物理 的な現象しか認知・行使できない. • キーボード,マウス,タッチパネル,画面, スピーカー等を介して,人間が何かすると, 何かが起こるようにOSが管理してくれてい る. • アプリ起動はもちろん,操作中も,実際は OSを介してハードウェアを利用している.カメラ
マイク 画面
タッチ パネル
例
• タブレットで画面をタッチすれば風景を画 面で見られる. – カメラアプリの起動 • マウスポインタがある領域内にある状態で マウスを押すと,音楽が聞こえる. – 音楽プレーヤーの起動 • キーボードから文字を打つと,打った文字 が表示され,編集・保存が可能な状態にな る. – テキストエディタの利用API
• Application Programming Interface
• アプリケーションを開発する際,OSが管理 する資源(後述)を利用するための関数群 をシステムコールと呼ぶ. • ごく普通の計算(例えば平方根の計算や並 び替え等)を行う関数群とシステムコールを あわせて,APIと呼ぶ.
通信インタフェース
• 通信機器管理し通信規約(プトロコル)を有 することで,他のコンピュータや機器と情報 交換を可能とする.
OSの機能 (役割)
• プロセス・リソース管理 • メモリ管理 • デバイス管理 • ファイル管理 • ユーザー管理 • それぞれ適宜来週から解説します.1.4 OSが管理する資源
• OSが管理する機器やプログラム群を「資源」と呼 ぶ. • コンピュータを操作することで,処理ができるの は,OSがこれら資源を管理しているおかげ. • ハードウェア資源 – 入出力装置群,デバイスとも呼ばれる. – キーボード,マウス,ディスプレイ,マイク,スピーカー, タッチパネル,ネットワーク装置(NIC)等 • ソフトウェア資源 – アプリケーションプログラムやデータ – 通常,ファイルシステム上に管理されている.OS管理のシナリオ例
• 利用者が画面をタッチする • OSはカメラアプリが選択されたことを識別 • OSによってアプリの実行が開始される • アプリはOSにカメラ画像を要求する • OSはCCDカメラをオンにして,画像データ をアプリに送る • アプリは画像を画面に表示するようにOS に依頼する. • 画面にアプリの画が表示される.カメラ 画面
タッチ パネル
動作を時系列で表示
画面 カメラ 利用者 1: タッチ () 表示 利用者が 意識できるのは この程度の範囲.タブレット内部での処理群
ファイルシステム アプリ 画面 カメラ OS 利用者 1: タッチ () 1.1: アプリ選択を識別 () <<create>> 1.1.2: 実行() 2: カメラ画像要求 () 2.1: カメラ起動 () 2.2: 画像取得() 3: 画像表示要求() 3.1: 画像描画() 1.1.1: アプリの読み出し ()何のアプリが呼ばれたか認識
画面 カメラ OS
利用者
1: タッチ ()
アプリが起動される
ファイルシステム アプリ 画面 カメラ OS 利用者 1: タッチ () 1.1: アプリ選択を識別 () <<create>> 1.1.2: 実行() 1.1.1: アプリの読み出し ()カメラから画像を取得
ファイルシステム アプリ 画面 カメラ OS 利用者 1: タッチ () 1.1: アプリ選択を識別 () <<create>> 1.1.2: 実行() 2: カメラ画像要求 () 2.1: カメラ起動 () 2.2: 画像取得() 1.1.1: アプリの読み出し () 同じアプリが異なるスマホ(異な るカメラ)で動くのはこのため. カメラの違いをOSが吸収してく画面に画を描く
ファイルシステム アプリ 画面 カメラ OS 利用者 1: タッチ () 1.1: アプリ選択を識別 () <<create>> 1.1.2: 実行() 2: カメラ画像要求 () 2.1: カメラ起動 () 2.2: 画像取得() 3: 画像表示要求() 3.1: 画像描画() 1.1.1: アプリの読み出し ()1.5 OSの利用形態
以下のような分類がされることがある • バッチ処理 • オンライン処理 • 時分割処理 (TSS) • 個人使用バッチ処理は何故必要(だった)か?
• (大昔は)計算機利用料が高価だった. – 大学全体で今のスマホにも劣る計算機が一台 しかない. – 30年以上前の話 • 短期間で大量の処理をしなければならな い. – メガバンクの処理 – センター試験の採点と集計オンライン処理
• 現在のウエブサイトに個々人がブラウザで アクセスする形態に似ている. – OS+オンラインPG ⇒ OS+ウエブサーバー – 端末 ⇒ ブラウザ • 現在ではほとんどウエブアプケーションに 置き換えられているが,残存するものもあ る. – 駅窓口の端末 – 航空会社の端末TSS
• Time Sharing System
• 詳細は7,8回で再度,解説する. • コンピュータ(正確には1個のCPU)は,ある一瞬 には1個の処理しかできない. • しかし,非常に短い時間(数マイクロ秒)で処理を 切り替えることにより,人間からはコンピュータが 複数,同時処理しているように見える. – マイクロ = 10-6 秒 • この仕組みを利用して,複数利用者が一台のコ
時分割の考え方
時間の流れ 利用者1 利用者2 利用者3 利用者4 CPU利用時間実例: 0.22秒の間に95回も停止
中略 経過時間 0.22秒 48+47回 アプリは 停止している 合計処理時間 0.1秒 とある文書 処理のアプリ個人利用
• Personal Computer/Computing (PC) • スマートフォン • タブレット • 等,いまどきのコンピュータは個人利用を 想定して作られているのは皆さんご存知の 通り. • 個人利用でさえ同時に複数のアプリを使う ので,TSSの技術が用いられる.1.6 主なOS
• Windows系 – Windows 7, 8 ... – Windows 10 Mobile • UNIX系 – BSD系UNIX – Linux • Android – OS X (Mac OS) • iOS • メインフレーム用利用目的から分類すると
• いわゆるPC向け – Windows 7, 8 ... – Linux – OS X • Mobile device 向け – Windows 10 Mobile – Android – iOS • サーバー (含むクラウド) – Windows サーバー – Linux – UNIX (Solaris等) • 組み込み,ゲーム機器Multicsとクラウド
• Multics とは? – 大昔の失敗したプロジェクト – 情報処理を電気,ガス,水道等と同様のインフラとし て提供する. • ある意味クラウドコンピューティングはMulticsの 再来 – クラウドコンピューティングとは、 – ネットワーク、サーバー、ストレージ、アプリケーション、 サービスなどの構成可能なコンピューティングリソー スの共用プールに対して、 – 便利かつオンデマンドにアクセスでき、最小の管理労 力またはサービスプロバイダ間の相互動作によって 迅速に提供され利用できるという、モデルのひとつで本日は以上
アンケートのほう, よろしくご提出ください