“Linux”

时间:2017-07-01 22:29:09

标签: c++ c linux multithreading

根据video,来自Udacity的入门操作系统课程:

  

要使用户级线程首先实际执行,它必须与内核级线程相关联。然后,OS级别调度程序必须将该内核级线程调度到CPU上。

根据Remzi H. Arpaci-Dusseau's book (Operating Systems: Three Easy Pieces) in chapter 6

  

我们已经描述了一些实现CPU的关键低级机制   虚拟化,一组我们统称为有限的技术   直接执行。基本思路很简单:只需运行程序即可   你想在CPU上运行,但首先要确保设置硬件   以便在没有OS协助的情况下限制流程可以执行的操作。

     

这种一般方法也适用于现实生活。例如,那些   有孩子的,或者至少听过孩子的,可能是   熟悉婴儿打样房间的概念:锁柜包含   危险的东西和覆盖电源插座。当房间是   这样准备就绪,你可以让宝宝自由地漫游,保证知识   房间最危险的方面受到限制。

     

以类似的方式,操作系统“婴儿证明”CPU,首先(在   启动时间)设置陷阱处理程序并启动中断计时器,   然后只运行受限模式的进程。通过这样做,   操作系统可以放心,流程可以高效运行,只需要   操作系统干预以执行特权操作或何时执行特权操作   垄断了CPU太长时间,因此需要关闭。

第一个引用声明内核级线程必须与要运行的用户级线程相关联,但根据第二个引用,OS直接执行用户级线程但受到严格控制,没有任何关联。

问题:

1)我是新手Linux用户。对于Linux操作系统,上述哪种方法更正确?

2)是的,有很多关于互联网多线程模型的帖子和链接。但是找不到单个示例代码。你能给一个简单的C代码一对一和多对一的Linux代码吗?

0 个答案:

没有答案