Linux内核中进程调度的分析
请描述linux下常见的调度策略及调度原理

请描述linux下常见的调度策略及调度原理在Linux下,常见的进程调度策略包括:1.CFS(Completely Fair Scheduler)完全公平调度器:CFS是Linux内核默认的调度策略。
它通过使用红黑树数据结构来维护进程队列,以确保公平分配CPU时间片。
CFS基于进程的虚拟运行时间(vruntime)进行调度,根据进程的优先级和历史执行情况来分配CPU时间。
2.实时调度策略:Linux提供了多种实时调度策略,包括先来先服务(FIFO)和轮转(Round Robin)调度策略。
实时任务具有较高的优先级,可以实时响应系统事件,适用于对时间敏感的应用,如嵌入式系统和实时视频处理等。
3.基于优先级的调度策略:Linux还支持基于静态优先级和动态优先级的调度策略。
这些策略根据进程的优先级决定调度顺序,优先级较高的进程将获得更多的CPU时间。
调度原理是指操作系统如何决定哪个进程获得CPU资源的分配。
Linux的调度器使用时间片轮转和优先级调度等策略来实现公平和高效的调度。
调度器会根据不同的调度策略和优先级,分配给每个进程一定的CPU时间片。
时间片指定了进程能够运行的时间段。
当一个进程的时间片用完或发生了阻塞事件时,调度器会将CPU 分配给下一个就绪状态的进程。
CFS调度器基于虚拟运行时间(vruntime)来分配CPU时间。
vruntime表示进程所需的实际运行时间,CFS通过比较进程的vruntime来决定下一个运行的进程。
较长时间没有运行的进程会被赋予更长的时间片,以实现公平调度。
实时调度策略将优先级更高的实时任务放在优先级队列的前面,以确保它们及时地响应系统事件。
在实时任务运行期间,其他普通优先级的任务将被暂时挂起。
总的来说,Linux的调度器通过多种调度策略和优先级,根据不同类型的任务和进程的要求,合理分配CPU资源,以实现公平、高效和响应及时的调度。
这样可以确保系统的正常运转并提高性能。
进程的创建和调度分析

进程的创建和调度分析关于task_struct数据结构每个进程在内核中都有⼀个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。
task_struct是Linux内核的⼀种数据结构,它会被装载到RAM中并且包含着进程的信息。
每个进程都把它的信息放在 task_struct 这个数据结构体,task_struct 部分内容如下:struct task_struct{pid_t pid; //进程iduid_t uid,euid;gid_t gid,egid;volatile long state; //进程状态,0 running(运⾏/就绪);1/2 均等待态,分别响应/不响应异步信号;//4 僵⼫态,Linux特有,为⽣命周期已终⽌,但PCB未释放;8 暂停态,可被恢复int exit_state; //退出的状态unsigned int rt_priority; //调度优先级unsigned int policy; //调度策略struct list_head tasks;struct task_struct *real_parent;struct task_struct *parent;struct list_head children,sibling;struct fs_struct *fs; //进程与⽂件系统管理,进程⼯作的⽬录与根⽬录struct files_struct *files; //进程对所有打开⽂件的组织,存储指向⽂件的句柄们struct mm_struct *mm; //内存管理组织,存储了进程在⽤户空间不同的地址空间,可能存的数据,可能代码段struct signal_struct *signal; //进程间通信机制--信号struct sighand_struct *sighand; //指向进程cputime_t utime, stime; //进程在⽤户态、内核态下所经历的节拍数struct timespec start_time; //进程创建时间struct timespec real_start_time; //包括睡眠时间的创建时间}关于do_fork()函数调⽤Linux中创建进程有三个函数fork(),vfork()和clone(),do_fork()函数对应其系统调⽤。
基于Linux系统中进程调度分析

二 、 Ln x 程 调 度 时机 iu 进
Ln x 进程 调 度 时 机 与 现 代 操 作 系 统 中 的调 度 时机 基 本 一 策 略 中 ,每 个 可执 行实 时进 程 轮流 执行 一个 时间片 ,而 先进 先 出策 iu 的 略每 个 进程 按各 自在 运行 队列 中的顺序 执 行且 顺序 不能 变化 。 致 。为 了 判 断 是 否 可 以 执 行 内核 的 进 程 调 度 程 序 来 调 度 进 程 , Ln x i 中设 置 了进 程 调度 标 志n e — e c e u e d r s h d,当标 志 为 1 ,可 执 时 在 Ln x ,进 程调 度策 略共 定义 了3 : i 中 u 种
商 业 科 技
基 于Ln x 统 中进程 调度分析 iu 系
一院 浩 重庆大学软件学院
[ 要 ] Ln x - 个 多用户 多任 务 的操 作 系统 ,Ln x 实现 了对 多个进 程公 平 、高 效的调 度 ,并 不是 采 用单一 的调 度 策略 ,而是 摘 iu .  ̄- i u
几 种调度 策略 有机 地 综合 应 用。
、
Ln x 进 程 调 度 i 的 u
状 态变 为不 可 打断 睡眠 ,如果 调 用itr pil s e — n) ner t e l p o (,则其 u b — e
L u 支持 多 进程 。进 程控 制块 P B Po e sC nrl l k是 状 态 变为可 打 断睡 眠,l p o ( i erpil s e — n) 调用 ix n C (rc s o t o ) oB c Se — n) n r t e l p o ( e 或 t u b— e 将 系统 中最 为 重 要 的 数据 结 构 之 一 ,用 来 存 放 进程 所 必 需 的各 种 信 s h d l ) ceu ( e 函数 把 睡眠进 程释 放
Linux 2.6内核分析——对进程调度机制的分析

Vo. 7 N . 12 . o 4
D c 20 e. 0 6
文章 编 号 :10 -9 9 2 0 )40 3 -5 0 623 (0 60 —3 30
L n x2 6内核 分析 iu .
— —
对进程调度机制 的分析
张同光h , 李秀芹 , 朱 家义。 杨延 玉 ,
影响 S MP的效率 。
进程 调度 的 时机不 仅 与引起 进 程调 度 的原 因
有关 , 与进程 调 度 的方 式 有关 。 还 在 不可抢 占模 式 中 , 程 调 度 的 时机 包 括 以 进
收 稿 日期 :20 一00 0 61—5
3 Ln x2 6内 核 进 程 调 度 的 分 析 iu .
中 图分 类 号 :T 36 P 1 文献 标 识 码 : A
0 引 言
Ln x操 作 系 统 的 内 核 是 在 Ln sT rad iu iu ovls
领导下 的开发 小 组 开 发 的 , 内核 源 代 码 文件 通 常 都安装 在/ s/ r/iu u r sc l x下 , 树 形 结 构 进 行 组 n 按 织 在 此介绍 一种 对 L n x内核 源码 分析[ 的有 iu 】 ]
34 3
长 春 工 业 大 学 学 报( 自然 科学 版 )
第2 7卷
陷 , iu . Ln x2 6内核 调 度 程序 使 用 两 个 优 先级 数
组 , 活动 数 组 和 过 期 数 组 , 过 指 针来 访 问 它 即 通
核 的调 度程序 正 是 由于使用 了优 先级数 组才实现 了 0( ) 1 级调 度算 法 。
程 的优先 级 时 。
h a . - ii ma . 依 据 系统调 用 层层 深入 分 ed S- nt i  ̄ / n
linux下常见的调度策略及调度原理

linux下常见的调度策略及调度原理Linux是一种开源的操作系统,广泛应用于服务器和嵌入式设备中。
在Linux系统中,进程调度策略是操作系统的核心组成部分之一,它决定了进程的执行顺序和时间分配。
本文将介绍Linux下常见的调度策略及其调度原理。
在Linux系统中,常见的进程调度策略包括先来先服务(FCFS)、最短作业优先(SJF)、时间片轮转(RR)和优先级调度(Priority Scheduling)等。
先来先服务(FCFS)是一种简单而直观的调度策略,它按照进程到达的先后顺序进行调度。
即当一个进程到达系统时,它将被放入就绪队列的末尾,并等待CPU的分配。
当CPU空闲时,系统将选择就绪队列中的第一个进程分配给CPU执行。
这种调度策略的优点是公平性强,但缺点是无法处理长作业和短作业的差异,容易产生"饥饿"现象。
最短作业优先(SJF)调度策略是根据进程的执行时间来决定优先级的调度策略。
即系统会选择执行时间最短的进程先执行,以减少平均等待时间。
这种调度策略的优点是能够最大程度地减少平均等待时间,但缺点是可能会出现长作业等待时间过长的问题。
时间片轮转(RR)是一种基于时间片的调度策略,每个进程被分配一个固定长度的时间片。
当一个进程的时间片用完时,系统将把CPU分配给下一个进程。
这种调度策略的优点是能够有效地平衡进程之间的响应时间,但缺点是可能会导致频繁的上下文切换。
优先级调度(Priority Scheduling)是一种根据进程优先级来决定调度顺序的策略。
每个进程被分配一个优先级,优先级越高的进程越容易被调度执行。
这种调度策略的优点是能够根据不同进程的需求进行灵活调度,但缺点是可能会导致低优先级进程的"饥饿"问题。
在Linux系统中,调度算法的实现是通过内核的进程调度器来完成的。
内核中的调度器会根据不同的调度策略来选择下一个要执行的进程,并将其上下文切换到CPU中执行。
深入解读Linux进程调度Schedule【转】

深⼊解读Linux进程调度Schedule【转】调度系统是现代操作系统⾮常核⼼的基础⼦系统之⼀,尤其在多任务并⾏操作系统(Multitasking OS)上,系统可能运⾏于单核或者多核CPU上,进程可能处于运⾏状态或者在内存中可运⾏等待状态。
如何实现多任务同时使⽤资源并且提供给⽤户及时的响应实现实时交互以及提供⾼流量并发等对现代操作系统的设计实现带来了巨⼤挑战,⽽Linux调度⼦系统的设计同样需要实现这些看似⽭盾的要求,适应不同的使⽤场景。
我们看到Linux是⼀个复杂的现在操作系统,各个⼦系统之间相互合作才能完成⾼效的任务。
本⽂从围绕调度⼦系统,介绍了调度⼦系统核⼼的概念,并且将其与Linux各个相关组件的关系进⾏探讨,尤其是与调度⼦系统息息相关的中断(softirq和irq)⼦系统以及定时器Timer,深⼊⽽全⾯地展⽰了调度相关的各个概念以及相互联系。
由于笔者最近在调试PowerPC相关的芯⽚,因此相关的介绍会以此为例提取相关的内核源代码进⾏解读展⽰。
涉及的代码为Linux-4.4稳定发布版本,读者可以查看源码进⾏对照。
1. 相关概念要理解调度⼦系统,⾸先需要总体介绍调度的流程,对系统有⼀个⾼屋建瓴的认识之后,再在整体流程中对各个节点分别深⼊分析,从⽽掌握丰富⽽饱满的细节。
在系统启动早期,会注册硬件中断,时钟中断是硬件中断中⾮常重要的⼀种,调度过程中需要不断地刷新进程的状态以及设置调度标志已决定是否抢占进程的执⾏进⾏调度。
时钟中断就是周期性地完成此项⼯作。
这⾥⼜引出另外⼀个现代OS的调度设计思想即抢占(preempt),⽽与其对应的概念则为⾮抢占或者合作(cooperate),后⾯会给出两者的详细区别。
时钟中断属于硬件中断,Linux系统不⽀持中断嵌套,所以在中断发⽣时⼜会禁⽌本地中断(local_irq_disable),⽽为了尽快相应其他可能的硬件事件,必须要尽快完成处理并开启中断,因此引出了中断下半部,也就是softirq的概念。
请描述linux下常见的调度策略及调度原理。
请描述linux下常见的调度策略及调度原理。
Linux下常见的调度策略有:完全公平调度(CFS)、实时调度(RT)、多级反馈队列调度(MFQ)、最短任务优先(SJF)等。
1. 完全公平调度(CFS):CFS是Linux内核默认的调度策略,它基于红黑树数据结构来表示任务的优先级队列。
每个任务都有自己的虚拟运行时间(vruntime),调度器会根据任务的虚拟运行时间来决定下一个执行的任务。
CFS调度策略的目标是在尽量公平地分配系统资源的同时,保证任务执行的效率。
2. 实时调度(RT):实时调度分为实时先进先出调度(FIFO)和实时轮转调度(RR)两种。
实时调度策略主要针对实时任务,确保其能够在预定的时间内得到执行,并且具有可预测性。
3. 多级反馈队列调度(MFQ):多级反馈队列调度策略将进程划分为多个优先级队列,每个队列具有不同的时间片大小。
当一个任务的时间片用完后,会被降级到下一个更低优先级队列中,从而避免了饥饿问题。
4. 最短任务优先(SJF):最短任务优先调度策略会根据任务的估计运行时间进行排序,选择估计运行时间最短的任务优先执行。
这种调度策略可以最大限度地减少平均等待时间和响应时间。
调度原理:Linux调度策略的原理是根据任务的优先级和一定的规则来决定下一个要执行的任务。
调度器会根据任务的类型、优先级、运行时间等因素来分配CPU资源,并保证不同类型的任务得到合理的调度。
调度器还会考虑任务的公平性,尽量均衡地分配CPU时间片,防止某些任务占用过多的资源。
调度器还会根据实时任务的时间限制要求,确保它们能够按时得到执行。
各种不同的调度算法和策略都是为了实现这些原则和目标。
linux内核进程cpu调度基本原理
linux内核进程cpu调度基本原理Linux内核的CPU调度基本原理是通过多任务处理,将CPU 时间片分配给不同的进程或线程来实现。
1. 调度策略:Linux内核支持多种调度策略,包括先来先服务(FCFS)、时间片轮转、优先级调度等。
默认的调度策略是时间片轮转调度策略,即每个进程被分配一个时间片,在时间片用完之后,将CPU切换到下一个就绪状态的进程上。
2. 就绪队列:内核会维护一个就绪队列,存放所有准备好运行但还未分配CPU时间的进程。
根据进程的优先级和调度策略,内核会从就绪队列中选择一个合适的进程来执行。
3. 进程优先级:每个进程都有一个优先级值,表示其重要性和紧急程度。
较高优先级的进程在调度时会获得更多的CPU时间。
Linux内核使用动态优先级调度策略,根据进程的历史行为和资源使用情况动态调整进程的优先级。
4. 时间片和抢占:时间片是CPU分配给进程的最小单位,当一个进程的时间片用完后,如果它还未完成,内核会将其置于就绪队列末尾,并将CPU分配给下一个就绪进程。
此外,Linux 内核支持抢占式调度,即当一个优先级更高的进程出现时,可立
即抢占当前运行的进程,将CPU资源分配给新的进程。
5. 实时进程:除了普通进程,Linux内核还支持实时进程。
实时进程具有更高的优先级和较小的延迟要求,它们得到更快的响应时间。
实时进程的调度算法相对于普通进程更加严格,以满足实时性要求。
Linux内核的CPU调度基本原理是通过就绪队列、进程优先级和时间片轮转等策略,将CPU时间动态地分配给不同的进程或线程,以完成多任务处理。
Linux2.6内核调度分析及实验设计
在现代操作系统中 , 进程调度一直是一 个核心问题 , 它往往不单独 使用其 中的一种调度方法 , 而是综合运用几种基本 的调度 方法 , 进程调 度策略的优劣对整个系统性 能有 至关重要 的影 响。 iu26引入了新的 Ln x. 调度 算法 , 具有 完全实现 O( ) 1算法 、 强了 S 增 MP可扩展性 、 强化 S MP 亲和力 、 增强了对软实时性的支持 、 公平性 等特点l 本文对 Lnx . 的 l l 。 i 26 u 调度过程及算法进 行了详 细分析 , 并设计 了 Ln x iu 调度实验 。
1Ln x . .iu 26内核 调 度 机 制 11 iu . Ln x内核 调 度 数 据 结 构
—
进程控制块 P BPoes ot l l k t k su t 系统 中最 为重 C (r s nr o )a — t c 是 c C oB c s r 要 的数据结构之一 ,用来存 放进程所必需的各种信息 , 包括进程 的类 型、 进程状态 、 优先级 、 时钟信息等 。
科技信息.
博 士 ・ 家论 坛 专
Ln x . 核 调度 分 析 及 实 验 设 计 iu 26内
安徽 科技 学 院理 学院 赵艳 红 沈 峰 段 汉根
[ 摘 要] 本文剖 析 了 Ln x . iu 26内核 重要数 据 结构 , 程调度 依据 、 进 调度 时机 、 度 策略 , 调 并详 细分析 了 Ln x , iu 26进程 调度 算法 。 Ln x . iu 26内核 实现 了 O( ) 1 的特性 , 据实验 结果, 明了 Ln x . 根 证 iu26具有很好 的实时性 , 多任务下有更 高的 C U使 用率。 P
一
pe 就是 当前进程结构 rv
Linux 2.6内核进程调度分析
非抢 占式 内核不适 用于实 时应用 ; 内核 中也存在优 先级翻
0 引 言
从上世纪 9 o年代 以来 , N / iu G U Lnx系统在各个 领域 已经 得
转的问题。
Lnx2 6调度 系统从设计 之初就 把重点放 在更好满 足实 i . u 时性和多处理机并 行性 上 , 并且基本实现了它的设计 目标。
・对高负载 的系统来说 , 预定义 的时 间片太长
时间片是在每个时期调度 程序赋 给各进程运行 的时间 。系
为交 互式 进程 , 即使时 间片用 完 , 还是保 留在 当前 的就 绪队 也
列, 这样极大提高 了交互式进程的优先级 , 保证 了交互式进程 的
统 的响应依赖 于可运 行 的时 间片。对 于高系 统负 载的 高端机
0 n 级 , 当前就绪进程的个数 , ( ) n为 即调度时 间随 当前就绪进程 数的增 多而增加 。
程的优先 级 , 同时把对进程优先级的计算分散 于多处进行 , 这样 无论系统多少进程 , 进程切换的时间始终是常数。其次 , 新的算
法引入了更加 精确 的交 互式进程 的认定 机制 , 旦进程被 确认 一
a v n a e o a e i i u . r on e u . e o i in b u h mp o e n fL n x 2 6 s h d l l oih a e i t d c d d a tg s c mp d w t L n x2 4 a ep i td o t T pn o s a o tt e i r v me t i u . c e u e ag r m r n r u e . r h h o t o Ke wo d y rs P o e s s h d lr L n x r c s c e ue i u
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
状态为T S U NN ) A K_ N IG 来执行。 R
s eu c dl h e函数的源代码量并不大, 在
瞬 on Rb 策 的Rud i 略 on
pe >cut =pe >pi i ; 一 on r r 一 r ry r v e v ot / ,将进程的优先级赋给 。ut 变量作 on r e
年的努力, 发展成为高速、 稳定、 完整的网络
操作系统。其最显著的特点是源代码的开放 性和免费性 , 也正因为这一点,i x得到越 Ln u 来越多的人们的支持。 据统计, 其用户数量已 超过 2 万, 00 并成为 Wi o s 0 n w 最强劲的竞 d
争对手 。
1 i x Ln 内核进程采用的调度方法 u
i! 一 甲 n& r - pi二 f r > ut e > oc 二 ( py e 衣pv l y
’C 七 R { E R ) SH ,
/, 判断当前进程的调度策略是否为普通进
选 最 切 要 行 即 择 ot 值 择 迫 需 运 (城 的cnr ue
最大) 而且可以运行的进程( 即进程的 s t te a
ts ; ak
3 内核调度程序的剖析
内核中最重要的调度函数为 shd l, ceu e 它包含在“e e s e.” kr l c dc文件中。 n/h 核心在以 下几种情况下会调用此函数: 当前进程因时
/ 二指向上、 下一任务进程的结构指针, 即
双向链接的任务队列
s ut k s ut, et rn , rv t c t _ t c nx _ u , pe _ r a s r
225 .. 版本中共有 12 但是其组织却充 3 行,
满了技巧 , 该函数完成的主要任务有: () ` 执行中断、 1 信号加锁等用于进程同 步的底层处理程序, 处理调度任务队列。 () 2 在选定其它进程运行之前必须对当 前进程进行一些处理, 若当前进程是实时进
为 程 可 行 片 闻 飞 进 的 运 时 lt u e ) mv_ s r q u(e ; o a _ e pv 认 e u n r
关键词:i x内核; Ln u 进程; 调度; 时间片轮转; 先进先出;on rb R ud i o n策略
A s atPoes a r i p r n cnet n r rt n s m,eas i bt c: rcs i v y ot t cpi f oeai s t cue r s e m a o o o p o ye b t m ks O r le ct g orm n一sqet l ,sai te s m ae te e i e ui p ga n h S z x n r a o eunil hr g s t ay n h ye rsucs uig s m rn o Poes dt s utr i l u kra i eo r ad n s t a ad m. cs' aa c e i x nl e n s y e t r s t u n r n e s
进程是一个具有独立功能的程序对某个 数据集在处理机上的执行过程和分配资源的
收稿日期:01 0 一 7 20 一 9 1 作者简介: 敏(98 )女, 黄 ( 6 - , 硕士, 1 讲师。
片, 然后在许多进程之间分配, 在任一时刻, 一个 C U上只有一个进程在运行。典型的 P 进程调度算法有: 先来先服务法、 轮转法、 多 级反馈轮转法和优先级法〔。 ’ 〕 Lnx内核把进程分为实时进程和普通 i u 进程。实时进程采用时间片轮转和先进先出
/ 二分别为进程的组标志符、 有效组标志
符、 设置的组标志符和文件系统设置
的组标志符
vl i l g e tt; o te s al o n a
/ Ln x为进程定义了 6 *进程的状态。 i u 种状
态: 运行态、 可中断的等待态、 不可中断 的等待态、 已经退 出, 僵尸态( 即进程 但 是其相关 的进程数据结构还没有被删 除, 占有的资源还没有释放, 允许其祖先 进程对其查询)停止态、 交换态( 、 用于表 明进程正在执行磁盘交换工作, 此态将
进程已用掉一些时间片, 所以它处于不利地 位, 原来与它拥有相同时间片的进程将开始
ld t ; p 二p i i d / 进程的唯一标识符 , , 范围为 。 2 -3 77 6
之间的整数
pd i
p r g p;
/ ,进程所在组的识别号
s r t uct t s ak
sr c *p p t, _ p r tu t o pr * p t , _ p
R u d bn l y on R i P i o oc
0 引言
Ln x 是 91年 一 位 名 叫 Ln s 19 iu i u
基本单位[。其主要特点是各进程可以并行 [ 1 ] 执行, 也就是说, 在不考虑资源共享的情况
下, 各进程的执行是独立的, 执行速度是异步
的, 良好的调度决策应尊重用户赋予的优先 级, 能给人一种所有进程都在同时运行的十
r un ;
间片用完或需要其它资源而被放入等待队
列, 系统调用结束, 或者从系统模式返回用户
/ 指向上、 , 下一运行进程的结构指针, 即
双向链接的运行队列
・2 ・ 2
模式等[。 2 此时, 1 系统将进程的。ut 成员 on r e
《 电脑与信息技米)01 20 年第 5 期
值设为 a调用进程调度函数 shdl 让它 , ceu 、 e
执行, 而当前进程被放回到运行队列中。
*p_c t, p r * s t , p_y p r * s t ; p_o p r
/ 分别为指向进程的原始祖先、 二 当前祖
先 弟
2 i x Ln 调度程序的数据结构分析 u
进程的核心数据结构存在于“ c d/ il e nu
、 最年青的子孙、 下一个最年青兄
/ 二该数组中的每一项代表 系统中的一个
任 其中N _ K 由 R S S 宏定义为 务。 T A
52 1
l g ne; o cutr n o
/ ,进程可运行的时间, 普通进程的可运
行时间就是这个值, 实值进程的可运 行时为该值加上 1 00 0
Lnx内核中进程调度的分析 i u
黄 敏, 亮 徐
( 长沙交通学院计算机工程系, 湖南 长沙 407) 106
摘 要: 进程是让操作 来统实现程序的并发执行、 系统资源共享、 用户随机使用系统
等功能的重要概念。 文章首先介绍进程在L u 内 i x 核中的 n 表示分式, 一 然后结合源代码
深入分析进程的时间片轮转、 先进先出、 on rb R ud i o n调度策略的具休实现 , 对我们 进一步7 Ln x内核的工作机制和学习编程均有较好的实用参考价值。 解 i u
/ ,调用函数把该进程放到可运行队列的
最后
s ih v >s t) wc (r 一 t e( tp e a / ,根据进程状态来决定移进或移出
T S R N I G状态 U N N A K
c s TAS a e K I NTE UP B E: RR TI L
示。 它相当大, 共有 74 9 行源代码。 但逻辑上 主要包括以下几部分: 双向链接的任务队列 和运行队列、 表示进程家族关系的指针、 系统 中可以同时运行的最大任务数量、 用于分配 进程号的哈希表等。以下列出比较重要的一 部分。
src t k tu t s src { tu t a
u _ u , i, i, u ; i t e ds df i d i u u sd d / 分别为进程的用户标志符、 , 有效用户 标志符、 设置的用户标志符和文件系
统设置的用户标志符 g _ g , i, i, g ; i t e ds df i d i g g sd d
的调度策略。 在时间片轮转策略中, 每个可执 行实时进程轮流执行一个时间片, 而先进先 出策略使每个可执行实时进程按各自在运行
《 电脑与信息技术)01 20 年第 5 期
・2 ・ 1
队列中的顺序执行, 且顺序不能改变。 普通进
程采用 R ud b 策略: on R i on 若系统中存在和 当前进程相同优先级的其它进程, 由于当前
i rdc i tippr A d n t e e l fsi fsot rud n oue n s e. te te sc cc ,it it ad n t d h a n h h i l y e r n u n o m i r
rbn hd l g to s del aa zd m i d t l u kre cd . o i s eui m hd ae py l e c b e w h x nl e c n e r e ny o n i i n e o T ee v go pata rf r g le u t udr ad u kre s hs h e d c cl e i v u fr o es n l x nl a o r i e rn a o s n t i n e ' w ri m cai ad r po rm n . okn ehns n l n ga mi g m e a r g K y rs Ln x ra;rcs;ceueTm Si C c ; i t Frt t e w d : iu K nlPoesShd l; i e c yl Fr I i O ; o e le e s n s u
s ut c dm i; t cee _ o a r x n
_d 到 向 tca 一rt 象 指 su tk su 的 p映 i rt tc s
任务指针
/ ,执行时的相关信息
su tk su ‘e _ ,p v tc a _tc n t s ,r _ rt rt x tk e s a
会被淘汰)
ห้องสมุดไป่ตู้
us nd g i , _ r ry ni e l plyr pi i ; g o oc t o t n / 分别为进程调度策略和实时进程的优 ,