JavaWeb——操作系统中的进程、并发并行

进程也可以说是一个任务,
是一种操作系统中非常重要的软件资源,
把一个可执行程序跑起来,系统中就会产生一个相对应的进程,如果这个程序结束了,那么相对应的进程也会被系统随之销毁,
因此,晋亨也可以被看作是可执行程序的“过程”

可执行程序 VS 进程

可执行程序和进程不是一个概念,下面我们来具体区分一下

可执行程序

可执行程序是磁盘中的一个文件,也就是每当下载完一个软件之后,所生成的 .exe应用文件
这个文件一定是静态的,再我们电脑的磁盘中可以找到对应的可执行程序,如下
JavaWeb——操作系统中的进程、并发并行

进程

进程是可执行文件跑起来的一个具体实现过程,那么当我们双击可执行程序时,可以在电脑的任务管理器中找到这个运行程序,这个就是进程
JavaWeb——操作系统中的进程、并发并行
把.exe 文件中的很多内容都加载到内存中了,分配一些资源,并开始执行这个可执行程序中包含的指令

进程也是操作系统中进行资源分配的最小单位

创建进程包含信息

每创建一个进程,就同时创建了一个PCB这样的类的实例

PCB里面包含的信息有:

1.pid(进程id)进程的身份标识
2.一组内存指针,指向该进程持有的一些重要数据在内存中的位置
3.状态
4.优先级
5.进程的记账信息
6.上下文

以上的3~6点都是为了实现 进程调度
一般情况都会出现 进程数量多,CPU数量少

CPU数量少,但是进程数量多怎么解决呢?

我们电脑中同一时间会运行多个进程,这是通过快速频繁的切换CPU来达到每个线程一起工作,
这样从宏观上看多个线程是同时进行的----------> 并发
从微观上看和从宏观上啃都是同时进行的-------> 并行

但在具体应用中,并发和并行的区分不大

状态

进程中的状态还是比较重要的,这里详细介绍一下

一个进程的状态有一下几种:

R: 就绪状态。正在CPU上执行,或是即将执行
S:睡眠状态。这些进程没法在CPU上执行,而是在等待
D: 深度睡眠状态。进程在长时间忙于IO操作,没尽力理会CPU
阻塞状态。进程不具备运行条件,正在等待某个事件的完成。