博客
关于我
操作系统内核级线程
阅读量:663 次
发布时间:2019-03-15

本文共 324 字,大约阅读时间需要 1 分钟。

在这里插入图片描述

为了充分应用多核的CPU,应该使用内核级的线程。可以给每个CPU并行使用内核线程,在用户级线程的时候,操作系统无法感知,所以用户级线程同一时间只能使用一个核心。

内核级线程维护着两套栈,一套用户栈,一套内核栈。int指令触发的时候,发生中断,硬件里有写入内核栈的指令,此时触发内核栈,进行切换。并且内核栈也会连上用户栈,形成一套栈。
在这里插入图片描述
在这里插入图片描述

A调用B,B进行read,然后读取到中断,中断的时候,read内核调用,使用到硬件写入的内容,用户栈和内核站进行了关联,然后再内核中执行,执行的时候会磁盘读写,这时候就会阻塞了,会调度让其他的线程工作。找到TCB,去完成内核栈的切换,内核的切换之后,在使用iret,去直接切换到用户栈中。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进程的切换还会加上映射表

在这里插入图片描述

转载地址:http://uqamz.baihongyu.com/

你可能感兴趣的文章
Netty源码—6.ByteBuf原理二
查看>>
Netty源码—7.ByteBuf原理三
查看>>
Netty源码—7.ByteBuf原理四
查看>>
Netty源码—8.编解码原理一
查看>>
Netty源码—8.编解码原理二
查看>>
Netty源码解读
查看>>
netty的HelloWorld演示
查看>>
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
查看>>
Netty的网络框架差点让我一夜秃头,哭了
查看>>
Netty相关
查看>>
Netty简介
查看>>
Netty线程模型理解
查看>>
netty解决tcp粘包和拆包问题
查看>>
Netty速成:基础+入门+中级+高级+源码架构+行业应用
查看>>
Netty遇到TCP发送缓冲区满了 写半包操作该如何处理
查看>>
netty(1):NIO 基础之三大组件和ByteBuffer
查看>>
Netty:ChannelPipeline和ChannelHandler为什么会鬼混在一起?
查看>>
Netty:原理架构解析
查看>>
Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
查看>>
Network Sniffer and Connection Analyzer
查看>>