操作系统的发展过程
先上图:
下面就展开讲讲上面的图
为啥会出现批处理,当然是因为手工操作太费劲了,浪费了一大波资源,有人看不下去了(至于是谁看不下去了我也不知道hhhhh),就出现了单道批处理器系统
这个在一定程度对资源的利用率有一定提升,但是人开始越来越不满足,为什么不能同时做很多件事嘞,CPU有大量的时间是在空闲等待I/O完成,资源利用率还是很低然后就有了多道批处理器系统
这个的出现对计算机来说是一个质的飞跃,可以进行多程序并发执行,共享计算机资源,资源利用率大大提升,并发也就是在这个时候被提出,尽管资源利用率提高了,但是没有人机交互啊,这也不行吧
紧接着分时操作系统就出生了,计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。 欸,虽然但是,确实解决了人机交互问题,但是它不会变通啊,如果我有紧急需要立马处理的任务,它是不会给我开后门的,所以人还是不满意,又引出实时操作系统
实时操作系统就比较懂事,会做人,它能够优先响应一些紧急任务
其他剩余的三种没意思,没啥好说的,不说了
作业,欸,又跑出一个作业,但是这个作业非彼作业啊
作业:用户在一次计算过程中或一次事务处理过程中要求计算机系统所做的工作的集合
这么干巴巴说一个定义,我自己都懵,得,白说了,不过不急,后面会针对作业,进程,线程这三个东西举个具体的例子,相信你看了就会明白了,现在你就暂且不管也没事儿
操作系统的基本特性
- 并发
- 共享
- 虚拟
- 异步
并发和共享是两个最基本的特征
下面来重点讲讲这四个特性!
并发
两个或多个事件在同一时间间隔发生的,宏观上的同时发生,而在微观上是交替发生的
抠字眼,是同一时间,而我们还有一个词,并行
并行
指两个或多个事件在同一时刻同时发生
知道了什么是并发,我们再看什么是操作系统的并发性
指计算机系统同时存在着多个运行着的程序
一个单核处理机同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替进行(和前面讲过的知识又能联系起来了,操作系统的作用就是负责协调管理计算机资源)
因此操作系统其实就是伴随着“多道程序技术”而出现的,和程序并发一起出现
共享
共享资源,是指系统中的资源可供内存中多个并发执行的进程共同使用
分为两种共享方式
- 互斥共享:一个时间段内只允许一个进程访问该资源(后面也会说到,这种资源也叫做临界资源)
- 同时共享:允许一个时间段多个进程“同时”对它们进行访问
举个例子帮助理解一下:
所谓的互斥资源就好比摄像头,你在微信中使用摄像头和别人视频,在同一时刻你就不能在QQ上使用摄像头
而同时共享,你可以同时使用微信和QQ发送文件,但是一定要注意,不是真的同时发送,而是这两个进程在交替着访问硬盘
并发和共享的关系
还是QQ和微信访问硬盘,要发送文件的例子
如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发
如果失去并发性,则系统中只能有一个进程运行,则共享性失去存在意义
所以,并发和共享是互为存在的条件
虚拟
把一个物理上的实体变为若干个逻辑上的对应物
个人觉得虚拟特性是不容易理解的
解释一下上面的两个高深技术
空分复用技术:不知道大家使用电脑的时候会不会有一个疑问,
魔兽世界需要4GB的运行内存,QQ需要256MB的内存,迅雷需要256MB的内存,网易云音乐需要256MB的内存……
我一个4GB内存的电脑是怎么让它们同时跑起来的,根本不够分吧,这便是虚拟存储技术的空分复用技术
时分复用技术:既然一个程序需要被分配CPU才能正常执行,那为什么单核CPU的电脑还能同时运行这么多个程序嘞?
那就要说到时分复用技术的妙了,处理机在各个微小时间段其实是交替为各个进程服务的
所以说,如果失去了并发性,则一个时间段只运行一道程序,那虚拟性就失去了意义
异步
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯执行,而是走走停停,不是一贯到底的执行
显然,如果失去了并发性,则系统只能串行地处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性才有可能导致异步性。