进程相关

1. 进程的状态

  1. 三种基本状态
    就绪状态:当进程已获得除cpu以外的其他资源后,只要获得cpu,便可立即执行,此时进程的状态就称为就绪状态
    执行状态:进程已获得cpu,正在执行
    阻塞状态:正在执行的进程由于由于发生某事件而暂时无法继续执行,便放弃处理机而处于暂停状态,这种赞停状态就是阻塞状态
  2. 具有挂起状态的状态转换图

    处于静止就绪状态的进程不能再被调度执行

2. 进程控制块

2.1 作用

记录了操作系统所需的,用于描述进程的当前情况以及控制进程运行的全部信息。OS是根据PCB来对并发执行的进程进行控制和管理的。例:当OS要调度某进程执行时,要从该进程的PCB中查出状态及优先级,在调度到某进程后,根据其PCB中的所保存的处理机状态信息,设置该进程恢复运行的现场,并根据PCB中的程序中的程序和数据的内存地址,找到其程序和数据;进程间同步,通信活访问文件时都要访问PCB…

2.2 PCB中的信息

主要包括下面四方面信息:

  1. 进程标识符
    (1) 内部标识符:在所有的OS中,都为每个进程赋予一个唯一的数字标识符,通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。
    (2)外部标识符:由创建者提供,往往是由用户(进程)在访问该进程时使用,还应设置父进程标识子进程标识,还可以设置用户标识。
  2. 处理机状态
    处理及在运行时,许多信息都放在寄存器中,当处理机被中断时,所有这些信息都要保存在PCB中,以便切回来的时候,能继续从断点处执行,这些寄存器包括:
    (1)通用寄存器:用户程序可以访问的,用于暂存信息
    (2)指令计数器:存放要访问的下一条指令的地址
    (3)程序状态字PSW:存放一些状态信息(进位位,溢出位等),执行方式(在内核态还是用户态执行),一些控制信息(如是否允许中断等)
    (4)用户栈指针:指向栈顶
    用户栈:就是应用程序直接使用的栈。它位于应用程序的用户进程空间的最顶端。
    当用户程序逐级调用函数时,用户栈从高地址向低地址方向扩展,每次增加一个栈帧,一个栈帧中存放的是函数的参数、返回地址和局部变量等,所以栈帧的长度是不定的。
    内核栈:主要用于进程陷入内核时使用的栈,主要涉及进程切换时保存用户态进程信息(寄存器值,一部分硬件上下文等),以及进程在内核执行时分配空间使用
  3. 进程调度信息
    (1)进程当前状态
    (2)进程优先级
    (3)进程调度所需要的其他信息:和进程调度算法有关,比如进程已等待cpu的时间总和,已执行的时间总和等
    (4) 事件:由执行状态转为阻塞状态所等待发生的事件,即阻塞原因
  4. 进程控制信息
    (1)程序和数据的地址:程序和数据所在内存或外存的地址,以便再次调度到该进程时能从PCB中找到程序和数据
    (2)进程同步和通信机制
    (3)资源:除cpu以外,进程所需的全部资源及已分配到的资源
    (4) 链接指针:本进程(PCB)所在队列中的下一个进程的PCB的首地址
2.3 进程控制块的组织方式

链接方式
索引方式

3. 进程控制

3.1 进程创建
  1. 引起进程创建的事件
    (1)用户登录
    (2)作业调度:当调度到某作业时,将该作业装入内存,为其分配必要的资源,并为它创建进程,插入就绪队列
    (3)提供服务:当运行中的用户程序提出某种请求后,系统将专门创建一个进程来提供用户所需的服务。例用户程序要求文件答应,系统则为他创建一个打印进程
    (4)应用请求:由进程自己创建一个新进程,以便新进程并发完成特定的任务
  2. 创建过程
    一旦操作系统发现了要求创建新进程事件后,调用进程创建原语Creat(),过程如下:
    (1) 申请唯一的数字标识符,并从PCB集合中索取一个空白PCB
    (2)为新进程的程序和数据及用户栈分配必要的内存空间
    (3)初始化PCB:将系统分配的标识符和父进程标识符写进PCB,让PC指向程序入口地址,让栈指针指向栈顶,将进程的状态设为就绪或静止就绪,设置优先级
    (4) 将新进程插入就绪队列
3.2 进程终止
  1. 引起进程终止的事件
    (1)正常结束
    (2)异常结束:
    保护错:如写了一个不允许写的文件
    非法指令
    特权指令错:如用户进程去执行一条只允许OS执行的命令
    运行超时
    等待超时
    算术运算错
    I/O故障
    (3)外界干预:如操作员,父进程等
  2. 过程
    (1) 根据标识符,从PCB集合中检索出PCB,从中读出进程状态
    (2)若是执行状态,立刻停止执行,置调度标志为真,用于指示该进程被终止后应重新进行调度
    (3)若该进程还有子孙进程,应将所有子孙进程终止,以防他们成为不可控进程
    (4)将进程拥有的全部资源归还给父进程或系统
    (5)将PCB从所在队列中移出,等待其他程序来搜集信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值