永发信息网

抢占式内核中,线程在系统调用过程中被抢占,然后又被重新调度时,如何返回至被中断的系统调用的

答案:2  悬赏:80  手机版
解决时间 2021-03-06 14:38
线程A进入系统调用,实际上是进入中断。此时转至线程B时,还保持系统调用的中断状态吗?如果不是,则返回线程A时如何使系统处于系统调用中断状态?
最佳答案
首先,一般配置的linux,如果进程正在进行系统调用,那么此时进程就是正运行在内核态,而内核态的进程是不可被抢占的。
你说的这种情况,属于编译内核的时候开启了“内核可抢占”这个特性,这种情况下,即使进程正在内核态执行系统调用,也可以被其他进程抢占,这时,首先系统会在进程结构体中记录下这个进程当前是在内核态运行,然后,每个进程都有专属于自己的内核栈,系统会把当前的执行上下文信息都记录到这个进程的内核堆栈上。
以后这个进程恢复运行的时候,内核会从它的结构体中读到被打断前它处于内核态,进而从它的内核栈中读取当时的上下文信息并进行恢复,这样,进程就得以重新运行了。

有问题请追问
全部回答
1线程的调度并不是由java决定的,而是os,os可以保证所有线程都有机会得到执行。即时某个线程正在忙。也会被休眠。具体的你要看os相关的线程调度这一块,这叫抢占式任务调度。 2即使线程t的优先级高,在调用start时,也不会保证线程已经真实的启动。os只是把他放到了线程队列中去排队。而当前线程继续执行。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
阴阳先生名词解释
求:高永ひなこ的漫画
哪里能找到陨石
张湾村村地址有知道的么?有点事想过去
13万存银行定期3年利息是多少
求蓝天航空公司空姐王静小说txt全集?
lx-yl+(y-2)的方2=0.则x+y=?
老房子危房,原屋主为本村人,现屋主是外村人
我在海里游泳,海底火山爆发我会怎么样?
郑州现在门市房的房租多少?大概300平方吧
3Dl文件怎样转换为3DMAX 可用格式
上海到南充火车k4616在苏州什么广场上车
孙家湾地址在什么地方,想过去办事
唐山有哪些钢厂
为了小三非要和我离婚,离婚后还和我住在一起
推荐资讯
跑男到底是什么意思? 有什么好看的? 看这种
翻译(中文-英文)
unity渠道接入求助 百度SDK
qq飞车版本太低怎么办?
爱一个人就要为他付出一切吗
关于感恩父母的歌曲或者简短的文章
120w电机水泵扬程8米,水压是多少
六年级下册计算应用
可以不考CET-4直接考CET-6吗?
迅雷的动漫视频你们看得了吗
求:拂弦十三曲(GL) 求《夏娃的肋骨》(GL)全
金庸无双带队友找南贤会怎么样
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?