![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
操作系统
倾听雪的声音
这个作者很懒,什么都没留下…
展开
-
用户级线程的切换、核心级线程的陷入内核与切换
一、用户级线程又不能提升并发度,有啥用呢?用户级线程可减少每个服务的响应时间,如浏览器:用户级线程1用于下载页面内容,用户级线程用于显示当前的下载内容。这样“显示页面这个服务”可以提前响应。二、所有线程共用一个用户栈行不行?不行,用一个栈时调用函数会压栈,切换线程会压栈,一通乱压,退栈时没调用切换,可能会退出另一个线程的指令地址。即没调用切换却切换了。所以每一个用户线程都得有一个用户栈。三、用户级线程的切换通过TCB切换用户栈四、核心级线程。每个线程两个栈,内核栈会关联用户栈,TCB会关联内核原创 2020-10-27 22:52:05 · 549 阅读 · 0 评论 -
进程、线程概念得理解
参考一: link.参考二: link.一、用户级线程什么是用户线程:用户线程由线程库管理,对内核是透明的。不支持线程(即不支持内核线程)的操作系统上只能用这种方式实现用户线程。管理用户线程的方法:线程库在管理线程时,要为用户线程所属的进程创建专用的线程表(存在于用户空间,不在进程的pcb中)。利用线程表中记录的每个线程的程序计数器、堆栈指针,寄存器和状态等,可以完成在用户线程的切换(包括线程的现场保护)。并可以制定属于进程的用户线程调度算法(局限性很大,因为没有计时器,某一线程可能会“永久”运原创 2020-10-27 22:40:10 · 134 阅读 · 0 评论 -
系统调用
1、应用程序调用库函数(API);2、API 将系统调用号存入 EAX,然后通过中断调用使系统进入内核态;3、内核中的中断处理函数根据系统调用号,调用对应的内核函数(系统调用);4、系统调用完成相应功能,将返回值存入 EAX,返回到中断处理函数;5、中断处理函数返回到 API 中;6、API 将 EAX 返回给应用程序。...原创 2020-10-27 22:38:10 · 79 阅读 · 0 评论