阿龙的学习笔记---《操作系统 - 精髓与设计原理》笔记---第九章 + 第十章:调度

1. 调度类型

  • 调度是如何分配进程至处理器,而调度体现在在三个层次。
  • 长程调度:决定程序是否能够进入系统运行变成一个进程,他控制系统的并发度。执行的频率低。
  • 中程调度:是决定进程挂起还是在内存中。执行频率中等。
  • 短程调度:是指下次执行哪一个程序。时钟中断、I/O中断、系统调用、信号可能会引起短程调度。

2. 单处理器调度算法

  • 规则:面向用户则需要尽量加快响应时间;而面向系统则是尽量提高处理器的效率。大多数系统中,适当的响应时间都是关键需求。
  • 先来先服务(FCFS):即选择在系统中时间最长的进程。
  • 时间片轮转:周期性产生时钟中断,出现中断时,将当前进程就绪,选择下一个进程。时间片过短会让处理器开销较大,而时间片太长又会退化为FCFS。
  • 最短进程优先: 让预计处理时间最短的进程优先运行。一是很难预测程序时间,二是会让长进程饥饿。
  • 最短剩余时间优先:即在上面算法中加入抢占机制,如果有一个更短的进程就绪,那么则切换至更短的进程。
  • 最高响应比优先: 响应比 =(等待时间+预计服务时间)/ 预计服务时间。选择响应比最大的就绪进程运行。这样平衡了长进程和短进程,长进程在等待时间长的时候响应比就会增大。 上述三种都需要程序的预计处理时间。
  • 反馈法:预计处理时间很难预测。所以根据已运行时间来设计优先级,刚创建的进程放在RQ0队列,运行一次降低一个优先级,新的进程及短进程优先,长进程会慢慢到低优先级的队列中。 每个队列采用FCFS排序,然后整体以时间片轮转的方式。

3. 多处理器调度

  • 这里主要针对紧耦合多处理器系统,即由一系列共享同一个内存并受操作系统控制的处理器,而不是分布式、集群等类型的多处理器系统。也就是我们现在PC这种类型吧。

  • 粒度:是说进程间同步的程度

    • 粗粒度进程间的合作、同步非常少,各运行各自的。
    • 中粒度则是进程或者线程之间需要更高程度的合作,那么并行的时候性能会更好。
    • 细粒度不讨论。
  • 将进程分配到处理器

    • 静态分配:将一个进程分配给一个处理器,之后就一直在这个处理器运行。调度开销小,可能会分配不均。
    • 动态分配:一共就一个队列,然后处理器从这个全局队列中选择。另一种就是Linux采用的动态负载平衡,每个处理器都有队列,但是线程能够在队列间调整,让处理器的负载均衡。
    • 多处理器系统中进程分派算法则不那么重要,复杂的轮转或者最短剩余时间等方法,与最简单的FCFS相比,也没有太大的提升。所以使用简单的FCFS就可以了。
  • 线程调度: 一个应用程序的一组线程,在同一个地址空间协作并发执行。

    • 负载分配: 最简单的方案,维护一个全局队列,线程都进队列,然后处理器只要空闲就从队列中找一个运行。
      • 负载分配可以按照:1) FCFS; 2) 最少线程数优先; 3) 可抢占的最少线程数优先。
      • 缺点也有蛮多:1) 队列是互斥的,如果处理器太多则会成为瓶颈; 2) 进程不一定一直在同一个处理器运行,高速缓存效率低 ; 3) 同一进程的多线程需要高度合作时,可能性能低。
    • 组调度: 同时在一组处理器上调度一个进程的一组线程,在线程间有合作时很好。
    • 专用处理器分配: 专门给一个进程的多线程分配一组处理器,每个线程一个处理器,直到运行结束。在很多处理器的系统中有好处。
    • 在多核处理器中,相邻核心之间可能会有高速缓存,两个线程共享资源等,可以在两个相邻核心上运行。

4. 实时调度

  • 在这种情况下,响应时间和公平性并不是最重要的,最重要的是硬实时任务都能在最后期限内完成,软实时任务也尽可能在最后期限完成。

5. Linux调度

  • 实时调度:SCHED_FIFO(先进先出)和 SCHED_RR(时间片轮转)。

    • 实时任务的优先级是静态的,从0~99,越小越高,100以上是非实时。
    • FIFO按照优先级,每个优先级队列中以FIFO方式调度。有抢占,在有更高优先级就绪时,则会调度这个进程。
    • RR与上面差不多,只不过是加上了时间片轮转。每次轮转完调度时,选择同优先级或者更高的运行。没有抢占,在时间片完会自动选择优先级高的。
  • 非实时调度:Linux2.6的调度程序——O(1)调度程序。

    • 任务优先级会动态计算,每个优先级一个活动队列,一个过期队列。
    • 时间片的分配是动态的,较高优先级的任务,时间片也较大。
    • 对于给定的处理器,系统分配一个最高优先级的队列,这个队列中的任务进行时间片轮转。
    • 任务可以在处理器之间移动,操作系统会均衡处理器的负载。

基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订单管理**:系统支持订单的创建、跟踪和管理,包括订单的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订单以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集中的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展中的重要里程碑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值