操作系统学习(七) 、保护机制概述

保护机制是可靠运行多任务环境所必须的。它可以用于保护各个任务免受互相之间的干扰。在软件开发的任何阶段都可以使用段级和页级保护来协助寻找和检测设计问题和错误。当程序对错误内存空间执行了一次非期望的引用,保护机制可以阻止这种操作并且报告此类事件。

保护机制可以被用于分段和分页机制。处理器寄存器的2个比特位定义了当前执行程序的特权级,称为当前特权级CPL。在分段和分页地址转换过程中,处理器将对CPL进行验证。

  • 通过设置控制寄存器CR0的PE标志(位0)可以让处理器工作在保护模式下,从而也就开启了分段保护机制。一旦进入保护模式,处理器并不存在明确的标志来停止或启用保护机制。不过基于特权级的保护机制部分可以通过把所有段选择符和段描述符的特权级都设置为0级来隐含地关闭。这种处理方式可以在段之间禁止特权级保护壁垒,但是其他段长度和段类型检查保护机制任然起作用。
  • 设置控制寄存器CR0的PG标志(位31)可以开启分页机制,同时也开启了分页保护机制。同样,处理器中也没有相关的标志用来开启条件下禁用或开启页级保护机制。但是通过设置每个页目录项和页表项的读/写标志和用户/超级用户标识,我们可以禁止页保护机制。设置这两个标志可以使得每个页面都可以被任意读写,因此实际上也就禁用了页级保护。

对于分段级保护机制,处理器使用段寄存器中选择符(RPL和CPL)和段描述符中各个字段执行保护验证。对于分页机制,则主要利用页目录和页表项中的R/W和U/S标志来实现保护操作。

原文地址:https://www.cnblogs.com/ay-a/p/9097966.html

时间: 2024-08-02 23:56:55

操作系统学习(七) 、保护机制概述的相关文章

java反射学习之一反射机制概述

一.反射机制背景概述 1.反射(reflection)是java被视为动态语言的一个关键性质 2.反射机制指的是程序在运行时能获取任何类的内部所有信息 二.反射机制实现功能概述 1.只要给定类的全名,就能通过反射获取类的所有信息 2.程序在运行是能够获取任何一个对象所属的类对象 3.在运行时可以获取类的所有属性,并对其操作 4.在运行时可以获取类.父类的所有方法并调用 5.当前的主流框架struts2.srping.hiberate等框架的核心功能都是通过java反射机制来实现的 三.反射相关对

Servlet学习笔记(七)—— JSP概述

1.Servlet两个缺陷: ①所有HTML标签必须包在Java字符串中,使得发送HTTP响应十分繁琐: ②所有文本和HTML标签都必须进行硬编码,即使对表示层做极其微小的修改,也需要重新编译. 2.注释: (1)JSP备注:<% %>,不会发送到浏览器,不能嵌套 (2)HTML备注:<!-- -->,不被容器处理,直接发送到浏览器,用途之一是标识JSP页面.在处理带有许多JSP片段的应用程序时,开发者通过查看HTML源代码,可以轻松查出某个HTML代码部分生成了那个JSP页面.

操作系统学习(十一) 、页级保护

一.页级保护方式 页目录和页表表项中的读写标志R/W和用户/超级用户标识U/S提供了分段机制保护属性的一个子集.分页机制只识别两级权限.特权级0.1和2被归类为超级用户级,而特权级3被称为普通用户级.普通用户级的页面可以被标志成只读/可执行或可读/可写/可执行.超级用户级的页面 对于超级用户来说总是可读/可写/可执行的,但普通用户不可访问. 对于分段机制,在最外层用户级执行的程序只能访问用户级的页面,但是在任何超级用户层(0.1.2)执行的程序 不仅可以访问用户层的页面,也可以访问超级用户层的页

(笔记)Linux内核学习(七)之内核同步机制和实现方式

一 原子操作 指令以原子的方式执行--执行过程不被打断. 1 原子整数操作 原子操作函数接收的操作数类型--atomic_t //定义 atomic_t v;//初始化 atomic_t u = ATOMIC_INIT(0); //操作 atomic_set(&v,4); // v = 4 atomic_add(2,&v); // v = v + 2 = 6 atomic_inc(&v); // v = v + 1 = 7 //实现原子操作函数实现 static inline vo

操作系统学习笔记----进程/线程模型----Coursera课程笔记

操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进程创建.撤销.阻塞.唤醒.... 0.2 线程模型 为什么引入线程 线程的组成 线程机制的实现 用户级线程.核心级线程.混合方式 1. 进程的基本概念 1.1 多道程序设计 允许多个程序同时进入内存运行,目的是为了提高CPU系统效率 1.2 并发环境与并发程序 并发环境: 一段时间间隔内,单处理器上

linux程序的常用保护机制

linux程序的常用保护机制 来源 https://www.cnblogs.com/Spider-spiders/p/8798628.html 操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,包括DEP.ASLR等.在编写漏洞利用代码的时候,需要特别注意目标进程是否开启了DEP(Linux下对应NX).ASLR(Linux下对应PIE)等机制,例如存在DEP(NX)的话就不能直接执行栈上的数据,存在ASLR的话各个系统调用的地址就是随机化的. 一.checksec che

操作系统学习

本文原创,转载请注明来至:http://blog.csdn.net/j903829182/article/details/38060553 1.计算机发展的4个时代:电子管时代,晶体管时代,集成电路时代和大规模集成电路时代 2.操作系统发展过程:(1)单道批处理,(2)多道批处理,分时和实时系统时代,(3)多方式系统时代(4)并行与分布式系统时代. 3.操作系统:是一种系统软件,是软硬件资源的控制中心,它以尽量合理有效的方法组织单个或多个用户以多任务方      式共享计算机的各种资源,并提供编

操作系统学习笔记:实时系统

一.概述 实时系统不仅要求计算结果正确,而且要求结果必须在一个特定的截止期限内产生,否则即使正确也没有意义.比如一些嵌入式系统,安全关键系统. 实时计算有两种类型:硬实时系统和软实时系统.硬实时系统有最严格的要求,保证关键实时任务在最后期限内完成.软实时系统限制较少,仅仅指关键实时任务将获得优先于其他任务的权利,并且会保留优先级直到完成. 二.系统特性 实时系统的典型特性: 1.目标单一 2.体积小 CPU.内存常常都很小,所以空间占用很小,通常用于家电设备和消费设备中. 3.批量生产成本低 常

JVM类加载机制概述:加载时机与加载过程

摘要: 我们知道,一个.java文件在编译后会形成相应的一个或多个Class文件,这些Class文件中描述了类的各种信息,并且它们最终都需要被加载到虚拟机中才能被运行和使用.事实上,虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的过程就是虚拟机的类加载机制.本文概述了JVM加载类的时机和生命周期,并结合典型案例重点介绍了类的初始化过程,揭开了JVM类加载机制的神秘面纱. 版权声明: 本文原创作者:书呆子Rico 作者