进程和线程(一)

进程和线程(一)

1、进程与进程状态

进程,就是一个正在执行的程序,对于进程而言,它分为五个实体部分,分别是:1、(操作系统OS运行管理程序)数据结构P2、(运行程序的)内存代码C3、(运行程序的)内存数据D4、(运行程序的)通用寄存器R5、(OS控制程序执行的)程序状态字信息psw

从概念上来说,进程可以基本分为7个状态:运行态:进程占有处理器运行就绪态:进程具备运行条件等待处理器运行阻塞/等待态:进程由于等待资源、输入输出、信号而不具备运行条件新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中,通常是进程控制块已经创建但还没有加载到内存中的新进程退出态:操作系统从可执行进程中释放的进程,或者是因为它自身停止了,或是因为某种原因被取消。阻塞/挂起态:进程在外存中并等待一个事件就绪/挂起态:进程在外存中,但是只要被载入内存就可以执行

进程状态转换:

导致进程挂起的原因:交换、其他OS原因、交互式用户请求、定时、父进程请求

2、进程描述

描述一个进程,首先我们就要提到进程控制块PCB

PCB是OS用于记录和刻画进程状态及环境信息的数据结构。也就是进程的第一、第五个实体部分。

借助PCB,OS可以全面的管理进程的物理实体,刻画进程的执行现状,控制进程的执行。

而进程控制块又是由三大典型信息所构成:

进程标识信息

标识信息,用于存放唯一标识该程的信息此进程的标识符(Process ID,简称进程ID)创建这个进程的进程(父进程)标识符用户标识符(User ID,简称用户ID)

进程状态信息

也称现场信息,用于存放该进程运行时的处理器现场信息,包括:用户可见寄存器内容:数据寄存器、地址寄存器控制与状态寄存器内容:PC、IR,PSW栈指针内容:核心栈与用户栈指针

进程控制信息

用于存放于管理、调度进程有关的信息,包括:进程状态(七态)优先级调度相关信息事件:进程在继续执行前等待的事件标识

然而,仅仅是进程控制块还不够,从我们最开始提到的进程的五大实体部分可以看出,进程还有代码以及相关的数据。

这里,我们用进程映像来表示某一时刻进程的内容及其执行状态集合。

进程映像包含以下内容:

进程控制块:保持进程的标识信息、状态信息和控制信息进程程序块:进程执行的程序空间进程数据块:进程处理的数据空间,包括数据、处理函数的用户栈和可修改的内存程序核心栈:进程在内核模式下运行时使用的堆栈,中断或者系统过程使用

除了进程映像之外,我们还需了解进程的上下文所谓的进程上下文,就是一个进程在执行的时候,CPU的所有寄存器的值、进程的状态以及堆栈上的内容,当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存进程的上下文,以便再次执行该进程时,能恢复切换时的状态,以便继续执行。它包括以下:用户级上下文:用户程序块/用户数据区/用户栈/用户共享内存寄存器上下文:psw/栈指针/通用寄存器系统级上下文:pcb/内存区表/核心栈

3、进程控制和管理

进程创建、进程撤销、进程阻塞、进程唤醒、进程挂起、进程激活

进程创建:进程表加一项,申请PCB并初始化,生成标识,建立映像,分配资源,移入就绪队列进程撤销:从队列中移除,归还资源,撤销标识,回收PCB,移除进程表项进程阻塞:保持现场信息,修改PCB,撤销标识,移入等待队列,调度其他进程执行进程唤醒:等待队列中移出,修改PCB,移入就绪队列(该进程优先级高于运行进程触发抢占)进程挂起:修改状态并出入相关队列,收回内存等资源送至对换区进程激活:分配内存,修改状态并出入相关队列

进程切换和模式切换

进程切换是指从正在运行的进程中回收处理器。让待运行进程来占用处理器运行。进程切换的实质就是被中断运行进程与待运行进程的上下文切换,出来过程是:保存被中断进程的上下文转向进程调度恢复待运行进程的上下文

进程切换必须在操作系统内核模式下完成,这就需要模式切换模式切换又称为处理器状态切换,包括:用户模式切换到内核模式 中断/异常/系统调用:中断用户进程执行而触发内核模式到用户模式OS执行中断返回指令:将控制权交还用户进程而触发

模式切换的基本工作任务中断装置完成正向模式切换:处理器模式转换为内核模式保存当前进程的PC/PSW值到核心栈转向中断/异常/系统调用处理程序中断返回指令完成逆向模式切换:从待运行进程核心栈中弹出PSW/PC值处理器模式转为用户模式

进程切换的工作流程(中断/异常等触发)正向模式并压入PSW/PC保存被中断进程的现场信息处理具体的中断/异常把被中断进程的系统堆栈指针SP值保存道PCB调整被中断进程的PCB信息,如进程状态把被中断的PCB加入相关队列选择下一个占用CPU运行的进程修改被选中进程的PCB信息,如进程状态设置被选中进程的地址空间,恢复存储管理信息恢复被选中进程的SP值到处理器寄存器SP恢复被选中进程的现场信息进入处理器(中断返回指令触发)逆向模式转换并弹出PSW/PC



猜你喜欢

转载自blog.csdn.net/qq_38180223/article/details/80960948