操作系统是一个系统软件,但与其他系统软件和应用软件有很大的不同,就是它拥有自己的特殊性,及基本特征
- 首先共享和并发是相互存在的条件
- 共享和并发是虚拟和异步的前提,是操作系统的两个最基本的特征
1并发
拿餐厅吃饭举例子,餐厅来了三个客人,有这些菜的需求
- **串行:**就是这个餐厅只有一个厨师,想要满足3个客人的要求,只能一道一道的去做菜,先满足完你的三道菜的需求,才能去满足我的三道菜的需求。这种按顺序一道一道满足的模式就是串行处理方式
- 并行:这个餐厅有三个厨师,每个厨师去服务自己的客户,这样就是同时满足三个客户的需求,这种处理模式就是并行处理方式
- 并行 两个或者多个事件在同一个时刻发生
- 并发:餐厅还是只有一个厨师,但是我给其中一个客户做了一道菜,然后就转向给另一个用户做菜,按照一种时间片的概念去处理,每个时间片可能处理的事情是不一样的
- 并发就是两个或者多个事件在同一个时间间隔内发生,这些事情在宏观上是同时发生的,在微观上是交替发生的,操作系统的并发性指系统中同时存在多个运行的程序
- 如果厨师做菜的速度非常快,1分钟就能出一道菜,那么我上了一道菜,然后过了3分钟又出了一道菜,那么在现实生活中,我们就会感觉这个厨师就是专门在为我们服务,将这种思想用到计算机中,我们知道CPU的处理速度是非常快的,基本是以ns为单位的处理速度,所以在CPU在并发的执行计算机任务,在我们主观的意识中,我们就感觉这个CPU是在并行的处理任务
- 而我们操作系统是伴随着多道程序技术出现的,在如今的计算机中,一般都是多核CPU,即在同一个时刻可以真正的并行执行多个程序,比如我们的计算机是8核的,代表我们的计算机可以同时并行执行8个程序,但是事实上我们的计算机执行的程序远远不止8个,所以并发技术也是必须要存在的
2共享
- 资源共享及共享,是指系统中的资源可以供多个内存中并发执行的进程共同使用
- 共享可以分为 互斥共享和同时共享
(1)互斥共享
- 计算机中的某个资源在一段时间内只允许一个进程进行访问,别的进程是没有使用权的
- 临界资源:在一段时间内只允许一个进程访问资源,计算机中大多数的物理设备及某些软件的栈,变量,表格都可能属于临界资源,需要被互斥共享
- 举个例子:比如QQ和微信视频,在同一段时间内,摄像头这个临界资源只能分配给其中一个进程
(2)同时共享
- 计算机中某个资源在一段时间内可以同时允许多个进程访问
- 同时共享通常要求一个请求分为几个时间片段间隔的完成,即交替进行 “分时共享”
- 这里的同时指的是宏观上的同时,在微观上可能是交替进行访问的,只是在CPU处理速度很快,我们感觉不到,所以是觉得在同时进行
- 举个例子:比如QQ在发送文件A,微信在发送文件B,宏观上两个进程A和B都在访问磁盘,在我们看来是同时进行的,但是在微观上两个进程A和B是交替进行访问磁盘的,只是时间太短,CPU处理速度太快,我们感觉不到。
- 注意:有时候多个进程可能是真的在同时进行资源的访问,比如我们听歌的时候,可以在耳机中听到QQ音乐和网易云音乐的歌声
(3)并发性和共享性互为存在条件
3虚拟
多道程序设计:是指在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始到结束之间的状态。这就称为多道程序设计。多道程序技术运行的特征:多道、宏观上并行、微观上串行。
- 虚拟就是将一个物理上的实体变为若干个逻辑上对应的对应物
- 物理实体是实际存在的,而后者是虚的,是用户感觉上的事物
- 虚拟技术:用于实现虚拟的技术
- 虚拟处理器(CPU):通过多道程序设计技术,采用让多道程序并发执行的方法,分时来使用一个CPU,实际物理上只有一个CPU,但是用户感觉到有多个CPU
- 虚拟存储器:从逻辑上扩充存储器容量,用户感觉到的但实际不存在的存储器
- 虚拟设备:将一台物理设备虚拟为逻辑上的多台设备,使多个用户在同一时间段内访问同一台设备,即同时共享,用户宏观上感觉是同时的,但实际上是微观交替访问同一台设备的
- 可分为
- 时分复用技术:如处理器的分时共享
- 空间复用技术:如虚拟存储器
4异步
- 异步:多道程序环境允许多个程序并发的执行,但由于资源有限,如CPU只有一个,进程的执行并不是一贯到底的,而是走走停停,以不可预知的速度向前推进
- 比如A进程正在占用CPU计算,B进程这时也想占用CPU计算,B进程只有等,等A进程算完了,A进程去访问磁盘资源了,这时B进程再占用CPU进行计算,B进程还没计算完,A进程从磁盘取出资源了,A进程发现B这时在占用CPU,这时A进程就需要等待,等B算完后再继续到CPU中进行计算。由于每个进程占用资源的时间不固定,所以进程的执行以不可预知的速度前进