最近慢慢的把操作系统那块的东西捡起来,看的比较快了,因为里面的东西都没有全部忘记。为了方便每次查找和遗忘,我想把这个整体简单的一些知识做一些梳理,细节不会讲很多,因为这样才会每次去想这个到底是什么。具体的知识梳理我看的就是学校发的教材《操作系统原理分析》。先前看到了winter大神的【这篇】文章,觉得里面说的建立自己的知识体系结构等等,我觉得特别棒。
操作系统的概述
先问自己几个问题:
操作系统是什么?
操作系统的功能是什么?
操作系统是怎么发展的?
操作系统有哪些类型?
linux的优越性能?
如果都答出来了,下面的就可以忽略啦。
操作系统是什么?
操作系统是一组控制和管理计算机系统资源的程序集合,它控制和协调并发起活动,为用户提供良好的接口。
操作系统有4个特征:并发性,共享性,不确定性,虚拟性。下面是具体的这几个特点的解释。
并发性
并发性是指计算机中若存在干个程序的运行,系统中多个活动同时进行,I/O操作和计算机操作重叠。目的是改善系统资源的利用率,提高了系统的吞吐量,但是它也使系统复杂话了,操作系统必须具有控制和管理各种并发活动的能力。
共享性
共享性是指多个计算机任务对系统资源的共同享用,操作系统程序与多个用户程序公用系统中的各个资源,比如中央处理器,内外存储器,外部设备,文件等。
不确定性
在多道程序中环境下,操作系统的运行实在随机的环境下运行的。
这里的随机是指:操作系统不可能对所运行的程序的行为和硬件设备的情况作出任何事先假定。
虚拟性
所谓的虚拟,是指的把一个物理上的实体变为若干的逻辑上的对应物。物理实体是实的,而后者是虚的,相应的,用于实现虚拟的技术,成为虚拟技术。
比如在操作系统中,分别用来实现虚拟处理机,虚拟内存,虚拟外部设备和虚拟信道。
操作系统的功能
处理机管理
存储管理
设备管理
文件管理
作业管理
处理机管理
为了准确的描述多道系统中多个作业的运行情况,以及系统资源分配的情况,采用什么可以反映与描述计算机程序的执行过程和资源共享和用户随机的特点呢?
操作系统引入了进程的概念,进程是资源分配和独立运行的基本单位和基本实体。
所以我们这里把处理机管理可归结为进程管理。
具体的操作系统其他功能包括进程管理等,下一篇文章单独做记录。
操作系统的发展
无操作系统的计算机系统
早期简单批处理操纵系统
多道批处理系统
操作系统的类型
下面只列举了针对不同的使用环境和对作业的处理方式来分的情况:
单用户操作系统
批处理操作系统
分时操作系统
实时操作系统
通用操作系统
网络操作系统
分布式操作系统
单用户操作系统
一次只能支持一个用户程序的运行。单用户操作系统向用户提供练级的交互环境。比如MS-DOS就是一个典型的单用户操作系统。
批处理操作系统
顾名思义:批处理操作系统就是对多个用户的作业进行成批的处理,批处理系统的设计目标是提到系统资源的使用率和作业吞吐量。
这里面又分为了单道批处理系统和多道批处理系统。
多道批处理系统是每一次把一批经过合理搭配的作业通过输入设备提交给操作系统,并暂时存入外存,等待运行。
当系统需要调度新的作业的时候,就根据运行的情况和用户要求,按照某种调度原则,从外存中挑选一个或者几个作业装入内存运行。
此过程的最大特点就是脱机处理,系统运行的过程中不允许用户与作业交互作业,用户不能直接干预自己的作业的运行,知道运行作业运行完毕。
这是早期的一种大型机用的操作系统。无交互性。
分时操作系统
为克服多道批处理系统的缺点,出现了分时系统。
分时系统是指一台计算机主机连接着多个终端机,可以被多个用户同时处理使用,每个用户通过自己使用的终端采用人机对话的形式控制自己的程序,系统将cpu分成时间片为多个终端用户服务。
目标是:及时响应,并在可能的情况下提高资源的利用率。
实时操作系统
是指对计算机的特定输入做出快速的反应,以控制发出实时信号的对象,即计算机及时响应外部的请求,在规定的短时间内完成这个事情。
实时就是立即,现在的意思。
网络操作系统
是使网络上各计算机能方便而有效的共享网络的资源,为网络用户提供各种软件和规程(如协议)的集合。
信息交换,资源共享,自治,分散。是其特点。
分布式操作系统
由多台计算机组成。这些计算机系统资源可以分布在不同的地理位置,但在逻辑上是一个完整的计算机系统。
统一性,共享性,透明性,自治性,独立性。
与网络操作系统不同,分布式操作系统网络的概念被淡化了,所有资源都用同一方式进行管理和访问,用户不需要知道资源在哪里或者是怎么存储的。
注意这里的透明。网络操作系统的资源是透明的吗?当然不是了。
linux的优越性能
首先linux第一个肯定是最好的就是开源和免费。并且支持多用户,多任务。还有非常好的界面,同时具有字符界面和图形界面。还有很强大的网络功能。支持多种文件系统,支持多种硬件平台。