目录

1.3.1用户态与核心态

1.3.2中断与异常

1.3.3系统调用

【例题】


1.3.1用户态与核心态

在计算机系统中,CPU通常运行两种不同性质的程序: 一种是操作系统内核程序;另一种是用户自编程序,简称用户程序或应用程序。为了避免操作系统及其关键数据(如PCB等)受到用户程序有意或无意的破坏,通常将处理器的执行状态分为:核心态和用户态。

(1)核心态

又称管态、系统态。是操作系统管理程序执行时机器所处的状态。,它具有较高的特权,能执行包括特权指令的一切指令,能方问所有寄存器和存储区。

[特权指令是指由操作系统内核使用的指令,用户程序不能执行,如I/0指令设置中断屏蔽指令、清内存指令存储保护指令设置时钟指令。]

(2)用户态

用户态又称目态,是用户程序执行时机器所处的状态,是具有较低特权的执行状态,能执行规定的指令,只能访问指定的寄存器和存储区

··区别核心态和用户态

CPU中有一个程序状态寄存器(PSW),其中有一个二进制位,1表示"核心态",0表示"用户态"

··核心态和用户态的切换

核心态–>用户态:执行一条特权指令来修改PSW的标志位为"用户态",这个动作意味着操作系统将主动让出CPU使用权

用户态–>核心态:通过执行访管指令,引发中断,硬件自动完成转态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权。中断是从用户态切换到核心态的唯一方式

(3)操作系统的内核

1.3.2中断与异常

(1)中断和异常的定义

 中断也称外中断指来自CPU执行指令以外的事件的发生,中断来自外部硬件如I/O中断(由输入输出设备发出的中断,外部设备想要输入或输出数据),时钟中断(主要表现为进程的时间片轮转调度,这是实现并发的手段),这类中断通常与当前处理机运行的程序无关。

异常也称内中断或陷人trap(应用程序自己要求进行的中断,用户程序想要调用系统调用),指源自CPU执行指令内部的事件,如程序的非法操作码地址越界算术溢出虚存系统的缺页专门的陷人指令等引起的事件。对异常的处理一般要依赖于当前程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理

(2)中断处理过程(外中断)

关中断:CPU响应中断后,首先要保护程序现场状态,在保护的过程中CPU不可以响应更高优先级的中断请求。如果响应了更高优先级的程序,那低优先级的程序现场保存不完整,之后处理完中断后就不能正确的回到中断前的状态

保存断点:为保证中断服务程序执行完毕能正确的返回到原来的程序,必须将程序断点(程序计数器PC的值)保存起来

寻找中断服务程序入口地址:实质是取出中断服务程序的入口地址送入到程序计数器PC中入口地址的获取:查询"中断向量表",找到相应的中断处理程序在内存中的存放位置

进入中断服务程序,开始执行中断服务程序

保护现场和屏蔽字:进入中断服务程序后的第一件事,就是保护现场和屏蔽字,主要是保存程序状态字PSWR和某些通用寄存器的内容

开中断:允许响应更高级中断此时如果有高级中断到来,可以去执行高级中断,因为被中断程序的现场信息已经被保存,响应高级中断不会导致被中断程序在恢复时现场信息不完整

中断服务程序处理:执行中断服务程序,这也是中断的目的所在

关中断:执行完中断服务程序,在程序结束前,要恢复现场,这个操作也不可以被打断

恢复现场:中断服务程序将之前保存的相关寄存器的值恢复到原来的状态

开中断:中断服务程序即将结束,重新打开中断,允许响应其他中断

返回到断点继续执行:中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到程序断点处,以便原程序继续执行

1.3.3系统调用

系统调用是用户程序获得操作系统服务的唯一途径,是操作系统提供给应用程序的一个接口,应用程序通过这个接口向操作系统申请内核服务。凡是与共享资源有关的操作(如内存分配,I/O操作,文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。

系统调用的过程:

用户程序通过执行陷入指令(又称访管指令或trap指令)来发起系统调用请求操作系统提供服务,即用户程序执行访管指令,使CPU的状态由用户态变为核心态;

之后由操作系统内核程序再对系统调用请求做出相应处理;

处理完成后,操作系统内核程序再把CPU的使用权还给用户程序(即CPU状态会从核心态返回用户态)。

【例题】:

1.下列操作系统的各个功能组成部分中,( )可不需要硬件的支持。A

A.进程调度   B.时钟管理   C.地址映射    D.中断系统

··进程调度是由调度算法决定CPU的使用权,由操作系统实现,无需硬件的支持

··对于时钟管理,任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,时钟节拍由配置为中断触发模式的硬件定时器产生

··逻辑地址到物理地址的映射都是靠硬件来实现的。无论是连续分配还是段表还是页表,都是一些地址寄存器,基址寄存器记录内存片段的开始,而另一个寄存器保存长度信息等

··中断的发生会激活很多事件,这包括硬件和软件的方面的事件,所以对于整个中断事件的接收、响应和处理需要有计算机的硬件和软件两方面的配合,共同完成。硬件中断装置负责捕获中断源发出的中断请求,并以一定的方式响应中断源,然后将处理器的控制权移交给特定的中断处理程序。中断处理程序则针对对中断事件的性质而执行相应的系列操作。

2.计算机区分核心态和用户态指令后,从核心态到用户态的转换是由操作系统程序执行后

完成的,而用户态到核心态的转换则是由( )完成的。A

A.硬件      B.核心态程序      C.用户程序     D.中断处理程序

··计算机通过硬件中断机制完成用户态到核心态的转换,发生中断事件时,触发中断,硬件中断机制把计算机状态置为核心态

··核心态程序只有在操作系统进入核心态之后才执行,D中断处理程序一般也在核心态执行,无法完成用户态到核心态的转换

··若用户程序能进行转换,则用户程序就能使用核心态指令,这会危害计算机的安全。

3. [2011统考真题]下列选项中,在用户态执行的是( ) A

A.命令解释程序    B.缺页处理程序    C.进程调度程序     D .时钟中断处理程序

··命令解释程序属于命令接口,是面对用户的,在用户态执行

··缺页处理程序和时间中断处理程序都是在核心态下执行的程序

··进程调度是操作系统内核进程,用户无法干预,在核心态执行

4. [2012 统考真题]下列选项中,不可能在用户态发生的事件是( )C

A.系统调用     B.外部中断      C.进程切换      D.缺页

注意题目问的是不能在用户态发生的事件

··系统调用是操作系统提供给用户程序的接口,发生在用户态,被调用程序在核心态下执行

··外部中断是用户态到核心态的门,发生在用户态,在核心态完成中断过程

··进程切换是系统调用的执行程序事件,只能发生在核心态

··缺页产生后,在用户态发生缺页中断,进入核心态执行缺页中断服务程序

5. [2012 统考真题]中断处理和子程序调用都需要压栈以保护现场,中断处理一定会保存

而子程序调用不需要保存其内容的是( )。B

A.程序计数器PC  B.程序状态字寄存器PSWR  C.通用数据寄存器 D通用地址寄存器

··中断处理要保存断点(PC的内容)和程序状态字寄存器的内容,而子程序调用只需保存程序断点,即该指令的下一条指令地址

6. [2015 统考真题]处理外部中断时,应该由操作系统保存的是( ).B

A.程序计数器(PC)的内容B.通用寄存器的内容C.块表(TLB)中的内容D. Cache 中的内容

··外部中断处理过程,PC(程序计数器)值由中断隐指令自动保存,而通用寄存器内容由操作系统保存

7. [2015统考真题]假定下列指令已装入指令寄存器,则执行时不可能导致CPU从用户态变为内核态(系统态)的是( )。C

A. DIV RO, RI; (RO)V(R1)→R0  ··该指令有除零出现异常的可能

B. INTn; 产生软中断        ··INT为interrupt,为中断指令

C. NOT RO;寄存器RO的内容取非  ··不会出现异常所以不会出现状态转换

D. MOV RO, addr;把地址addr处的内存数据放入寄存器RO  ··可能出现缺页异常

8. [2018 统考真题]定时器产生时钟中断后,由时钟中断服务程序更新的部分内容是ABC

A.内核中时钟变量的值

B.当前迸程占用CPU的时间

C.当前进程在时间片内的剩余执行时间

··时钟中断主要是处理和时间有关的信息和决定是否执行调度程序。和时间有关的所有信息包括系统时间,进程的时间片,使用CPU的时间,各类定时器。

9. [2020统考真题]下列与中断相关的操作中,由操作系统完成的是( )。BCD

A.保存被中断程序的中断点B.提供中断服务

C初始化中断向量表     D.保存中断屏蔽字

··CPU检测到中断信号后由硬件自动保存中断程序的断点

··硬件找到中断信号对应的中断向量(中断向量统一存放在中断向量表中,表由操作系统初始化),指明中断服务程序入口地址,接下来开始执行中断服务程序,保存程序状态字,中断屏蔽字等,提供与中断信号对应的中断服务。中断服务程序属于操作系统内核。

10. [2021统考真超]下列指令中。只能在内核态执行的是 B

A. trap指令    B. I/O指令     C数据传送指令      D.设置断点指令

操作系统复习之OS的运行环境相关推荐

  1. 操作系统4小时速成:操作系统发展和分类,运行环境:运行机制和内核,用户态非特权,核心态特权,中断技术,访管指令

    操作系统4小时速成:操作系统发展和分类,运行环境:运行机制和内核,用户态非特权,核心态特权,中断技术,访管指令 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得 ...

  2. 理解WebKit和Chromium: Web应用和Web运行环境

    转载请注明原文地址:http://blog.csdn.net/milado_nju 注:鉴于这一领域非常热,自己也投身其中,会单独开辟一个专题介绍Web应用和Web运行环境. ## 概述 Web已经从 ...

  3. 操作系统复习--OS的运行机制和体系结构

    操作系统复习–OS的运行机制和体系结构 本文章按照王道操作系统参考 文章主要分:运行机制,操作系统内核,操作系统的体系结构 运行机制 两种命令 特权指令:不允许用户直接使用的命令,如:I/O,中断命令 ...

  4. 【OS】操作系统运行环境

    文章目录 操作系统运行机制 中断和异常 系统调用 操作系统运行机制 CPU执行两种不同性质的程序: 1. 操作系统内核程序 2. 用户自编程序(应用程序) 其中内核程序用于执行一些特权指令,应用程序则 ...

  5. mongobd运行电脑不允许_U盘中的操作系统:Chrome OS,极致简洁超流畅,拯救你的旧电脑...

    想必很多朋友家中都有旧电脑的存在,它的配置不怎么滴,毕竟时间久了,即使是安装win7系统也不太可能,就算硬件升级也是不可能了~更多时候,只是一个摆设~ 但是呢,这台电脑除了回收之外,还有另外一条路. ...

  6. linux 中文 gb32,《GB∕T 32394-20.15 信息技术 中文Linux操作系统运行环境扩充要求》.pdf...

    <GB∕T 32394-20.15 信息技术 中文Linux操作系统运行环境扩充要求>.pdf h t t p s w w w .d o c88.co m /w 42020228h t t ...

  7. Zephyr物联网操作系统之运行环境搭建(一)

    对于zephyr这个实时嵌入式操作系统,可以先在x86架构上搭建运行环境,学习相关知识.之后,根据实际需求,再将操作系统移植到不同架构的MCU上. 一.环境搭建 准备工作:安装ubuntu操作系统 虚 ...

  8. 自己动手写操作系统--搭建保护模式下的运行环境:bochs下安装freedos

    在进行保护模式的运行环境配置前,先看了了下书上的代码,编译运行结果如下:nasm 3_pmtest1.asm -o pmtest1.bin,可以看到界面出现了红色的 p 字 保护模式环境配置 1:在网 ...

  9. 操作系统复习大纲笔记

    1. 第一章 1.1 指令执行的基本指令周期 基本指令周期:取指令.执行 基本流程:开始->将PC所指地址中的指令读入IR,PC++(取指令阶段)->执行IR中的指令(执行阶段)-> ...

  10. 文件服务器 工作站 通信媒体,【2013年自考“网络操作系统”复习资料(22)】- 环球网校...

    [摘要]2013年自考"网络操作系统"复习资料 1.为构建一个局域网,在硬件上和软件上应具备哪些条件? 硬件:①网卡和媒体②网络工作站③网络服务器④网络连接器. 软件:①服务器操作 ...

最新文章

  1. ORA-01113 file 1 needs media recovery
  2. 多角度回顾因果推断的模型方法
  3. 【browser】chinese chrome shows as english
  4. 【转载】常用DOS命令(包括创建删除文件夹/文件)
  5. linux如何锁定文件夹,如何在没有加密的情况下保护Linux / Unix上的文件夹? | MOS86...
  6. TED演讲——人生的12条法则
  7. 乘风破浪的迁移学习!四字成语讲明白这个大热研究方向
  8. java-idea-常用的快捷键
  9. 暑假集训-7.31总结
  10. ajax(form)图片上传(spring)
  11. UWB定位系统的主要误差来源
  12. 如何用Python操作Excel自动化办公?一个案例教会你openpyxl——图表设计和透视表
  13. ArcEngine中的ICommand接口和ITool接口
  14. Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)
  15. C++ 的placement new和placement delete
  16. 中专生计算机基础知识论文3000字,计算机中专毕业论文3000字
  17. python改word域_python修改word
  18. html初学者对相对地址,绝对地址的理解
  19. 多线程基础(十三):java中的FutureTask
  20. 构建开发环境 构建demo_构建自己的wotsapp第6部分

热门文章

  1. 货币转换python代码_在Python中创建货币转换器
  2. 计算机打字多少,怎么快速练习计算机打字?
  3. sql server查看密码使用天数和剩余天数
  4. EMOJI表情包源码
  5. 项目管理第三招:做好计划,拥抱变化
  6. 神舟战神调节风扇热键_神舟GX9电脑热键驱动
  7. 华硕主板怎么进入bios
  8. mariadb BSL协议期限
  9. 2018年列车已到站,请您下车
  10. Lucene DocValues索引文件详解