【操作系统】进程管理

进程管理

进程

概念

  • 是进程实体的运行过程,是系统进行资源分配和调度的独立单位

进程和程序

    1. 进程是动态的
      2.程序是静态的、一组指令的集合
      3.程序不被加载时,在磁盘上
      4.只有当程序被加载的时候(加载到内存),程序才会变成进程

进程特征

  • 动态性(最基本)

  • 并发性

    • 引入进程的目的就是为了提高系统的并发能力
  • 独立性

    • 每个进程都可以作为一个独立接收系统分配和调度资源
  • 异步性

    • 不同的进程可能运行的速度并不相同(受到中断等)
  • 结构性

    • PCB

进程实体:
程序段+数据段+进程控制段

进程状态

进程控制

  • 进程创建——创建原语

    • 1.为新进程分配一个唯一的PID(进程标识号)
      2.为进程分配资源(内存)
      3.初始化PCB(设置进程优先级等)
      4.将新进程插入就绪队列
  • 进程终止——撤销原语

    • 1.根据被终止的进程标识符,检索PCB,读出进程状态
      2.更新PCB(进程状态标记为“终止”)
      4.将该进程的所有资源归还操作系统
      5.将PCB从其所处的队列中删除
  • 进程的阻塞——阻塞原语(Block)

    • 1.根据需要阻塞的PID找到其对应的PCB
      2.保护现场,更新PCB:转为阻塞状态
      3.将PCB插入阻塞队列
  • 进程的唤醒——唤醒原语(Wakeup)

    • 1.根据需要唤醒的PID从阻塞队列中找到对应的PCB
      2.将其从阻塞队列中移出,进程状态改为就绪态
      3.把该PCB插入就绪队列中,等待调度
  • 进程切换

    • 1.保存处理机上下文,(程序计数器和其他寄存器)
      2.更新当前正在运行进程的PCB(包括进程状态从运行到就绪/阻塞,可能包括进程优先级)
      3.载入要切换的进程上下文
      4.更新切换进来进程的PCB(同样包括进程状态或者进程优先级)
      5.执行新进程
  • 进程组织

    • 进程控制块(PCB)

      • 1.进程描述信息——PID,UID
        2.进程控制和管理信息——进程状态,进程优先级
        3.资源分配清单
        4.处理机相关信息
    • 程序段

    • 相关数据段

  • 进程通信

    • 共享空间

      • 多个程序共享一个文件空间,从其中取出数据完成通信
    • 管道

      • 通过一个pipe文件,这个文件是两个进程所能够访问的,是一个共享文件,通过这个共享的文件能够实现两个进程间的数据交互
    • 消息传递

      • 直接

      • 间接

线程

线程概念

  • 轻量级进程

  • 不拥有系统资源

  • 最小的执行单元

  • 线程是独立调度的基本单位

线程与进程的区别

  • 调度

    • 进程是拥有资源的基本单位
  • 拥有资源

    • 进程有

    • 线程没有

  • 并发性

    • 都可以
  • 系统开销

    • 线程更小
  • 资源可见性

    • 1.同一个进程的线程之间资源可见(共享进程资源)
      2.不同进程的线程地址空间独立

线程属性

  • 唯一标识符

  • 线程控制块

  • 线程状态和进程状态一样

线程实现方式

  • 用户级线程

    • 内核中不留线程,全部线程都放在用户空间中创建
  • 内核级线程

    • 内核中创建每一个所需要的线程,创建好之后映射到用户空间
  • 混合线程模式

    • 结合以上两种方式,内核和用户空间都有线程,但不是一个内核级线程映射一个用户线程,可能是多个

处理机调度

调度的概念

  • 调度是处理机对于将要在其上运行的进程的一种安排

调度的层次

  • 高级调度

    • 作业调度

      • 决定哪个进程进入内存
  • 低级调度

    • 进程调度

      • 决定哪个进程上CPU运行

      • 最常进行的

      • 最基本的 不可或缺的

  • 中级调度

    • 内存调度

      • 决定进程优先级 + 挂起/唤醒进程

      • 提高内存利用率和系统吞吐量

调度方式

  • 剥夺式

    • 有优先级更高的进程,则立即终止当前正在运行的进程

    • 优点

      • 1.提升系统吞吐率
        2.响应效率高
  • 非剥夺式

    • 不管有多紧急的任务都需要让当前的进程执行完毕

    • 优点

      • 1.适用于大多数批处理系统
        2.实现简单,开销小

调度准则

  • CPU利用率

    • 时刻保持CPU运行
  • 系统吞吐量

    • 表示单位时间内CPU处理的作业数量

    • 所以不能让一个长作业一直占用CPU

  • 周转时间

    • 作业从提交到完成的时间

    • 周转时间 = 作业完成时间 - 作业提交时间

    • 带权周转时间 = 作业周转时间 / 作业实际运行时间

  • 等待时间

  • 响应时间

调度算法

  • 先来先服务(FCFS)算法

    • 谁先来就运行谁

    • 优点

      • 简单

      • 对长作业有利

      • 有利于CPU繁忙型作业

  • 短作业优先(SJF)算法

    • 运行已经到达的、预计运行时间最短的进程

    • 缺点

      • 导致饥饿
  • 高响应比(HRRN)算法

    • 在短作业优先的基础上,等待时间越长/需要运行时间短,响应比越高,越应该被执行

    • 响应比 = (等待时间+要求服务时间) / 要求服务时间

  • 优先级调度算法

    • 抢占式 & 非抢占式

    • 优先级

      • 静态

      • 动态

  • 时间片轮转调度算法

    • 抢占式

    • 分配的时间到达就轮到下一个

    • 进程切换频繁的话就会使得开销增大

  • 多级反馈队列调度算法(最优秀的)

    • 设置多级队列,每个队列都有优先级,每个队列里都是先来先服务原则

    • 不会导致饥饿

进程同步

概念

  • 对于多个进程的运行过程进行安排

临界资源

  • 一次只能一个进程使用的资源

互斥

  • 空闲让进

  • 忙则等待

  • 有限等待

  • 让权等待

    • 当进程不能进入临界区时,应当立即释放处理器

信号量

  • p操作

    • 先占有资源,再阻塞同信号进程
  • v操作

    • 先释放资源,再唤醒同信号进程

死锁

  • 死锁条件

    • 循环等待

      • 顺序分配策略
    • 请求保持

    • 不可抢占

    • 互斥使用

银行家算法

  • (当前可用,已分配,还需要)
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值