关于“一致代码段”

2024-01-12 00:32
文章标签 一致 代码段

本文主要是介绍关于“一致代码段”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2009-07-24 13:34)

“一致”的意思是,当转移的目标是一个特权级更高的一致代码段,当前的特权级会被延续下去,而向特权级更高的非一致代码段的转移会引起常规保护错误(gerneral-protection exception,#GP),除非使用调用门或者任务门。如果系统代码不访问受保护的资源和某些类型的异常处理(比如,除法错误和溢出错误),它可以被放在一致代码段中。为避免地特权级的程序访问而被保护起来的系统代码应放到非一致代码段中。

 

若目标代码的特权级低的话,无论其是否为一致代码段,都不能通过call或者jmp转移进去,这种转移会导致常规保护错误。

 

所有的数据段都是非一致的,这意味着不可能被低特权级的代码访问。与代码段不同的是,数据段可以被更高特权级的代码访问,而不需要使用特定的门。

 

门描述符并不描述某种内存段,而是描述控制转移的入口点。这种描述符好比一个同向另一代码段的门。通过这种门,可实现任务内特权级的变换和任务间的切换。所以,这种门描述符也称为控制门。

 

门包括以下几种:调用门、任务门、中断门和陷阱门。

 

调用门描述某个子程序的入口。调用门内的选择子必须实现代码段描述符,调用门内的偏移是对应代码段内的偏移。利用段间调用指令CALL,通过调用门可实现任务内从外层特权级变换到内层特权级。

任务门指示任务。任务门内的选择子必须指示GDT中的任务状态段TSS描述符,门中的偏移无意义。任务的入口点保存在TSS中。利用段间转移指令JMP和段间调用指令CALL,通过任务门可实现任务切换。

中断门和陷阱门描述中断/异常处理程序的人口点。中断门和陷阱门内的选择子必须指向代码段描述符,门内的偏移就是对应代码段的人口点的偏移。中断门和陷阱门只有在中断描述符表IDT中才有效。

这篇关于关于“一致代码段”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/596218

相关文章

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

【20240907问题记录(未解决)】Conda环境问题:SSH与本地环境变量不一致

Conda 允许用户在同一系统上创建多个独立的Python环境。然而,最近遇到了一个奇怪的问题:通过SSH连接到远程Ubuntu机器时,Conda环境变量的行为与本地机器不一致。以下是具体遇到的问题: 1. 问题描述 在本地Ubuntu机器上,我的conda的python版本是3.6,而pip版本可以通过命令 pip --version 查看,显示为: pip 21.3.1 from /ho

Android:EditText在hint字体大小和text字体大小不一致时的设置方法

今天碰到一个需求,有一个输入框EditText,要求输入某项金额,要求在未输入文字之前,hint提示,输入文字之后显示输入的文字,要求是未输入内容时hint字体大小为14sp,输入金额之后字体大小要变成30sp。,可是EditText本身没有这个属性可以设置,怎么办呢,只有在代码中添加监听事件了: /*** 添加监听,在hint时和text时切换字体大小*/cetMoney.addTextCha

分布式训练同步梯度出现形状不一致的解决方案

1、问题描述           为了加快大模型的训练速度,采用了分布式训练策略,基于MultiWorkerServerStrategy模式,集群之间采用Ring—Reduce的通信机制,不同节点在同步梯度会借助collective_ops.all_gather方法将梯度进行汇聚收集,汇聚过程出现了: allreduce_1/CollectiveGather_1 Inconsitent out

Redis面试题记录--缓存双写情况下导致数据不一致问题

前言 这个去年就看到过项目中的实现方案,结果今天问还是忘了,记录下。 1、问题描述 在高并发的情况下,如果当删除完缓存的时候,这时去更新数据库,但还没有更新完,另外一个请求来查询数据,发现缓存里没有,就去数据库里查,还是以上面商品库存为例,如果数据库中产品的库存是100,那么查询到的库存是100,然后插入缓存,插入完缓存后,原来那个更新数据库的线程把数据库更新为了99,导致数据库与缓存不一致

使用多线程解决读写数据不一致的问题

引言 在工作中我们经常会遇到从一个文件中读取数据,然后去做另一个操作,最近小编在日常工作中遇到一个问题:从一个json文件中读取参数化数据循环对比配置,发现生成的配置都是取得最后一个参数所生成的,在这里小编就很疑惑了,查看日志,入参都是没有问题的,是什么原因引起的呢?小编排查日志很久都没发现啥问题,于是我用单个参数进行更新发现每个参数都是OK的,不会存在更新失败的问题,所以参数是没有问题的,那么

小tip:中文英文左右padding一致两端对齐实现

by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=4908 不是什么稀奇的技术,很多很多年前自己就玩耍过。 之所以今天拿出来说一下,是因为今天几个小伙伴遇到类似问题,突然发现,一些自己觉得不怎么样的东西,说不定对别人而言会有很大帮助,于是我就打算写篇短文简单介绍

为何R语言love图显示的分类变量点与smd值不一致

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述   为何R语言love图显示的分类变量点与smd值不一致。 R语言用Matchit进行倾向评分匹配,匹配后用summary计算smd值,用

量化投资策略与技术学习PART7:量化选股之一致预期

上一节在说到行为金融学中提到过羊群效应,其实它还有一个更官方的名字叫做一致预期。一致预期是指市场上对某股票有一致看法——看多或者看空。在众多分析师的一致预期下,投资者会产生羊群效应,大量买入或者卖出,从而使得某股票持续上涨或者下跌,这就是一致预期选股的基本原理。 1、基本概念 股票的长期收益并不仅仅依赖于实际利润增长情况,还取决于实际的利润增长与投资者预期的利润增长之间的差异。持续的成长性可以

protostuff-runtime服务端和安卓端编解码字段顺序不一致

解决protostuff-runtime服务端和安卓端编码/解码字段顺序不一致问题。因为fill方法的参数fieldMap是LinkedHashMap实现的,所以会保存存入数据的顺序,为了使服务端和安卓端字段顺序相同,可以更改RuntimeSchema类中的fill方法,使用可排序TreeMap根据key将Map排序,最后再存入fieldMap即可实现服务端和Android端保存的顺序是相同的。