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

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

在这里插入图片描述

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

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

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

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

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

在这里插入图片描述

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

你可能感兴趣的文章
MyPython
查看>>
MTD技术介绍
查看>>
MySQL
查看>>
MySQL
查看>>
mysql
查看>>
MTK Android 如何获取系统权限
查看>>
MySQL - 4种基本索引、聚簇索引和非聚索引、索引失效情况、SQL 优化
查看>>
MySQL - ERROR 1406
查看>>
mysql - 视图
查看>>
MySQL - 解读MySQL事务与锁机制
查看>>
MTTR、MTBF、MTTF的大白话理解
查看>>
mt_rand
查看>>
mysql -存储过程
查看>>
mysql /*! 50100 ... */ 条件编译
查看>>
mysql 1045解决方法
查看>>
mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
查看>>
mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
查看>>
mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
查看>>
mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
查看>>
mui折叠面板点击事件跳转
查看>>