【操作系统】进程管理

进程管理

进程是资源分配的最基本的单位


进程状态

在三态模型中,进程状态分为三个基本状态,即运行态,就绪态,阻塞态。

在五态模型中,进程分为新建态、终止态,运行态,就绪态,阻塞态。


PCB

  • PCB主要包含下面几部分的内容:

    • 进程的描述信息,比如进程的名称,标识符,
    • 处理机的状态信息,当程序中断是保留此时的信息,以便 CPU 返回时能从断点执行
    • 进程调度信息,比如阻塞原因,状态,优先级等等
    • 进程控制和资源占用,同步通信机制,链接指针(指向队列中下一个进程的 PCB 地址)
  • PCB 的作用

    • PCB是进程实体的一部分,是操作系统中最重要的数据结构
    • 由于它的存在,使得多道程序环境下,不能独立运行的程序成为一个能独立运行的基本单位,使得程序可以并发执行
    • 系统通过 PCB 来感知进程的存在。(换句话说,PCB 是进程存在的唯一标识)
    • 进程的组成可以用下图来表示,PCB 就是他唯一标识符。

进程之间的通信方式

管道通信

管道这种通信方式效率低,不适合进程间频繁地交换数据

消息队列

消息队列是保存在内核中的消息链表

消息队列不适合比较大数据的传输

消息队列通信过程中,存在用户态与内核态之间的数据拷⻉开销

共享内存

共享内存的机制,就是拿出一块虚拟地址空间来,映射到相同的物理内存中

信号量

信号量其实是一个整型的计数器,主要用于实现进程间的互斥与同步,而不是用于缓存进程间通信的数
据。

信号

对于异常情况下的工作模式,就需要用「信号」的方式来通知进程。

Socket

跨网络与不同主机上的进程之间通信,就需要 Socket 通信了。


进程调度算法

  • 先来先服务调度算法

  • 最短作业优先调度算法:它会优先选择运⾏时间最短的进程来运⾏

  • 高响应比优先调度算法:先计算响应比优先级,然后运行最高相应比的进程。

image-20211217210452281
  • 时间片轮转调度算法:每个进程分配一个时间片,允许该进程在该时间段中运行。如果时间片用完,进程还在运行,则将CPU分配给另外一个进程

  • 最高优先级调度算法:在就绪队列中选择最高优先级的进程运行。优先级有静态优先级动态优先级

    静态优先级:在创建进程的时候就确定了优先级

    动态优先级:优先级会动态调整

  • 多级反馈队列调度算法:是时间片轮转算法 和 最高优先级算法 的综合。

    多级 代表有多个队列,每个队列优先级从高到低,同时优先级越高时间片越短

    **反馈 **表示如果有新的进程加入高的优先队列,立刻停止当前运行的进程,转而去运行优先级高的队列


进程和线程创建和撤销的过程中发生了什么事情?

在应用中创建一个子进程的过程如下:

  • 申请空白的PCB
  • 初始化进程描述信息
  • 为进程分配资源以及地址空间
  • 将其插入就绪队列中

撤销进程的过程:

  • 查找需要撤销的进程的 PCB
  • 如果进程处于运行状态,终止进程并进行调度
  • 终止子孙进程 - 归还资源
  • 将它从所在的队列中移除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值