-
并发编程基础
-
进程:正在执行的程序,通常来说计算机一般都是能够运行多个程序,也就是说多个进程同时在计算机中进行。
-
那么对于多个进程在计算机中运行,计算机该如何分配存储器,CPU等系统硬件去处理许多个进程,以保证硬件性能能够得到充分的发挥并且以极高的效率执行呢?
-
这样就引出了操作系统的概念,这也是深入理解进程的基础
-
操作系统:
- 从本质上来说,操作系统其实就是人为编写的一种软件,只不过它是一种操作计算机系统的软件,所有的应用型软件几乎都要通过操作系统才能运行来执行功能,没有不依靠操作系统就能执行功能的应用软件(除非你真的很厉害,能够自己操作相应的存储器、CPU等硬件来提供应用软件的运行条件)。
- 一方面,它为应用软件和用户提供了操作计算机部分系统以及硬件的接口,使得程序运行和人为操作更为方便快捷,不用再面对那些硬件的具体运行。
- 另一方面,它通过存储管理、进程调度以及CPU调度等来解决了当多个应用软件在计算机中运行时,该如何高效地分配规划调用有限的计算机资源来使得这些进程功能能够正常运行的问题。
其中多道程序设计技术就是一个非常重要的方法
-
-
多道程序设计(Multiprogramming)
-
即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。
-
虽然说多个程序在内存之中,但是他们各自的内存空间是隔离开来的,各自进程有各自进程的内存空间来运行,以保证数据的安全和准确
-
一旦有I/O请求,CPU便去处理其他程序,这里第一次出现了时空复用的概念,提高了CPU利用率,计算机的运行效率也随之提高。
-
并发和并行的区别
-
并发是指宏观上的并发,一个时间段内多个进程是同时执行的,但是实质上是指在资源有限的情况下,两个进程相互交替使用计算机的资源,一个程序要调用I/O操作,另一个程序就开始使用CPU进行处理,如此交替,提高了程序运行的效率,也充分利用了计算机资源。(单核处理器一般使用并发)
-
并行是指微观上的并行,多个程序同时执行,每一分每一秒程序都在同时执行。(这需要多核处理器,分别处理各自的进程)
posted @
2019-08-12 19:57
ITchemist
阅读(
157)
评论()
编辑
收藏
举报