操作系统复习(二)进程管理(一)

操作系统复习(二)进程管理(一)

进程与线程

进程

进程是资源分配的基本单位,也是独立运行的基本单位。

进程的定义
  • 进程是程序在处理器上的一次执行过程。
  • 进程是可以和别的进程并行执行的计算。
  • 进程是一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。
  • 进程可以定义为一个数据结构及能在其上进行操作的一个程序。
  • 进程是一个程序关于某个数据集合在处理器上顺序执行所发生的活动。
进程的特征
  • 动态性:表现在它因创建而产生,由调度而执行,因得不到资源而暂停,因撤销而消亡。
  • 并发性:是指多个进程同时存在于内存中,能在一段时间内同时运行。
  • 独立性:进程是一个能独立运行的基本单位,也是系统进行资源分配和系统调度的基本单位。
  • 异步性:进程是以各自独立的、不可预知的速度向前推进。

结构特征:每个进程由程序段、数据段和一个进程控制块(PCB)组成。

进程的组成
  • 进程控制块(PCB):是一个能标识进程的存在和刻画执行瞬间的数据机构。

  • 程序段:进程中能被进程调度程序调度到CPU上执行的程序代码段,能实现相应的特定功能。

  • 数据段:进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或结果数据。

  • 进程标识符(PID):每一给进程都有唯一的标识符,以区别于系统内部的其它进程。

  • 进程当前状态:说明进程的当前状态,以作为进程调度程序分配处理器的依据。

  • 进程队列指针:用于记录PCB队列中下一个PCB的地址。

  • 程序和数据地址:指的是进程的程序和数据所在的地址。

  • 进程优先级:反映进程要求CPU的紧迫程度。

  • CPU现场保护区:当进程因某种原因释放处理器时,CPU现场信息(如指令计数器、状态寄存器、通用寄存器等)被保存在PCB的该区域中,以便进程获得处理器后继续执行。

  • 通信信息:记录进程在执行过程中与别的进程发生的信息交换情况。

  • 家族联系:由的系统运行进程创建子进程,从而形成一个进程家族树。

  • 占有资源清单:进程所需资源及当前已分配资源清单。

进程与程序的关系
  • 进程是动态的,程序是静态的。
  • 进程是暂时的,程序是永久的。
  • 进程与程序的组成不同。
  • 通过多次执行,一个程序可以产生多个不同的进程;通过调用关系,一个进程可以执行多个程序。进程可以创建其他进程,而程序不能形成新的程序。
  • 进程具有并行特性(独立性、异步性),程序则没有。
进程与作业的区别
作业的定义
  • 作业是用户需要计算机完成某项任务而要求计算机所做工作的集合。
  • 一个工作完成要经过作业提交、作业收容、作业执行和作业完成4个阶段。
  • 进程是已提交完毕的作业的执行过程。

进程与作业的区别:

  • 作业是用户向计算机提交任务的实体。
  • 一个作业可由多个进程组成,且必须至少由一个进程组成,但一个进程不能构成多个作业。
  • 作业的概念主要用在批处理系统中,而进程的概念则用在几乎所有的多道程序系统中。

进程的状态与切换

进程的5种基本状态
  • 就绪状态:进程已获得除处理器外的所有资源,一但获得处理器就立即执行时所处的状态。
  • 执行状态:进程获得必要的资源并在CPU上执行时的状态。
  • 阻塞状态:正在执行的进程,由于发生某事件而暂时无法执行时所处的状态。
  • 创建状态:进程正在被创建,尚未转到就绪状态。
  • 结束状态:进程正在从系统中消失,可能时正常结束或其他原因中断退出执行。
进程状态的相互转换
  • 就绪状态 ----- 执行状态:一个进程被进程调度程序选中。
  • 执行状态 ----- 阻塞状态:请求并等待某个事件的发生。
  • 执行状态 ----- 就绪状态:时间片用完或在抢占调度中有更高级的进程变成就绪状态。
  • 阻塞状态 ----- 就绪状态:因为等待的某个条件发生而被唤醒
进程状态相互转换的总结
  • 进程状态的转换并非都是可逆的,如进程不能从就绪状态变为阻塞状态,也不能从阻塞状态变为执行状态

  • 进程状态转换并非都是主动的(执行状态到阻塞状态),其他情况都是被动的

  • 进程状态的唯一性:一个具体的进程在任何一个指定的时刻必须且只能处于一种状态。

进程的控制

进程的创建
  • 一个进程可以创建若干个新进程,新创建的进程又可以创建子进程,这种关系可以用树来表示。
  • 创建原语
    • 创建进程的事件有用户登录、作业调度和请求服务。

1.用户登录:在分时系统中,用户在终端输入登录信息,系统检测并通过之后就为该终端用户建立新进程并插入到就绪队列。

2.作业调度:在批处理系统中,当作业调度程序按一定的算法调度到某个作业时,便将该作业装入到内存,为其分配资源并创建进程,并插入到就绪队列。

3.请求服务:基于进程的需要,由其自身创建一个新进程并完成特定任务。

进程创建操作过程
  • 先向操作系统申请一块空闲PCB,并指定唯一的进程标识符(PID)
  • 为新进程分配必要的资源
  • 将新进程的PCB初始化
  • 将新进程的PCB插入到就绪队列
进程的撤销
  • 撤销原语可采用两种策略:只撤销一个指定标识符的进程或撤销指定进程及其所有的子孙进程。
  • 导致进程撤销的事件有进程正常结束、进程异常结束及外界干预。
进程撤销操作过程
  • 先从PCB集合找到要被撤销进程的PCB
  • 若被撤销进程正处于执行状态,则应该立即停止该进程的执行,设置重新调度标志,以便进程撤销后将处理器分配给其他进程。
  • 回收被撤销进程所占有的资源,或归还给父进程,或归还给系统。最后回收它的PCB。
进程的阻塞与唤醒

阻塞原语(P原语)的功能是将进程由执行状态变为阻塞状态,而唤醒原语(V原语)的功能是将进程由阻塞态变为就绪态。

阻塞原语的操作过程
  • 停止当前进程的运行。
  • 保存该进程的CPU现场以便之后可以重新调用该进程并从中断点开始执行。
  • 停止运行该进程,将进程状态由执行状态改为阻塞状态,然后将该进程插入到相应事件的等待队列中
  • 转到进程调度程序,从就绪队列中选择一个新进程投入运行
唤醒原语的操作过程
  • 将被唤醒进程从相应的等待队列中移出。
  • 将状态改为就绪并插入相应的就绪队列。

一个进程由执行状态变为阻塞状态,是由进程自己调用阻塞原语区完成的,而进程由阻塞状态变为就绪状态,则是由另一个发现者进程调用唤醒原语实现的,一般这个发现者进程与被唤醒进程是合作的并发关系

进程切换

进程切换是指处理器从一个进程的运行转到另一个进程的运行,这个过程中,进程的运行环境发生了实质性的变化。

  • 保存处理及上下文
  • 更行PCB信息
  • 把进程的PCB移入相应队列
  • 选择另一个进程执行
  • 更新内存管理的数据结构
  • 恢复处理器上下文

调度是决定系统资源分配给哪个进程,进程切换是实际分配系统哪个资源

进程切换一定会产生中断,进行处理器模式切换。

处理器模式切换不一定产生进程切换

进程通信

低级进程通信方式
  • 进程的互斥与同步是一种进程间的通信方式,进程互斥与同步交换的信息量较少且效率较低(可将P、V原语称为两条低级进程通信原语)
高级通信方式
共享存储器系统
消息传递系统

系统中进程以消息为单位交换数据,用户直接利用系统提供的一组通信命令(原语)来实现通信。

直接通信方式

发送进程直接把消息发送给接受进程,并将它挂在接收进程的消息缓存队列上,接受进程从消息缓冲队列中取得消息。

间接通信方式

发送进程把消息发送到某个中间实体(通常称为信箱)中,接受进程从中取得消息。

管道通信系统
  • 管道是用于连接读进程和写进程以实现它们之间通信的共享文件。向管道提供输入的发送进程(即写进程)以字符流形式将大量的数据送入管道,而接收管道输出的进程(即读进程)可以从管道中接受数据。

线程

线程的定义
  • 线程是进程内的一个执行单元,比进程更小。

  • 线程是进程内的一个可调度实体。(线程是调度的基本单位)

  • 线程是程序(或进程)中相对独立的一个控制流序列。

  • 线程本身不能单独运行,只能包含在进程中,只能在进程中执行。


    线程可与同一进程的其他线程共享进程拥有的全部资源

线程的实现
  • 由操作系统内核提供进程控制机制:内核级线程,在操作系统内核完成创建和撤销的线程 一个内核级线程由于I/O操作而阻塞时,不会影响其它线程的运行

  • 只有进程概念的操作系统中,可由用户程序利用库函数提供线程的控制机制:不依赖操作系统核心,由应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制线程。

  • 在操作系统内核和用户程序两个层次上提供线程控制机制:内核支持多线程的建立、调度和管理。同时,系统中又提供使用线程库的便利,允许用户应用程序建立、调度和管理用户级线程。

线程与进程的比较
  • 调度
    • 传统操作系统中资源分配与调度的基本单位都是进程。
    • 引入线程的操作系统中,线程时独立调度的基本单位,进程时拥有资源的基本单位。
    • 在同一进程中,线程的切换不会引起进程的切换。在不同进程中线程的切换会引起进程的切换。
  • 拥有资源
    • 进程时拥有资源的基本单位,而线程几乎不拥有系统资源,线程可访问其隶属进程的系统资源。
  • 并发性
    • 引入线程的操作系统中。 不仅进程之间可以并发执行,同一进程的多个线程之间也可以并发执行。
  • 系统开销
    • 进程的创建或撤销开销远大于线程的创建或撤销开销,同时由于同一进程中的各个线程共享进程的地址空间,故线程间的通信非常容易实现,无需操作系统的干预。
多线程模型
  • 多对一模型
    • 将多个用户级线程映射到一个内核级线程上。
  • 一对一模型
    • 将内核级线程与用户级线程一一对应
  • 多对多模型
    • 将多个用户级线程映射到多个内核级线程
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值