CPU模式
来源:互联网 发布:长虹网络电视价格 编辑:程序博客网 时间:2024/04/30 07:31
1、CPU模式也称CPU状态。
通常将操作系统程序的运行状态称为内核态(或核心态、管态)。将用户程序的运行状态称为用户态(或目态)。
这样做的目的是为了确保操作系统的正常执行,程序的执行空间分为内核空间和用户空间,各自按不同的权限运行。
在逻辑上相互隔离,用户程序只能在用户空间中操作用户数据。许多操作系统采用硬件支持来区分各种执行模式。
---- 当CPU处于内核态时,程序可以执行全部指令包括特权指令,使用所有资源,具有改变CPU状态的能力;
---- 当CPU处于用户态时,程序只能执行非特权指令,如果用户程序执行特权指令,会导致非法执行而产生保护中断,
继而转向操作系统的“用户非法执行特权指令”的异常处理程序进行处理。
特权指令是指只能提供给操作系统的核心程序使用的指令。如启动I/O设备、设置时钟、控制中断屏蔽位、清主存、加载程序状态字(PSW)等。
2、状态转换
导致CPU从用户态-->内核态转换的情况
1)程序请求操作系统服务,执行系统调用。
2)程序运行时,产生中断或异常事件,运行程序被中断,转向中断处理或异常处理程序工作。
两类情况都通过中断机制发生,中断和异常是用户态到内核态转换仅有的途径。
当从用户态转向内核态,不仅CPU模式需要切换,而且所使用的堆栈也可能需要由用户堆栈切换到内核堆栈。
以下图说明用户态到内核态的转换:
为了从内核态转向用户态,操作系统提供一条特权指令称作加载程序状态字,用来实现从内核态返回到用户态,
将控制权交给应用进程。
=========================================
内核态具有较高的特权,能执行一切指令,访问所有寄存器和存储区,通常操作系统内核就运行在内核态。
用户态是一种具有较低特权的执行状态,它只能执行规定的指令,访问规定的寄存器和存储区。通常用户程序都是运行在用户态。
习题:
1)当操作系统程序退出执行,让用户程序执行时,系统会:从内核态变为用户态。
2)当CPU执行操作系统内核代码时,称处理器处于:内核态。
3)当CPU处于内核态时,它可以执行的指令是:计算机中的所有指令。
4)当CPU处于用户态时,它可以执行的指令是:仅限于非特权指令包括访管指令。
5)从用户态到内核态的转换是由硬件完成的。
A、硬件 B、内核态程序 C、用户程序 D、中断处理程序
解析:从用户态到内核态的转换是用户程序执行访管指令,引起一次中断,触发中断后,硬件中断机制将计算机状态置为用户态。
内核态程序是指在内核态下执行的程序。
6)用户在程序中试图读取存放在硬盘中某文件的第2个逻辑块,使用操作系统提供的接口是:系统调用。
解析:操作系统接口有命令接口、程序接口(或系统调用)和图形接口,访问存放在外存储器中的文件,需要内核来实现,
用户程序只能通过系统调用来完成这一工作。
7)一般的过程调用是调用一个应用过程或者某个系统程序,它们都处于同一状态下,即用户态或内核态。
而系统调用的调用者是运行在用户态的用户程序,被调用过程一定是系统程序,而系统程序只能在系统态下运行。
8)访管指令仅在用户态时使用,执行访管指令将用户态转换为内核态。
用户程序在执行访管指令时会产生访管中断。
9)在操作系统中,读时钟指令,寄存器清零、置时钟指令和取数指令中,只能在内核态下执行的指令是置时钟指令。
解析:若在用户态下执行置时钟指令,则一个用户进程可以在时间片还未到之前把时钟改回去,从而导致时间片永远不会用完。
10)内部中断是由CPU及内存的某种内部因素引起的,如运算溢出等,内部中断通常称为:自陷或陷入
11)外部中断是由CPU及内存外部的中断事件引起的,如I/O设备产生的中断。
12)通常将CPU模式分为内核态和用户态,这样做的目的是:为了提高操作系统的安全性。
13)中断的处理是由硬件和软件协同完成的,各中断处理程序是操作系统的重要组成部分,所以对中断的处理是在内核态在进行的。
14)如果没有中断,在单处理器环境中是否能够实现多道程序设计?为什么?
答:不能。因为一个程序一旦被调度执行,将一直执行下去,中间不可能被打断,不能达到多个进程交替执行的并发目的。
15)简述中断处理过程。
答:当中断发生时,一旦CPU响应中断,系统就开始进行中断处理。中断处理的过程如下:
(1)保护被中断进程的现场。为了在中断处理结束后能使进程正确地返回到中断点,系统必须保存当前处理器的程序状态字(PSW)
和程序计数器(PC)等的值。
(2)分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。
(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程。
- CPU模式
- CPU模式
- CPU模式
- cpu的工作模式
- 多核CPU运行模式
- CPU的运行模式
- cpu 大小端模式
- 修改手机CPU模式
- CPU模式学习总结
- cpu模式调整
- CPU 实模式 保护模式
- JILK - CPU - (3) - CPU的操作模式
- x86 CPU的操作模式
- 判断CPU大小端模式
- Intel CPU的保护模式
- CPU三种工作模式
- CPU的大小端模式
- CPU的大小端模式
- quick真机调试注意事项
- 管理失控,因为你不会安排工作
- [J2EE]实现一个最简单的基于Servlet的web程序
- MySQL5.6.11安装步骤(Windows7 64位)
- Fragment的概念与使用
- CPU模式
- Python sklearn 学习笔记(快速)
- java基础教程--IO
- 定义、声明、初始化、赋值 小记(C++)
- 数据库事务处理机制
- CentO S 7 开放端口
- HTTP状态码大全
- 网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解
- 爬虫系列2:scrapy项目入门案例分析