采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我问个题外话,就是一个用户态的进程,假如在4核心CPU的情况下,是不是当这个进程被分配给核心1之后,这个用户态进程底下的线程只能在这个核心1里处理呢(此处假设进程内的线程均为用户态线程),导致核心234被浪费,这些线程就无法利用多核心并发的优势了。实际上这些用户态线程只能微观上在核心1里并发而已,说白了就是只能享受核心1分配给这个进程的时间片。我说的对吧?
同样如果是一个内核态进程,他内部全都是内核态线程,这样它就能真正意义上在全局CPU的平台上,利用核心1234来达到真正的并发,是这样嘛?
对的,你的理解是正确的。
对于一个用户态进程,当它被分配到一个核心上时,该进程下的所有线程都只能在该核心上运行。这是因为用户态线程是由进程自己的用户空间管理的,而不是由操作系统内核管理的。因此,操作系统只能将整个进程分配给一个核心,而不能将进程中的不同线程分配给不同的核心。
这意味着,如果一个用户态进程只有一个线程在运行,那么它只能在一个核心上运行,而其他核心将被浪费。但是,如果该进程有多个线程在运行,那么这些线程可以在该核心上并发执行,从而利用该核心的多个处理器核心。
对于一个内核态进程,它的所有线程都是由操作系统内核管理的,因此可以在多个核心上并发执行。这意味着,内核态进程可以利用所有可用的处理器核心,从而实现真正的并发执行。
登录后可查看更多问答,登录/注册
编程之前先学这门课,系统补足计算机基础知识,夯实编程地基
4.0k 17
2.4k 14
1.8k 13
2.1k 11
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号