2进程与线程

2进程

2.1进程基本概念

2.1.1重点问题

①为什么要引入进程

为了更好的描述和控制程序的并发执行,以实现操作系统的并发性和共享性

②PCB的引入,操作过程不易分辨各个进程,故为其命名pcb(过程控制块)

pcb的引入为了描述进程和管理进程

③进程实体:pcb、程序段、相关数据段

其中PCB给操作系统用,程序段和相关数据段给进程自己用

④对进程下定义

进程实体实际运行的运行过程

类比于电池和电流

电池不动,电池运行时,产生电流、是资源的分配和调度基本单位

2.1.2进程的特征

  1. 动态性(进程是程序的一次执行)
  2. 独立性(未建立pcb的程序,不可作为独立单位)
  3. 并发性(引入进程是为了与其他进程并发执行)
  4. 异步性(进程之间的相互制约,按各自独立的进行)

2.2进程的组成

2.2.1PCB的生命周期

  • 进程创建时新建一个pcb,
  • 进程结束时,系统收回其pcb,该进程死亡

PCB是进程存在的唯一标识

2.2.2PCB包含的内容

进程描述信息进程控制和管理信息资源分配清单处理机相关信息
进程标识符(PID)调度和状态信息代码段指针通用寄存器值
用户标识符(UID)进程之间的通信信息数据段指针地址寄存器的值
存储管理信息堆栈段指针控制寄存器的值
进程所用资源键盘状态i寄存器的值
有关数据结构连接问题鼠标状态字
文件描述符
  • 进程标识符(内部,外部)
  • 处理机的信息(通用寄存器,指令计数器,PSW,用户的栈指针)。
  • 进程调度信息(进程状态,进程的优先级,进程调度所需的其它信息,事件)
  • 进程控制信息(程序的数据的地址,资源清单,进程同步和通信机制,链接指针)

2.3进程的状态与转换

  1. 就绪状态(Ready)

进程已分配到除CPU之外的所有必要资源,只要再获 得CPU,便可立即执行。

  1. 执行状态 (Running)
    进程已获得CPU,正在执行。(多处理机系统中,则有多个进程处于执行状态)

  2. 阻塞状态(Block / Waiting)
    正在执行的进程由于发生某时间(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态,即进程的执行受到阻塞。

2.3.1引起进程阻塞的事件:

① 向系统请求共享资源失败
② 等待某种操作的完成
③ 新数据尚未到达
④ 等待新任务的到达

发生阻塞事件的时候,会导致阻塞使用阻塞原语block,阻塞是一种主动行为

2.3.2三种基本状态的转换

在这里插入图片描述

2.4进程之间的相互转换

  • 创建->就绪:进程初始资源分配完毕后就进入就绪态。

  • 就绪->运行:就绪进程分配到 CPU 资源即可进入运行态。

  • 运行->就绪:运行中的进程被调度系统或者更高优先级的进程抢占 CPU

  • 等待->就绪:等待进程等待的事件被满足后就进入就绪态等待 CPU 资源的分配

  • 运行态-> 阻塞态 请求除了cpu外的其他资源如(i/o)或者等待某一个事件的发生。

    且进程通过使用系统调用的方式请求操作系统提供服务

  • 阻塞态- >就绪态 进程等待事件到来时,(I/O操作完成或中断结束时候)

2.5进程控制

2.5.1父子进程的区别

父子进程之间的区别是:

  • fork的返回值

  • 进程ID不同

  • 两个进程具有不同的父进程ID:子进程的父进程ID是创建它的进程的ID,而父进程的ID则不变

  • 子进程的tms_utime, tms_stime, tms_cutime, tms_ustime均被设置为0

  • 父进程设置的文件锁不会被子进程继承

  • 子进程的未处理的闹钟被清除

  • 子进程的未处理信号集设置为空集

    2.5.2进程的创建

  1. 用户登录 :在分时系统中,用户登录成功后,系统将为该用户建立一个进程。
  2. 作业调度 :在多道批处理系统中,从后备队列中选择进程调度时,便为它(们)创建进程,并插入就绪队列中。
  3. 提供服务 :比如用户程序要求文件进行打印,操作系统将为它创建一个打印进程。
  4. 用户程序的应用请求
创建的步骤(创建原语)
  1. 申请空白的PCB
  2. 为新进程分配其运行所需要的资源
  3. 初始化进程控制块PCB
  4. 将新进程插入到就绪队列之中

2.5.3进程的终止

  • 正常结束

表示进程的任务已经完成,准备 退出运行。

  • 异常结束

指进程在运行时发生了某种异常事件,使程序无法继续运行。比如越界错、保护错、非法指令、运行超时等等。

  • 外界干预

    进程应外界的请求而终止运行。比如操作员或操作系统干预、父进程请求、父进程终止时随着父进程而终止。

终止需要经过两个步骤:
  • 等待操作系统进行善后处理

  • 将进程的PCB清零,并将PCB空间返还系统

    进程阻塞与唤醒

    block和wakeup是一对原语,必须成对使用,否则阻塞进程将因不能被唤醒而永久处于阻塞状态之中。

    进程的通信

    进程通信指的是两个进程之间产生数据交互

    各个进程之间的地址空间相对独立,一个空间不能直接访问另外一个

    • 共享存储

      低级方式

      通过数据结构的交互

      高级方式

      通过存储区的共享

    • 消息传递

    在消息传递之中通过格式化的消息(message)的为单位

    直接通信方式

    间接通信方式(信箱)

    • 管道通信

      管道是一种半双工,同一时刻只接受一段流入或者流出

      子进程继承父进程的管道且可以用它来与父进程进行通信

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值