面试--操作系统--进程管理

进程
资源分配的基本单元,操作系统在程序运行时刻创建的实例。
进程控制块描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对PCB的操作。
线程
线程是独立调度的基本单位。
一个进程中可以有多个线程,他们共享进程资源。
区别
拥有资源:进程是资源分配的基本单位,但线程不拥有资源,线程可以访问隶属于进程的资源。
调度:线程是独立调度的基本单位,同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程的线程是,会引起进程切换。
系统开销:由于创建或撤销进程时,系统都为之分配或回收资源,如内存空间,I/O设备等,开销远大于创建或撤销线程时的开销。类似地,在进程切换时,涉及当前执行进程CPU环境的保存及新调度进程环境CPU环境的设置,而线程切换时只需要保存和设置少量寄存器内容,开销很小。
通信:线程间可通过直接读写同一进程中的数据进行通信,但是进程通信需要借助IPC。
进程状态的切换
状态:
- 创建
- 就绪状态(ready):等待被调度
- 运行状态(running)
- 阻塞状态(waiting):等待资源
- 结束
只有就绪态和运行态可以相互转换,其他的都是单向转换。就绪状态通过调度算法获得CPU时间,从而进入运行状态;而运行状态的进程,在分配给它的CPU时间片用完之后就会转为就绪状态,等待下一次调度。
阻塞状态是缺少需要的资源从而由运行状态转来,但是该资源不包括缺少CPU时间,缺少CPU时间会从运行态转为就绪态。
进程调度算法
不同的环境调度算法不同,因此需要针对不同的环境来讨论调度算法。

1.批处理系统
批处理系统没有太多的用户操作,在该系统中,调度算法目标是保证吞吐量和周转时间(提交到终止)。

1.1先来先服务first-come first-serverd(FCFS)
非抢占式调度,按照请求的先后顺序进行调度。
有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成短作业等待时间过长。
1.2短作业有限shortest job first(SJF)
非抢占式调度,按估计运行时间最短的顺序进行调度。
长作业有可能会饿死,处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来,那么长作业永远的不到调度。
1.3 最短剩余时间优先shortest remining time next(SRTN)
是短作业有限的抢占版本。按剩余运行时间的顺序进行调度。当一个新的作业到达时,整个运行时间与当前进程的剩余时间做比较。如果新的进程需要的时间更少,则挂起当前进程,运行新的进程。否则新的进程等待。
2.交互式系统
交互系统有大量的用户交互操作,在该系统中调度算法的目标时快速的响应。

2.1时间片轮转
将所有就绪进程按 FCFS 的原则排成一个队列,每次调度时,把 CPU 时间分配给队首进程,该进程可以执行一个时间片。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把 CPU 时间分配给队首的进程。
时间片轮转算法的效率和时间片的大小有很大关系:
- 因为进程切换需要保存旧进程的信息并导入新进程的信息,如果时间片太小,会导致进程切换太频繁,在进程切换上花时间过多。
- 如果时间片太长,那么实时性得不到保证。
2.2优先级调度
为每个进程分配一个优先级,按优先级进行调度。
为防止低优先级的进程永远等不到调度,可以随着时间的退役增加等待进程的优先级。
2.3多级反馈队列
一个进程需要执行100个时间片,如果采用时间片轮转调度算法,那么需要切换100次。
多级队列就是为这种需要连续执行多个时间片的进程考虑的,它设置了多个队列,每个队列时间片大小都不同,例如:1,2,4,8…。进程在一个队列中没有执行完,就会被移到下一个队列。这种方式下,原本需要时间片较多的进程就会减少切换次数。
每个队列也有优先权,最上面的优先权最高。因此只有上一个队列没有进程在排队时,才能调度当前队列中的进程。可以将这种调度算法看成是时间片轮转调度和优先级调度算法的结合。
3.实时系统
实时系统要求一个请求必须在一个确定时间内得到响应。
分为硬实时和软实时,前者必须满足绝对的截止时间,后者可以容忍一定的超时。
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pjh_666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值