操作系统是用来做什么的?为什么需要操作系统?这又是怎样实现的?

计算机中的资源可以归类为:处理器、存储器、IO设备、文件 四类

在没有操作系统的情况下,上层的应用程序需要直接与硬件进行交互,这就需要编写程序的人对硬件足够了解,这显然不符合计算机学科中分层的理念,所以我们需要将对于硬件的管理以及操作做一个抽象,只用给用户(编程人员)提供接口调用即可。

image.png

除此之外,对于计算机用户而言,需要在计算机上存储文件、读写文件 等 对文件的操作,如果没有做抽象的话,就需要用户自己确定文件所在内存地址,这是很不方便的,所以需要有一个软件能够将这个操作给抽象出来,所以又需要在上层加上一个 文件管理……

历史

裸机

此时未配置操作系统,所以采用 人工输入的方式,但是人工输入方式不靠谱,且很慢,所以有了 脱机输入/输出的方式

批处理系统

晶体管造价很贵,应该提高利用率,所以应该尽量减少处理器的空闲时间,于是我们让处理器一个作业紧挨着一个作业的执行,通过一个监视程序实现任务的调入和调出,也就是最初的 单道批处理系统。
单道批处理系统虽然解决了人机矛盾(人工与机器速度不匹配,且人工不靠谱的问题),但是无法将计算机的硬件充分利用起来,因为为了满足多种任务的需求,计算机配备了多种IO设备,但是一次只能运行一个任务,该任务也很难充分利用这些设备,就会导致设备的空闲。
为了提高资源利用率呢,我们就想,是否能一次运行多个任务,在一个任务处于某种等待状态或者结束时,我们才进行切换到另一个任务进行运行,这样就可以提高CPU的利用率了,这就是 多道批处理系统。
多道批处理系统呢,提高了系统资源利用率和吞吐量,但是每个任务执行时间是不能确定的,可能久久不能轮到某个任务的执行,就会导致某些任务很久才能完成。
操作系统.jpg

分时系统

基本特征

4个基本特征的推理

主要功能

结构设计