1.2オペレーティングシステムの定義と役割

  ここでは、オペレーティング・システムの定義と役割を紹介します。 だから何のオペレーティングシステム?その役割を理解するには?それはどのオペレーティングシステムですか? 
  オペレーティングシステムは、コンピュータシステムにおけるソフトウェアシステムである プログラムモジュールが一緒に働く、システム・ソフトウェアは、それが子供たちのプログラムモジュールのいくつかの組み合わせで 、次の機能を実行するために互いに協力します:
  (1)まず、彼らは最小限に抑えるために有効であることができる、 さまざまなハードウェアおよびソフトウェアのリソースと管理コンピュータを整理するための合理的な方法。
  (2)プログラムの実施を支援するために、オペレーティング・システムの ワークプロセスのコンピュータ合理的な組織、制御プログラムの実行のために、プログラムの実行中には、 プログラムに様々なサービスを提供します。 
  (3)第三に、オペレーティングシステムは、ユーザが非常に柔軟な、することができる様々な方法を使用しなければならない 簡単に効率的に実行することができるコンピュータシステム全体の様々な技術を使用して、コンピュータを使用するために。
  これは、オペレーティングシステムの定義です。様々な機能を完了するために、オペレーティングシステム、 キーワードの一部の定義ではどのような子どもたちの私たちの解釈:
  (1)最初のワードが有効です。そして、オペレーティングシステムは、さまざまなリソースを管理しており、 その後、これらのリソースは、CPUのように、CPUは常に我々がいることを願って 、多くのプログラムがCPUであるCPUを利用して自由ではありません 上で実行するために、我々は、メモリ、ディスクがこれらのメモリは、ことを願っています ディスクは、うまく管理することができ、これらの空間を利用することができるはずです。 例えば、さまざまなデバイスが、我々はこれらのデバイスは十分に忙しいことができることを願っています。すべてのすべてで、私たちがしたいと考えて 、コンピュータシステム全体の全体的な効率を改善するために、オペレーティング・システム、オペレーティングシステムの様々な資源の利用率を向上することができます。
  (2)第2のキーワードが合理的です。 資源の管理のために、それは戦術の多様性を持つことになります。 そして、これらのリソースを管理するこの戦略は、それが合理的である、公平ではありませんか?不公平なのであれば、 不合理な、どのような問題のことでしょうか?私たちは、この問題を解決する必要があります。 
  (3)第3のキーを使用するのは簡単です。私たちは、オペレーティングシステムに対処したい 通常、非常に簡単にオペレーティングシステムを使用するインターフェイスの様々なご提供します。 二つの典型的なインターフェースは、コマンドライン、ユーザとに対処するオペレーティングシステムであるユーザ・インターフェース、; そこでは、オペレーティング・システム・ソフトウェアを扱う、ソフトウェアプログラマによって開発されたプログラミング・インターフェースです。 したがって、これら2つのインターフェイスが、使用して簡単に期待している 学習が容易。
  オペレーティングシステムの役割は何ですか? 私たちは、典型的な3つのオペレーティングシステムの役割と結論します:
  (1)オペレーティング・システム・リソース・マネージャの最初の役割。 ビューの何点それから、システムリソースマネージャを操作? ボトムアップ、すなわちからオペレーティング・システムの内部の観点から、オペレーティング・システム・リソース・マネージャです。 チューブそれのオペレーティングシステムのリソースは何ですか?これは、おなじみのハードウェアとソフトウェアのリソースです: CPU、メモリ、私たちの話をI / Oを含むさまざまなデバイス、 デバイス、プリンタ、スキャナはああああ、ディスク、 その上のクロックだけでなく、ネットワークカード、および。 ソフトウェア資源がたくさんありますので、例えば、ディスク上のファイルがたくさんある、 管理情報の多くは、オペレーティング・システムによって管理されているがあります。オペレーティング・システム・リソース・マネージャは、そう。 このような観点から、私たちは、さまざまなリソースを管理する方法を見て: 、リソースを管理するために、オペレーティングシステムをすべての最初は、 リソースのすべての使用状況を追跡する必要があり、これは、データ構造である ソフトウェアのデータ構造、これらの構成要素のためのアルゴリズムは、データ構造は、リソースの使用状況を記録するために使用されます。 そして、データ構造は、どの情報でそれを記録していますか?私たちは、リソースが空いているものを記録することができます どのようなリソースが使用されるように割り当てられている人、うち割り当てられた、とのためにどのくらいの期間、及びそのような情報の使用を許可されています。 あなたがデータ構造をしたら、我々はまた、アルゴリズムを必要とし、それは、資源配分の方針を決定するために、オペレーティング・システムです: 、それによってプロセスに割り当てられたリソースを決定するために、オペレーティング・システムを どのくらい多くのそれを使用するためにそれを使用するために、これはいわゆるれリソース割り当てのポリシー。 静的割り当て戦略:そして、リソース割り当てポリシーは、通常、いくつかの典型的な操作を行います。 プログラムは、それが手を取得する必要があり、さまざまなリソースの実行前に置く、いわゆる静的割り当て戦略は、 その後、実装プロセスにおけるプログラムは、新しいリソースの必要性を排除し、あなたが行うことができます完了しました。 もちろん、ここでのリソースがそれを必要としないとき時々 、このリソースが浪費され、実装プロセスのこの最初のリソースに問題があります。 それはリソースを取っているため、他のプロセスを使用することはできません。したがって、静的割当戦略は全体の資源の浪費につながる、 従って、オペレーティングシステム、またはオペレーティングシステムの大部分の多くは、動的割り当て方式を使用します。 そうであるダイナミックアロケーション戦略 プロセスの実行プロセス、およびリソースが必要な場合、ときに適用。 次に、オペレーティングシステムは、現在のシステムリソースに基づいて説明する だけのリソースがそれに割り当てられたかどうかを決定するためにデータ構造と言われている使用。 次に、このような利点は、リソースの使用率が十分に改善されているということです。 例えば、私たちは、ページメモリ管理システムです:私たちは、典型的な例を与える 、我々はメモリを入れて、メモリが持っていたように、物理メモリは物理ページの多くに分かれて 、我々は非常に単純なデータ構造のビットマップを使用することができます、ビットマップまたはビットマップ 、物理メモリ、1ページに対応する物理メモリの使用状況を記録します。 このページは自由であるならば、我々はこの1が出て分割されている場合、我々は示され、ここでは0としてカウントを頭 1。そして、私たちの割り当てアルゴリズムは、このデータ構造の実装上に実際にあります。 その後、次のリソースの配分と回復を実装する必要があり、 プロセスが実際に選択されたこのリソース割り当て戦略に従って、ポリシーに従って割り当てられているだけで開発し 提供するためのリソースを割り当てるために、このプロセスを、それに割り当てられたどのくらいかを決定するために、その後行きますデータ構造を変更します。 ので、もし例えば、ちょうど今、私たちは、その後、ビットマップは、元置くプロセスに割り当てられたメモリを入れて 、回復に0と1をプロセスがリソースを使用する場合、それらは、システムを回復しますそれが回復しました。 その後の回復時間は、だけでなく、データ構造を変更するために、例えば、オリジナルの1を入れて 0にし、このプロセスのリサイクルは、資源配分を実施することです。 また、オペレーティング・システムはまた、リソースの使用率を向上させるために様々な技術を使用して 、複数のプロセスがそれにリソースを使用する必要がある場合には、だけでなく、資源を保護するために 、プロセスのコースのリソースを使用していません単一のシステムに複数のプロセスがある場合、プロセスの妨害に加えて、 リソースのアプリケーションの下が、オペレーティングシステムを調整する必要があり、競合状況を有しています。 これは、一般的なプロセスのリソースを管理する方法オペレーティングシステムである 我々はもちろん、解決すべきいくつかの特別な問題がある、この一般的なプロセスに沿って、実際には、将来のすべての資源です。 資源管理の観点から、私たちは見て、オペレーティングシステムの5つの基本的な機能をまとめました。
    <1> 時にはCPU管理と呼ばれるプロセス/スレッド管理、それらはプロセスであるため、スレッド 本明細書の方法を実行するスレッド設計の状態を含み、CPUが 同期ミューテックスの動作を制御し、スルー チャネルがスケジューリングします。
    <2> ストレージ管理は、配布および回収収納スペースを行われ 、変換、メモリ保護、拡張メモリアドレスを完了すること。
    <3>ファイルマネージャ、そしてもちろん、 ファイルディレクトリの管理など、 さまざまな操作のアクセス制御管理、ディスクスペース管理ファイル、ファイルそのもの。
    <4> デバイス管理主分配デバイスドライバ、デバイスに、行う 回復処理;それは、例えば、バッファ使用リソース利用装置の様々な改善するために様々な技術が存在する 技術等が、
    <5> 那么一个操作系统在使用过程中,必然提供 给用户非常方便使用的接口,因此呢,作为操作系统呢我们要讨论 接口的,典型的接口,系统 命令,还有编程接口。
  (2)操作系统的第二个作用呢,是向用户提供各种服务。 那么这些服务呢是方便用户使用的,那么我们可以说 操作系统是各种系统服务的一个提供者 那么这个系统服务呢,如果操作系统 提供功能更强大,更容易使用的这样的一系列的命令或系统调用, 我们就认为这个操作系统提供了更好的服务。 那有哪些典型的服务呢?我们来看一下,典型的像进程的创建呀、 执行啊、文件和目录的各种操作呀、各种 I/O 设备的使用啊,还有提供各种各样的统计信息。这里简单地举了几个例子,大家有那么一个感性认识。
  (3)操作系统的第三个作用呢,是对机器硬件的一个扩展。 具有一个扩展能力。 我们来看一个示意。 那么我们在这里头我们知道操作系统 实际上是硬件基础上的第一层软件,那么操作系统完成各种各样的功能。 在操作系统之上是应用程序在执行, 操作系统为应用程序的执行提供了,像我们说的各种各样的接口,用户的接口和编程的接口。 那么这些就组成了一个虚拟机器界面。 操作系统之下呢,是硬件,也就是操作系统屏蔽了一些硬件的细节, 用户程序不需要直接和硬件打交道, 通常它都是通过操作系统来控制这些硬件的 执行,那么这是我们说操作系统是硬件基础上的第一层软件。 那么为什么要把,用操作系统把硬件屏蔽呢?那我们来看一下与硬件相关的一些工作 是非常复杂和繁琐的。 我们有两个操作, 我们现在介绍两个操作,那么想问一下,这两个操作当中的哪一个操作 你觉得简单,你觉得很方便。 第一个操作呢是说 从一个文件当中读一个数据块; 第二个操作呢是说你要移动磁头,要等待这个磁头放下。 那么我们对程序员来讲,第一个操作显然要比第二个操作更简单,更方便使用。 那我们来看看如果你要考虑第二个操作,你要实现第二个操作, 那你要考虑哪些问题,是不是很复杂,是不是很琐碎?我们举一个非常 简单的例子,软盘I/O操作:虽然软盘呢我们现在都很难见到了, 但是因为软盘和硬盘很相似,但是它又非常简单,所以我们就举 它作为例子。 那么硬盘比它要复杂得多,所以我们更多的问题需要去解决。有这么一个非常简单的软盘控制器, 那么这个软盘控制器呢可以执行16条命令。这 16条命令呢实际上的长度是不一样的,是从 1到9个字节的,长度不等。而这些命令包括了什么呢?我们简单来看一下,比如说读写数据, 然后移动磁头臂,格式化磁道, 还有些初始化呀,检测软盘的状态呀,复位呀等等等等。 那么这些呢都是非常细节的一些命令,我们很难记住。那么这些命令呢要把它写入到 设备的控制寄存器里头去来控制这个设备的执行,我们以这个 read命令为例,read命令呢,需要13 个参数,那我们还要记住13个参数,每个参数呢,像read命令的 13个参数呢包括了你要读取的磁盘地址,磁盘的扇区数,磁道的扇区数,还有很多跟 物理介质相关的一些物理特性,软盘的一些物理特性,你都要了解。 因此对于程序员来讲就很不容易来知道每一个细节, 另外呢,这个软盘工作的是不是正常,是不是完成了你的这种控制要求? 因此这个软盘的这个控制芯片呢还会返回给23 个状态或者出错信息,这些信息呢又记录在了7 个字节的地方,7 个字节的设备状态寄存器里头。 那么还要了解这23个不同的状态,什么样的情况,发生了什么事情。 除此之外,还有一个很特殊的, 就是程序员还要保持步进电机的一个开关状态,那么我们知道软盘不能总是在 启动的状态,那么时间久了,软盘就会损坏。因此呢,如果长时间不用,它就会停止, 但是一旦要用,读数据了,要写数据了,要启动这个软盘, 让它旋转到一定的转速那才能去读。因此呢,程序员要注意这样一些步进开关的这种 步进电机一个开关的一些状态,还要考虑这些细节。 从以上介绍其实我们已经看出来了,说如果让我们来编程的时候,考虑这么琐碎、 复杂的事情,那么程序员呢会非常非常头疼。所以我们说与硬件相关的这些工作特别地琐碎, 特别地繁杂,而且不同的硬件呢这些还不一样。 如果我们换了一个驱动器,那么这个命令就可能是另外的样子,每条命令就不一样,参数也是不一样的。 因此,操作系统就做了这样一个事情:操作系统就是在硬件之上, 在应用程序与硬件之间,建立了这么一个等价的一个扩展机器—— 虚拟机,那么通过对硬件的抽象。 那么提高了整个系统的可移植性。 那么对于程序员来讲呢,他去对底层硬件编程 更麻烦,而提供了这样一个操作系统这一层之后,那么 程序员比对这个编程就会比底层硬件的这种更容易。 操作系统起的作用,就是 把这些比较琐碎、复杂的一些硬件屏蔽在它之下, 然后向用户提供了一个非常良好的,非常优雅的、清晰的、 一致的这样一个接口,那么供用户去使用,那么我们说操作系统是对硬件机器的一个扩展 为用户程序提供了一个虚拟机器。
  那么我们最后再 考虑这个操作系统的三个作用,再强调一下:
  (1)第一个作用,就是有效地管理计算机系统的各种资源;
   (2)第二个作用,就是通过接口,命令接口和编程接口,为用户提供各种各样的服务功能;
  (3)第三个作用,就是屏蔽硬件细节,为用户提供一个扩展的虚拟机器。
 
Reference:北京大学陈向群老师操作系统原理课程
Notice:如有侵权,请告知我,我会删除,谢谢!

おすすめ

転載: www.cnblogs.com/morwing/p/11355990.html