
上期回顾: 【操作系统】进程同步与通信
个人主页:GUIQU.
归属专栏:操作系统

正文
1. 进程调度基础
1.1 调度的概念与目的
在操作系统中,进程调度负责决定在特定时刻哪个进程将获得 CPU 资源并得以执行。其主要目的是确保系统资源得到高效利用,提高系统的吞吐量,同时保证各个进程能够公平地共享 CPU 时间,并且对用户的响应时间保持在合理范围内。例如,在一个多任务处理的计算机系统中,可能同时有多个用户在运行不同的应用程序,如浏览器、文字处理器和音乐播放器等,进程调度机制需要合理地分配 CPU 时间片给这些进程,使得每个进程都能有所进展,而不会出现某个进程长时间独占 CPU 导致其他进程无法执行的情况。
1.2 调度算法的评价指标
1.2.1 周转时间
周转时间是指从进程提交到完成所经历的时间,包括等待时间、执行时间等。它直观地反映了一个进程在系统中停留的总时长。例如,一个进程提交后在就绪队列中等待了 5 秒,然后在 CPU 上执行了 3 秒,其周转时间就是 8 秒。较短的周转时间意味着进程能够快速地完成任务,提高了系统的整体效率和用户满意度。
1.2.2 平均周转时间
平均周转时间是系统中所有进程周转时间的平均值。计算平均周转时间可以综合评估调度算法对整个进程集合的性能表现。例如,有三个进程,周转时间分别为 6 秒、8 秒和 10 秒,那么平均周转时间为(6 + 8 + 10) / 3 = 8 秒。平均周转时间越小,说明调度算法在整体上越能快速地处理完所有进程。
1.2.3 带权周转时间
带权周转时间是周转时间与执行时间的比值。它考虑了进程执行时间长短对周转时间评价的影响。对于执行时间较短的进程,如果周转时间过长,其带权周转时间会较大,反映出调度算法对短进程的不公平性。例如,一个进程执行时间为 2 秒,周转时间为 6 秒,其带权周转时间为 6 / 2 = 3。
1.2.4 平均带权周转时间
平均带权周转时间是系统中所有进程带权周转时间的平均值。它能更全面地衡量调度算法在处理不同执行时间进程时的公平性和效率。例如,有三个进程,带权周转时间分别为 2、3 和 4,那么平均带权周转时间为(2 + 3 + 4) / 3 = 3。
1.3 调度的类型
1.3.1 高级调度
高级调度又称作业调度,它决定将哪些作业从外存调入内存,为其创建进程并分配必要的资源,使其有机会竞争 CPU 资源。例如,在一个批处理系统中,大量的作业存储在磁盘上,高级调度程序会根据一定的策略,如先来先服务、优先级等,选择合适的作业调入内存。高级调度的执行频率相对较低,通常在系统中有新作业到达且内存有足够空间时才会进行。
1.3.2 中级调度
中级调度主要涉及进程在内存与外存之间的交换,即挂起和激活操作。当系统内存资源紧张时,中级调度会将暂时不能运行的进程换出到外存,以腾出内存空间给其他更急需运行的进程;当内存资源相对充裕或被换出的进程再次具备运行条件时,中级调度会将其重新换入内存并激活。例如,在一个多用户分时系统中,当多个用户同时开启大量进程导致内存不足时,中级调度就会发挥作用,平衡内存的使用。
1.3.3 低级调度
低级调度也称为进程调度,是最频繁执行的调度类型。它负责从就绪队列中选择一个进程,将 CPU 分配给它并使其执行。低级调度直接影响到系统的响应速度和各个进程的执行进度。例如,在一个多任务操作系统中,每时每刻都可能有进程完成执行、进入就绪状态或被阻塞,低级调度需要快速地做出决策,选择合适的进程投入运行。
2. 常见的调度算法
2.1 先来先服务调度算法(FCFS)
先来先服务调度算法按照进程到达的先后顺序进行调度。先到

最低0.47元/天 解锁文章
208

被折叠的 条评论
为什么被折叠?



