1.进程的概念:
在我们开发的过程中我们一定会碰到进程这个概念,进程实际上就是运行起来的程序。
我们会用pcb来表示进程的各种属性,然后使用双向链表将pcb(线程)串起来。
pcb中的重要属性包括pid,内存指针,文件描述表,状态,优先级,上下文,记账信息。
现在就让我们来描述一下pcb中重要的信息。
1,状态:
pcb的状态分为就绪状态和阻塞状态,就绪状态也就是程序即将运行或者程序正在运行的都称之为就绪状态。而不参与调度的程序称之为阻塞状态。
2,优先级
优先级的意思也就是对不同的程序的调度所分配的系统资源都不一样。比如穿越火线和qq同时在后台运行系统所分配的资源也是完全不同的。
3,上下文
进程从cpu离开的时候需要保存现场,把cpu中的各种寄存器的状态都记录到内存里面,当程序回到原本的运行时候内存就会把原本的值返回给寄存器,进程就会沿着上次执行的位置,继续往后运行。
4,记账信息
记录进程的创建时间、开始时间、结束时间和运行时间等。系统会根据这个时间的统计结果调整进程调度的策略。
进程中包括很多线程,线程的好处就是可以公共利用进程中的公共资源,进程是资源分配的基本单位,进程的创造要消耗很多资源,换句话说线程就是轻量级进程,实际上线程也能够独立调度,每个线程也有状态,优先级,上下文,记账信息
**********************
进程是资源分配的基本单位
线程是调度执行的基本单位