1.オペレーティングシステムの概要
1.1オペレーティングシステムとは
1.1.1定義
オペレーティングシステム(オペレーティングシステム、OSと呼ばれる)は、コンピューターのハードウェアとソフトウェアのリソースを管理するコンピュータープログラムです。オペレーティングシステムは、メモリの管理と構成、システムリソースの需要と供給の優先順位の決定、入力デバイスと出力デバイスの制御、ネットワークの操作、ファイルシステムの管理などの基本的なタスクを処理する必要があります。
オペレーティングシステムは、CPU、メモリ、さまざまな周辺機器を管理し、アプリケーションソフトウェアを管理および保守できるソフトウェアです。
1.1.2機能
プログラム管理、リソース管理、機器管理、ファイル管理
アップとダウンのリンク:基盤となるハードウェアを上位レベルのソフトウェアに接続します。
リソースには、組み込みのCPUと周辺機器が含まれます。
オペレーティングシステムは、CPUをプロセスとして、ディスクをファイルとして、メモリをアドレス空間として抽象化します。
1.1.3構成
CPU
各CPUには、実行可能な特定の命令セットがあります。したがって、x86 CPUはARMプログラムを実行できず、ARMCPUはx86プログラムを実行できません。実行またはデータを取得するためにメモリにアクセスすると、命令を実行するよりも時間がかかるため、すべてのCPUには、キー変数と一時的な結果を格納するための内部レジスタが含まれています。
羊
マルチスレッドは、真の並列処理を提供しません。一度に実行されているプロセスは1つだけです。
メモリシステムは階層構造を採用しています。最上部のメモリは速度が最も速いですが、容量が最小でコストが非常に高くなります。階層構造が低いほど、アクセス効率が遅くなり、容量が大きくなりますが、コストは安くなります。 。
メモリの最上位層はCPUのレジスタであり、アクセス時間は最短ですが、容量は最小です。
レジスタの下にはキャッシュがあります。メインメモリは64バイトのキャッシュラインに分割されています。最も頻繁に使用されるキャッシュラインは、CPU内またはCPUに非常に近い場所にあるキャッシュに格納されます。
ランダムアクセスメモリ(RAM):メインメモリとも呼ばれる最も重要なタイプのメモリは、CPUと直接データを交換する内部メモリです。いつでも読み取りと書き込みが可能で(更新時を除く)、非常に高速で、通常、オペレーティングシステムやその他の実行中のプログラムの一時的なデータストレージメディアとして使用されます。RAMが動作しているときは、いつでも指定されたアドレスから情報を書き込んだり(格納したり)、読み取ったり(取り出す)ことができます。ROMとの最大の違いはデータの変動性です。つまり、電源を切ると保存されたデータは失われます。RAMは、プログラム、データ、および中間結果を一時的に保存するために、コンピューターおよびデジタルシステムで使用されます。
最新のCPUは、2つのキャッシュを設計しています。第1レベルのキャッシュまたはL1キャッシュは、常にCPU内に配置され、デコードされた命令をCPUの実行エンジンに転送するために使用されます。これらの頻繁に使用されるキーワードの場合、ほとんどのチップには2番目のL1キャッシュがあります。一般的なL1キャッシュのサイズは16KBです。さらに、多くの場合、第2レベルのキャッシュ、つまりL2キャッシュがあります。これは、最近使用されたキーワードを通常メガバイト単位で格納するために使用されます。L1キャッシュとL2キャッシュの最大の違いは、遅延があるかどうかです。L1キャッシュへのアクセスに遅延はありませんが、L2キャッシュへのアクセスには1〜2クロックサイクルの遅延があります。
上記の階層に、次の層は、主記憶メモリシステムの主要な力である。メインメモリは、通常、RAM(Random Access Memory)と呼ばれている。
メインメモリに加えて、多くのコンピュータはまた、少量を有します不揮発性ランダムメモリのメモリを取ります。不揮発性ランダムアクセスメモリは、電源をオフにしても内容が失われないという点でRAMとは異なります。ROM(読み取り専用メモリ)の内容は、一度保存されると変更されません。それは非常に速くて安いです。
ROM(読み取り専用メモリ):読み取り専用メモリは半導体メモリの一種で、一度保存すると変更や削除ができず、電源を切っても内容が消えないのが特徴です。電子システムやコンピュータシステムでは、通常、頻繁に変更する必要のないプログラムやデータを保存するために使用されます。
次のレベルはディスク(ハードディスク)です。
ソリッドステートディスク(SSD)はディスクではありません
周辺機器
エージェントのレイヤーを追加することで、複雑な問題を解決できます。これは、コンピューターや人間社会にとって普遍的なソリューションです。
デバイスコントローラーの種類はそれぞれ異なるため、それを制御するにはさまざまなソフトウェアが必要です。コントローラとの情報交換に特化し、コマンドを送信して命令を処理し、応答を受信するソフトウェアをデバイスドライバと呼びます。
1.1.4カテゴリー
オペレーティングシステムはアプリケーションソフトウェアの下にあり、アプリケーションソフトウェアのサービスサポートを提供します。
外部的に知られているもの:シェル(GUI、コマンドラインなど)
内部的に知られているもの:カーネル(カーネル)
KERNELは、シェルの下にある研究の焦点です。
1.1.4.1カーネルオペレーティングシステムの内部コンポーネント
主に含まれるもの:
CPUスケジューラー
物理メモリ管理
仮想メモリ管理
ファイルシステム管理
割り込み管理とデバイスドライバー
1.1.5OSカーネルの機能
1.複数のプログラムを同時に実行する並行
コンピュータシステムが存在し、OS管理とスケジューリングの
同時および並列の区別が必要
同時:時間、複数のプログラムが
並行して実行されている:時点
2.共有
「同時」アクセス
排他的共有
同時に共有
3。マルチプログラム設計技術の仮想
使用。各ユーザーは自分専用のコンピューターがあると感じます
。4。非同期
プログラムの実行は、最後まで一貫していませんが、停止して実行し、進行速度は予測できません。オペレーティング環境が同じである限り、OSはプログラムの結果も同じであることを確認する必要があります
1.2なぜ学習システム
1.2.1統合コース-多くの異なる教室を組み合わせる
*プログラム設計言語
*データ構造
*アルゴリズム
*コンピューターアーキテクチャ
*材料
*オペレーティングシステムの概念と原則、ソースコード
*スキル
*オペレーティングシステムの設計と実装
1.2.2オペレーティングシステムを学ぶ理由
1.2.2.1要件
オペレーティングシステムは絶えず開発されており、産業用制御などの分野で強い需要があります
オペレーティングシステムのコードは信頼性が高く効率的でなければなりません。
オペレーティングシステムのエラーは大きな損失を引き起こす可能性があります。
オペレーティングシステムはシステムセキュリティの基盤です。
1.2.2.2役割
オペレーティングシステムはクールで、便利で、やりがいがあり、
能力を向上させるのが難しい:
コードの量が多く、目標はコアをマスターすることです。
オペレーティングシステム管理の同時実行性。
オペレーティングシステムコードはハードウェアを管理します。
優れたハードウェア管理。
合理的なリソース割り当て。
それがどのように機能するかを理解する
オペレーティングシステムは、
スペースと時間、
パフォーマンスと予測可能性、
公平性とパフォーマンスを比較検討する必要があります。
1.2.2.3重要性
コンピュータサイエンス研究の
基礎の1つコンピュータシステムの基本的なコンポーネントは、
ハードウェアとアプリケーションの要件の開発によって推進されています
1.2.2.4学者と産業の継続的な進歩
1.3オペレーティングシステムを学ぶ方法
概念と原則を理解する
実践:
ニーズに応じてコードを読む
1.4オペレーティングシステムの例
UNIXファミリ:FreeBSD、NetBSD、OpenBSD、Mac OSなど。
詳細:Unixの歴史
Linuxファミリ
詳細:Linuxバージョンファミリ
Windowsファミリ
特定のアプリケーション:気象、産業用制御、その他のシステムの分析
1.5オペレーティングシステムの歴史
継続的な開発:
トランジスタ、CPU、ハードウェア、周辺機器、ネットワークの研究開発と開発
初期のコンピュータプログラムとデータ転送テープは
、プログラムシーケンスによる処理のオペレーティングシステムのみの機能をマルチプロセッシング
にロードして、コンピュータリソースをより有効に活用し、ユーザーとの対話を向上させるために、タイムシェアリングシステム
PCがありました。オペレーティングシステム、
マルチコア、マルチプロセッシング、
クラウドオペレーションの出現
1.5.1進化
ホスト型コンピューティング->パーソナルコンピュータコンピューティング->ネットワークコンピューティング->パーベイシブコンピューティング(クラウドコンピューティング、モバイルコンピューティング)
1.6オペレーティングシステムの構造
(1)シンプルなオペレーティングシステム:MS-DOSには、モジュールのないシングルコアがあります(関数呼び出し、欠点、複雑、密結合、攻撃に対して脆弱な方法で内部的にアクセスされます)
(2)マイクロカーネル:カーネル関数を可能な限りユーザースペースに移植します。欠点はパフォーマンスが低いことです。
(3)外側のコア、内側のコアは1つに分割され、1つはハードウェアを処理し、もう1つはアプリケーションを処理します。
(4)仮想マシン
VM(仮想マシン)-> VMM(仮想マシンモニター)->物理マシンハードウェア、複数のオペレーティングシステムがハードウェアリソースを共有
ハイパーバイザーとも呼ばれるVMM(仮想マシンモニター)は、すべてのハードウェアリソースを仮想化します。