作者hizuki (入赘桧月家,我妻彩花)
看板CSSE
标题Re: thread (执行绪) definition??
时间Wed Jun 23 17:06:12 2021
前一段时间面试,被问了一堆怪问题,其中一道问题就是要解释
中的Process(行程)和thread(执行绪)的区别,附带解释
Inter-process-communication
默认作答的作业系统指Android Linux,但是现在回头想来
在ARM设备中整个演变的蛮厉害的
我最初的回答是Linux中Process只是一个thread group,
group之间有独立Heap和memory map table。
一个Process没有办法访问另外一个Process的Heap,因爲一个
Process中有效的Virtual address在另外一个Process是不同的
位置记忆体或者不存在。
以前Linux的DRM memory share机制,有个是用name的,
这是global都可以访问的。而现在最常用的Ion和将来的DMAHeap
都是基於dmabuf-fd的,在Linux中任何fd都是只存在current的
fd_table的,是每个行程一个表的。
不过Android作业系统早期我记得是可以在Userspace使用Page
的Address来访问记忆体的,好死不死,这家正好还有做类似的事情。
Androi要求的PIE功能也应该是有关联性的,但是我其实不太明白
他的作用。
而关於调度问题,Process是有context switch的成本的,而
我回答的是同一个group中的thread其实只相当於offset,
所以context switch成本很小。这边好像没有文本支持我的说法?
另外现在一个Process的threads可以run在不同的CPU core上了,
前面有否定的答案我不确定爲什麽,cache snooping这样的技术应该
可以解决Cross cores的coherence问题才对。
但是在MCU这样环境中用的RTOS又没有Process的概念的样子,都只有
平级的thread(task)。
--
你比较喜欢哪一个?
当年不是党国大老但是被江浙财团捧红的中国帅哥
跟同样拥兵一方的诸侯约会裁军结果半途诸侯们爽约,平常有在写日记的庄严男人开始发飙
在旁边读着荒漠甘泉冷眼旁观看着蔷薇战争的人,为了中国的事情争吵
别国调侃是不是中国总统,义正词严的说着我是民族的灯塔的威严老先生
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 192.147.44.15 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/CSSE/M.1624439177.A.1A2.html