计算机基础之二:操作系统

时间:2021-06-11 14:28:31

一、为什么要有操作系统

计算机的使用归根结底是对计算机硬件的使用,一个应用程序如果要调用底层硬件资源,就需要对硬件进行管理和优化,如果每一个应用程序都需要单独的代码来调用和管理硬件,工作量不仅繁重,而且重复性太强,费时费力。除此之外,程序员也无法对所有硬件都了如指掌,所以需要有一个操作系统来管理计算机硬件,给程序员提供一个清晰的计算机模型,这样,程序员就可以专注于应用程序的开发而无需考虑底层硬件的管理。

 

二、什么是操作系统

1、操作系统的位置

计算机基础之二:操作系统

操作系统介于底层的计算机硬件和上层的应用程序之间,是一个特殊的软件。操作系统主要由操作系统内核用户接口程序构成,其中操作系统内核运行于内核态,负责管理计算机硬件,用户接口程序运行于用户态,主要为程序员编写的应用程序提供系统调用接口,所以说操作系统完全运行于内核态是不准确的。

2、操作系统的功能

①隐藏了抽象的硬件调用接口,为程序员提供了简单的系统调用接口,使得程序员可以专注于应用程序的开发;

②将各应用程序对硬件的竞态请求变得有序化(通过操作系统中一段汇编语言写的代码)。

三、操作系统的发展

操作系统的作用是控制硬件,所以操作系统的发展史和计算机硬件的发展史是分不开的。

第一代计算机:真空管和穿孔卡片

当时的计算机并没有“操作系统”的概念,所有的程序是由纯粹的机器语言编写的,可以直接控制硬件,程序员要将成千上万的电缆插到插件板上组成电路来控制计算机的功能。

后期出现了穿孔卡片,可以将程序通过打孔写在卡片上,使用插入机读取数据而不需要使用插件板。

优点:程序员可以在一定时间里独享计算机的全部硬件资源,也可以随时对程序进行调试

缺点:一段时间内只有一人可以使用计算机,浪费计算机资源

第二代计算机:晶体管和批处理系统

当时计算机造价昂贵,所以人们想方设法要减少对计算机资源的浪费,由此而生的便是批处理系统

计算机基础之二:操作系统

计算机基础之二:操作系统

如图,程序员将穿孔卡片放入1401机进行录入,在收集一定数量的程序后,将磁带放入7094机进行运算,这个时候的运算仍然是按顺序也就是串行的,全部程序运算完成后,结果录入磁带,在1401机的打印机中打印出运算结果。

优点:提高了对计算机利用的效率

缺点:

1、整个计算流程仍然需要人的参与,拉低了整体效率

2、运算过程仍然是串行

3、程序员由原来的独享计算机资源变成与其他人共享计算机资源,等待时间也随之延长,除此之外,如果程序出现错误,程序员无法实时调控,只能在打印结果出现之后再进行调试

第三代计算机:集成电路芯片和多道程序设计

第三代计算机陆续解决了第二代计算机遗留的问题,其中比较重要的是多道技术。

由于CPU和硬盘速度相差巨大,CPU等待硬盘输入的过程中,虽然对用户来说时间很短,但对CPU来说,已经是相当漫长,这时候CPU的利用率就会大大下降,由此催生了多道技术。

多道技术中的多道指的是多个程序,多道技术的实现是为了解决多个应用程序竞争或共享同一硬件资源时的有序调度问题,解决方式即多路复用,多路复用分为空间和时间上的复用。

空间上的复用:将内存进行分割,使得内存可以在同一时间放入多道程序

空间上的复用最大的问题在于要对内存进行分割,而且要在硬件层面实现(物理级别的隔离),由操作系统控制,否则一个程序可以访问另一个程序的内存,这样的后果一方面会丧失安全性,例如QQ可能会拿到系统的所有权限,另一方面会丧失稳定性,如果某个程序崩溃导致内存被收回,可能会把其他程序的内存也收回。

时间上的复用:当一个程序占用时间过长,或者在等待I/O时,CPU可以切换至另一个程序,以提高CPU利用率。