社区
Linux_Kernel
帖子详情
弱弱的问,一个while(1){}的程序在user space中运行,是怎么被系统中断并切换到别的process的?
gkernel
2006-10-31 07:22:40
弱弱的问,一个while(1){}的程序在user space中运行,是怎么被系统中断并切换到别的process的?
谢谢~
...全文
722
12
打赏
收藏
弱弱的问,一个while(1){}的程序在user space中运行,是怎么被系统中断并切换到别的process的?
弱弱的问,一个while(1){}的程序在user space中运行,是怎么被系统中断并切换到别的process的? 谢谢~
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
george3038
2007-03-18
打赏
举报
回复
任务都是都是while { 1} 死循环。
HaoyuTan
2007-03-17
打赏
举报
回复
cpu可以被外部的设备中断,比如产生时钟中断的芯片,cpu被中断时自动跳转到中断处理过程进行处理,而中断处理过程一般由操作系统在系统启动时设置
ToIP
2007-03-16
打赏
举报
回复
执行到while(1);之后这个用户态进程将永远处于ready状态,只要获得CPU时间就可以运行。但是无论如何,在每个时间片用完之后进程都会陷入内核,这是通过时钟中断来实现的。内核中的调度模块将根绝情况决定下面的时间片让哪个进程来运行。至于上下文如何切换,我也不很懂,比如在x86上,有全局描述符表,中断描述符表,局部描述符表,这些表就构成了硬件的上下文,还有一些软件上的上下文,那就是linux的进程控制块啊之类的,不甚了解,你要感兴趣自己慢慢学吧!
joyself
2007-03-11
打赏
举报
回复
1) 时间片到了
2) 被抢占
参考 ch4 Process Scheduling of the book "Linux kernel Development, 2nd"
仰望星空WU
2007-03-09
打赏
举报
回复
多任务的切换了:1)时间片到了;2)软件或硬件中断
hnhbdss
2007-03-09
打赏
举报
回复
时钟中断的到来会进入当前进程的内核态,返回时切换到别的进程
manespz
2007-03-03
打赏
举报
回复
很简单,如果你正在while(1); 那么如果你安装了一个轮训信号,就会中断while(1)。然后中断完成之后又继续while1.比如安装了一个时钟信号
redex
2007-03-02
打赏
举报
回复
mark.
prozilla
2007-02-18
打赏
举报
回复
如何切换,取决于调度算法。公交线路有公交调度,UNIX 系统有进程调度器
tkit
2006-11-06
打赏
举报
回复
关键在于,一个用户程序在运行的时候,系统中断是允许的,在这种情况下,即使用户程序没有主动通过系统调用切换到内核,周期性的时钟中断和随机的设备中断都会使指令流从用户态切换到内核态,而一旦进入内核态,当前进程就有可能被切换。对于非抢占式内核,通常时间片用完就会被切换,对于抢占式内核,切换的几率由于高优先级事件会更高。
ghyd
2006-11-06
打赏
举报
回复
楼主似乎对多任务得理解不够. 在你的用户任务里,即使你写的是个看似"不间断"的任务,但实际上,系统的任务调度可以打断你的这个任务的执行,转而执行其他具有更高优先级的任务,或者响应硬件中断. 最后,再返回来,继续执行你的任务.
zengwujun
2006-11-02
打赏
举报
回复
看看这个吧, 虽然有点长, 挑你关心的看
http://www.oreilly.com.cn/samplechap/understandingLinuxKernel/under_linux_kern_10.pdf
循环神经网络 RNN Recurrent Neural Networks 介绍
循环神经网络 RNN Recurrent Neural Networks 介绍
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章