什么是进程?简单来说,进程就是一段程序的运行过程。一个进程包含了许多信息,而这些信息都被保存在进程信息块中,即PCB。
一个PCB中有许多的属性,接下来我们来介绍其中的一些主要的属性。
1.进程标识符
当一个进程被创建时,操作系统会为其分配一个唯一的、不重复的“身份证号”——PID。我们同时按下esc、shift、Ctrl,会弹出如下窗口
如图所示,图中的每一行都是一个进程,而每一个进程都有一个不同于其他的PID,用于辨识进程。
2.内存指针
这是进程所持有的内存资源。就像一把酒店房间钥匙,凭着这把钥匙,进程可以找到指定的内存空间来执行任务。
3.文件描述符表
这是进程所持有的硬盘资源。
4.进程的状态
在三态模型中,进程主要有三种状态——运行态,就绪态和阻塞态。
运行态就是指正在CPU上运行的进程所除的状态,如果进程的运行过程一切正常,没有遇到其他的阻碍,这个进程就将运行结束。但是一旦遇到了阻碍,比如说Java中使用scanner来输入信息,而用户没有输入,这时的进程因为缺少执行程序的必要条件,无法继续运行下去。此时进程就进入了阻塞态。当一个进程A在等待另一个进程B运行结束后才能执行,那么进程B在运行结束之前,进程A就处于就绪态,等待着系统的调用。
5.进程的优先级
当今的系统,需要同时处理大量而不同的信息,这边需要用到并发编程,多进程就是其中的一种实现方式。但是呢,显而易见的,不同的进程具有不同的优先级,以此来达到用户的使用目的。
6.上下文
进程从CPU离开之前,会保存现场,保存当前CPU中个寄存器的状态但内存中,等下次进程回到CPU上时,就可以通过寄存器,回复回去。进程会沿着上次执行的位置,继续往后执行。简单来说,就是游戏的存档和读档。
7.记账信息
通过优先级机制,对不同的进程,分配了不同权重的资源。因为有可能会出现极端情况如所有资源都给了同一个进程。而记账信息回记录当前进程持有CPU的情况,可作为操作系统调度的参考。