ソフトウェアアーキテクチャ No.1 オペレーティング・システム 萩野 達也 慶應義塾大学 環境情報学部 2015/4/13 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 1 / 20 主題と目標 コンピュータの基本ソフトウェアであるオペレーティングシステム (OS) およびその上のミドルウェアとして重要なソフトウェアシステ ムについて,その仕組みについて学習する. 取り扱うソフトウェアシステム 電子メールシステム World Wide Web 文書清書システム プログラミング言語 (C, LISP) Java Virtual Machine データベース管理システム 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 2 / 20 授業予定 1 オペレーティングシステム 8 ネットワークシステム 2 ファイルシステム 9 電子メールシステム 3 シェルの働き 10 分散ファイルシステム 4 文書清書システム 11 World Wide Web 5 C 言語コンパイラ 12 ウインドウシステム 6 LISP 処理系 13 データベース管理システム 7 Java 仮想機械 14 まとめ 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 3 / 20 オペレーティングシステム OS = Operating System 基本ソフトウェア ほとんどすべてのコンピュータに入っている PC で利用されている OS Windows: 95, 98, Me, XP, Vista, 7, 8 Mac OS: 9, X UNIX: Linux, FreeBSD, NetBSD, OpenBSD, Solaris その他の OS 携帯電話の OS: iOS, Android 車に搭載する OS: iTron 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 4 / 20 質問 自分の PC に入っている OS はなんですか? OS はコンピュータにとって空気あるいは水のどちらと言えますか? OS を利用している実感はありますか? OS に必要なこと (要求されること) は何でしょう? 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 5 / 20 ソフトウェアの階層 アプリケーション ライブラリ シェル ミドルウェア オペレーティングシステム デバイスドライバ ハードウェア 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 6 / 20 オペレーティングシステム コンピュータ上で動作しているすべてのプログラムを制御 プログラムに対してさまざまなサービスを提供 ハードウェアに命令を追加した仮想機械の提供 コンピュータ上の資源の管理 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 7 / 20 ミドルウェア アプリケーションとオペレーティングシステムの間に位置 OS では提供されていないさまざまなサービスを提供 アプリケーションが利用するソフトウェア群 ウィンドウシステム データベース管理システム シェル (通常はミドルウェアとはいわれない) Web サーバ (ミドルウェア的な役割) センサーミドルウェア 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 8 / 20 ライブラリ 便利な関数の集まり 別のソフトウェアに組み込まれて利用されるソフトウェア ファイル操作ライブラリ 数値計算ライブラリ 統計処理ライブラリ 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 9 / 20 アプリケーション 実際にユーザが用いるプログラム アプリケーション = 応用 種類 言語処理系 テキスト編集,画像編集,動画編集 システムアプリケーション (バックアップ,クリーンアップなど) メールや Web ブラウザなどのネットワークアプリケーション シュミレーションや数値解析などの科学計算アプリケーション 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 10 / 20 オペレーティングシステムの役割 ハードウェアの制御調停 プログラムの分離 マルチプログラミング メモリ管理 ファイルシステムの提供 ネットワークシステムの提供 プログラム間の通信の提供 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 11 / 20 ハードウェアの制御調停 2 つのアプリケーションが 1 つのハードウェアを直接制御すると衝 突が発生する. OS が調停 アプリケーションに直接ハードウェアを制御させない すべて OS 経由でハードウェアを制御 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 12 / 20 プログラムの分離 複数のプログラムの動作を分離 プログラム毎にメモリ空間を提供 メモリ空間を保護 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 13 / 20 マルチプログラミング 1 つの CPU で同時に複数のプログラムを仮想的に動作させる 走らせるプログラムの数は CPU コア数に制限されるわけではない CPU 時間をプログラムに割り当てる スケジューリング 優先制御 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 14 / 20 メモリ管理 プログラムが必要とするメモリを管理 不要なメモリを回収し必要とするプログラムに割り当てる 仮想記憶の提供 利用頻度の少ないメモリは外部記憶に追い出す 必要な時に外部記憶から読み込む プログラムは気にしなくて良い (比較: プログラムオーバーレイ) 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 15 / 20 ファイルシステムの提供 ディスクなどを複数のアプリケーションで共有 ディスク上にファイルシステムを構成 効率が良いようにバッファリング ファイルシステムの種類 FAT (Fast Allocation Table) NTFS (NT File System) HFS (Hierarchical File System) UFS (UNIX File System) LFS (Log File System) 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 16 / 20 ネットワークシステムの提供 ネットワークパケットの処理 プログラムからネットワークに送る ネットワークから受け取りプログラムに渡す TCP/IP 制御 フラグメンテーション 再送 順序に並び替え ウインドウ制御 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 17 / 20 プログラム間の通信の提供 プログラム間のデータの受け渡しの仲介 パイプ 共有メモリ セマフォ ロック 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 18 / 20 オペレーティングシステムの構造 ブートストラップ デバイスドライバ スケジューリング メモリ管理 ファイル管理 プロセス管理 ネットワーク管理 システムコール処理 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 19 / 20 まとめ オペレーティングシステム ハードウェアの制御調停 プログラムの分離 マルチプログラミング メモリ管理 ファイルシステムの提供 ネットワークシステムの提供 プログラム間の通信の提供 萩野 達也 (慶應義塾大学 環境情報学部) ソフトウェアアーキテクチャ 2015/4/13 20 / 20
© Copyright 2024 ExpyDoc