操作系统概念笔记5.进程调度

基本概念

抢占调度:当进程从运行状态切换到就绪状态/从等待状态切换到就绪状态 时发生调度

                  否则为非抢占调度

保护代码段不被多个进程访问:进入时禁用中断,退出时启用中断

 

调度算法

  • FCFS(first come first serve)

优点:简单

缺点:平均等待时间长

护航效果:所有其它进程都等待一个大进程释放CPU

非抢占

  • 最短作业优先调度

优点:平均等待时间最优

缺点:难以知道下次CPU执行长度

解决方式:预测下次CPU执行长度为以前CPU执行的测量长度的平均

非抢占(最短剩余时间优先)或抢占

  • 优先级调度

每个进程都有一个优先级,最高的优先级的进程分配到CPU

CPU执行越长,优先级越小

抢占或非抢占

饥饿:某个低优先级进程无穷等待CPU

解决方式:老化(逐渐增加在系统中等待很长时间的进程的优先级)

  • Round Robin

CPU为每个进程分配不超过一个时间片的CPU

如果当前运行进程的CPU大于1个时间片,则将进程加到就绪队列尾部,CPU执行下一个进程

  • 多级队列调度

将就绪队列分成多个队列,每个队列有自己的调度算法

如前台进程(交互进程),后台进程(批处理进程)

队列之间调度:1.固定优先级抢占调度

                            当优先级高的队列为空时,优先级低的队列才会被分配到CPU

                         2.在队列之间划分时间片,每个队列都有一定比例的CPU时间

  • 多级反馈队列调度:允许进程在队列间前移

 

线程调度

进程竞争范围(PCS):同一进程内的线程竞争,决定哪个线程在可用LWP上运行

系统竞争范围(SCS):系统内所有线程竞争CPU,决定哪个内核级线程调度到一个CPU上

                                        采取一对一模型,如Windows, Linux只采取SCS调度

 

多处理器调度

非对称多处理器:一个处理器处理所有调度决定,I/O处理以及其它系统活动

                             其它处理器执行用户代码

对称多处理(SMP):每个处理器自我调度

                               Windows、Linux、Mac支持SMP

处理器亲和性:避免将进程从一个处理器移到另一个处理器(缓存)

软亲和性:保持进程运行在同一处理器

硬亲和性:保持进程运行在某个处理器子集

多线程的处理器核:每个核分配多个硬件线程,当一个线程访问内存停顿时,切换到另一个线程

 

实时CPU调度

事件延迟:中断处理 + 调度延迟

中断处理:CPU收到中断,完成正在执行的指令,确定中断类型,保存当前进程状态,采用特定中断服务程序

调度延迟:停止一个进程,释放资源,启动另一个进程

冲突阶段:抢占内核中运行的任何进程,释放高优先级进程需要的、低优先级进程占有的资源

单调速率调度:高优先级进程抢占低优先级进程

最早截止期限优先调度

比例分享调度:调度程序在所有应用之间分配T股,如果一个应用程序接受N股的时间,那么确保它将有N/T的处理器时间

                         准入控制策略:只有当任务请求的股数小于可用股数,才能允许它进入

 

操作系统例子

Linux的调度算法:完全公平调度程序(CFS)

每个任务有一个友好值,友好值低的任务优先级高。

维护进程的虚拟运行时间(红黑树),记录进程运行了多久,优先级低的任务比优先级高的任务具有更高衰减速率,调度程序选择最小虚拟运行时间的程序。

 

可重入函数

定义:进程正在执行的指令序列被信号中断后,如果从信号处理程序返回,继续执行进程断点处的指令序列。此时如果函数所依赖的环境没有发生改变,就说这个函数是可重入的

进程中断期间,OS保存进程上下文包含返回地址、寄存器等,而函数内部的全局变量、静态变量、堆中分配的空间不会被保护,如果这些值在中断期间被修改了,则函数恢复执行的结果不可预料。

  • 不可重入函数特征:

1.使用静态数据结构

2.使用malloc/free

3.调用标准I/O函数

4.进行浮点运算

  • 保护函数的可重入方式:

1.采取局部变量

2.堆全局变量要加以保护(关中断等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值