linux - Linux 中如何使用/不使用硬件上下文开关?
问题描述
旧的 x86 英特尔架构在硬件级别提供上下文切换(以TSS的形式)。但是我已经读过,Linux 长期以来一直“放弃”使用硬件上下文切换功能,因为它们的优化程度较低、灵活性较低并且并非在所有架构上都可用。
令我困惑的是软件(linux)如何控制硬件操作(保存/恢复上下文)?Linux 可以选择不使用硬件设置上下文,但硬件上下文切换仍然会发生(使“优化”参数无关紧要)。
此外,如果 linux 没有使用硬件上下文切换,那么如何保存值%eip(指向用户程序中的下一条指令)并由内核恢复内核堆栈指针?(反之亦然)
我认为内核需要一些硬件支持来保存用户程序%eip并在中断服务程序开始之前切换%esp (用户到内核堆栈)寄存器。
如果这种支持确实是由硬件提供的,那么 linux 怎么不使用硬件上下文切换呢?
好糊涂!!!
解决方案
推荐阅读
- android - OpenCV 捕获的图像分辨率与 Fotoapparat
- python - 将字典写入txt文件,有什么方法可以格式化吗?
- node.js - 获取 RangeError:Protractor Typescript 自动化框架超过了最大调用堆栈大小
- elasticsearch - Hibernate Elasticsearch 搜索类型 dfs_query_then_fetch
- php - SQLSTATE [HY000]:一般错误:1030 得到错误 168
- angular - Angular Material 仅适用于 Angular Flex 布局?
- sql-server - SQL Server - 将两列值合二为一
- python - AttributeError: '对象没有属性'
- reactjs - 如何在渲染文本元素之前设置文本字体?
- python - 如何可视化 LSTM 单元 Tensorflow Matplotlib?