
操作系统-哈工大-李治军
lj6132
I am a HAL 9000 computer.
展开
-
11、内核级线程
1、用户级线程的局限:用户级线程的切换不需要进入内核,内核不知道各个线程(TCB)的存在,所以如果某个线程进入内核并且发生阻塞后,内核可能会对进程进行调度,从而阻塞了所有的线程。例如chrome中的每个标签页都是线程,如果某个网页卡了,整个浏览器都动不了,其他网页也点不了,因为CPU已经把控制权交给别的进程了。因为内核不知道多线程的存在,自然不能给线程分配硬件,不能发挥多核处理器的优势。多处理器与多核的区别:多核有多个CPU,但是只有一个内存和一个MMU,只有一套内存映射。多处理器有多个内存和MMU。原创 2020-10-19 19:00:55 · 759 阅读 · 0 评论 -
10、用户级线程:指令的切换
为什么先讲线程?因为线程切换是只有指令序列(PC指针)在切换,加上内存切换才是进程的切换。这是从简入繁的顺序 。1、用户级线程:用户主动切换线程进程 = 资源 + 指令执行序列线程保留了并发的有点,避免了进程切换的代价。指令序列在切换的时候,需要切换PCB中记录的信息,寄存器等。能不能不切换内存映射表(寄存器还是得切换的)?答案是可以的,这就是用户级线程所做的事情。将资源和指令执行分开,一个资源+多个指令执行序列。举个例子:一个浏览器需要从网上下载数据,需要显示文字,需要解压图片,这些不同的任务实原创 2020-10-19 18:57:39 · 461 阅读 · 0 评论 -
9、多进程图像:包括进程管理和内存管理
1、多进程如何组织的使用程序控制块PCB(Process Control Block)记录进程信息(寄存器信息等),维护多个队列(链表)。执行队列:单CPU的话就一个。就绪队列:CPU空出来了就可以执行了。阻塞队列:等待某些时间才能转化到就绪队列。这三个队列类似于在饭堂排队,一个人在打饭(执行队列),一队人在排队等打饭的窗口(就绪队列),一队人因为等待某些事件,即使CPU空闲也不能运行(例如没带饭卡,等人。在实际情况中就是等待磁盘读写。)2、多进程如何交替:引出调度将PCB块放到不同的队列原创 2020-10-19 18:52:08 · 190 阅读 · 0 评论