linux 调度 处理器时间,在Linux中从处理器的角度来看进程调度

本文探讨了Linux内核如何通过中断机制,如定时器中断,来调度进程。解释了中断上下文切换过程,涉及硬件中断、任务let和工作队列。重点在于理解中断如何将控制权转交给内核,以及短定时器间隔下进程重用的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我知道调度是由内核完成的.让我们假设一个

Linux中的进程(P1)当前正在处理器上执行.

由于当前进程对时间片一无所知

并且内核当前没有在处理器上执行,内核如何安排下一个进程执行?

是否有某种中断告诉处理器切换执行内核或任何其他机制?

简而言之,它是一个中断,它将控制权交还给内核.中断可能由于任何原因而出现.

大多数情况下,内核由于定时器中断而获得控制权,或者按键中断可能会唤醒内核.

中断通知外围系统IO或几乎任何改变系统状态的内容都可能

唤醒内核.

更多关于中断的信息:

这样的中断分为上半部分和下半部分.底部半部分用于从中断上下文中推迟工作.

上半部分:在禁用中断的情况下运行因此应该是超高速的,通常会尽快放弃CPU

1) stores interrupt state flag and disables the interrupts(reset

some pin on the processor),

2) communicates with the hardware, stores state information,

delegates remaining responsibility to bottom-half,

3) restores the interrupt state flag and enables the interrupt((set

some pin on the processor).

下半部分:处理延迟工作(上半部分的委托工作)在启用中断的情况下运行,因此可能需要一段时间才能完成.

两种机制用于实现下半部分处理.

1) Tasklets

2) Work queues

.

If timer is the interrupt to switch back to kernel, is the interrupt a hardware interrupt???

在我们讨论的上下文中感兴趣的定时器中断是硬件定时器中断,

在内核中,字定时器中断可能意味着(与架构相关的)硬件定时器中断或软件定时器中断.

阅读this以获得简要概述.

更多关于timers

记住“计时器”是一个高级话题,难以理解.

is the interrupt a hardware interrupt??? if it is a hardware

interrupt, what is the frequency of the timer?

阅读Chapter 10. Timers and Time Management

if the interval of the timer is shorter than time slice, will kernel give the CPU back the same process, which was running early?

这取决于许多因素:使用sheduler,加载系统,处理优先级,类似的东西.

最受欢迎的CFS并不真正依赖于抢先的时间片概念!

CFS选择的下一个合适的进程将获得CPU时间.

定时器滴答,时间片和上下文切换之间的关系不是那么直截了当.

每个进程都有自己的(动态计算的)时间片.内核跟踪进程使用的时间片.

在SMP上,CPU特定活动(例如监视当前正在运行的进程的执行时间)由本地APIC计时器引发的中断完成.

本地APIC定时器仅向其处理器发送中断.

但是,默认时间片在include/Linux/sched/rt.h中定义

阅读this.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值