并发和共享,是操作系统最基本的两个特征。
一、并发
概念:两个或者多个事件在同一时间间隔内发生。这些事件宏观上同时发生,但微观上是交替发生,操作系统的并发性指系统中同时存在着多个运行的程序。
易混淆概念——并行:两个或多个事件同一时刻同时发生。
区别:
并发是指一个处理器同时处理多个任务。
并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。
eg:在如今的计算机中,一般都是多核cpu的,即在同一时刻可以并行执行多个程序,比如我的计算机是8核的,我的计算机可以在同一时刻并行执行8个程序,但是事实上我们计算机执行的程序并不止8个,因此并发技术是必须存在的,并发性必不可少。
操作系统是伴随着“多道程序技术出现的”,因此操作系统和并发是一同诞生的。
二、共享
概念:共享级资源共享,指系统中资源可供多个并发执行的进程共同使用。
(1)互斥共享
计算机中的某个资源在一段时间内只能允许一个进程访问,别的进程没有使用权。
临界资源(独占资源):在一段时间内只允许一个进程访问的资源,计算机中大多数物理设备及某些软件中的栈、变量和表格都属于临界资源,它们被要求互斥共享。
(2)同时共享
计算机中的某个资源在在一段时间内可以同时允许多个进程访问。
同时共享通常要求一个请求分为几个时间片段间隔的完成,即交替进行,“分时共享”。
这里的同时指在宏观上是同时的,在微观上是交替进行访问的,只是cpu处理速度很快,我们感觉不到,在宏观上感觉是在同时进行。
举个例子:比如QQ在发送文件A,微信在发送文件B,宏观上两个进程A和B都在访问磁盘,在我们看来是同时进行的,但是在微观上两个进程A和B是交替进行访问磁盘的,只是时间太短,cpu处理速度太快,我们感觉不到。
注意:有时候多个进程可能真的是在同时进行资源访问,比如玩游戏时可以放音乐,游戏声音和音乐声音都能听见。
(3)并发性和共享性互为存在条件
三、虚拟
概念:虚拟是把一个物理上的实体变为若干逻辑上的对应物。物理实体(前者)是实际存在的;而后者是虚的,是用户感觉上的事物。
空分复用.eg:虚拟存储器。从逻辑上扩充存储器容量,用户感觉到的但实际不存在的存储器。
时分复用.eg:虚拟处理器(CPU):通过多道程序设计技术,采用让多道程序并发执行的方法,分时来使用一个CPU,实际物理上只有一个CPU,但是用户感觉到有多个CPU同时为自己服务。
四、异步
概念:多道程序环境允许多个程序并发执行,但由于资源有限,如cpu只有一个,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。
同步和异步
同步:是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么,这个进程将会一直等待下去,直到收到返回信息才继续执行下去。
特点:①同步是阻塞模式 ②同步是按顺序执行,执行完一个再执行下一个,需要等待,协调运行
异步:是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。
特点:①异步是非阻塞模式,无需等待 ②异步是彼此独立,在等待某事件的过程中,继续做自己的事,不需要等待这一事件完成后再工作。线程是异步实现的一个方式。
eg:两个进程A和B并发执行,因为系统资源有限,比如A进程正在占用CPU计算,B进程这时也想占用CPU计算。那有可能是A先抢占,也有可能是B先。(这里假设是A抢占到了)那进程B只有等进程A算完了(比如去读取磁盘),才能再占用CPU进行计算。而进程A从磁盘取出资源了,A进程发现B这时在占用CPU,这时A进程就需要等待,等B算完后再继续到CPU中进行计算。由于每个进程占用资源的时间不固定,所以进程的执行以不可预知的速度前进。
并发性和异步性
失去了并发性,系统只能串行地处理各个进程,每个进程的执行都会贯彻到底,也就不存在异步。
只有系统拥有并发性,才有可能导致异步性。