-
操作系统06-运行机制
- 当用户程序正在处理器上运行时,若此刻取到了一条特权指令,则处理器将停止执行该指令,并产生一个【非法操作】事件。
- 用户程序在用户态下使用特权指令而引起的中断是【防管中断】
- 【中断服务程序】是固定在某个地址的代码段,没有进程的概念。
- 在操作系统中,既可以在内核态下运行又可以在用户态下运行的指令是【置位方向标志】
- 程序状态字(PSW)通常包括以下状态代码
CPU的工作状态码
条件码
中断屏蔽码:指出是否允许中断 - 中断是由外部事件引发的,而异常则是由正在执行的指令引发的。执行访管指令、进程打开文件时出错、程序对只读内存执行写指令都是由正在执行的指令引发的,属于异常。
- 系统调用是应用程序请求操作系统核心完成某一特定功能的一种过程调用,与一般调用的最大区别就是调用程序运行在用户态,而被调用程序则运行在系统态。
- 操作系统中,我们把引起中断的事件称为中断事件或中断源,中断源向处理器发出的请求信号称为中断清求,把处理中断事件的程序称为中断处理程序,处理器暂停当前程序转而处理中断的过程称为中断响应。
- 中断是由外部事件(例如网卡上数据缓冲区满、串口数据到达)引发的,而异常是由正在执行的指令引发的,算术溢出,内存保护出错和目态程序试图执行特权指令,都属于异。
- 对于一般通用的操作系统而言,可将其所提供的系统调用分为以下几个方面。
- 进程控制类系统调用:这类系统调用主要是用于对进程的控制,如创建和终止进程的系统调用、获得和设置进程属性的系统调用等。
- 文件操作类系统调用:对文件进行操纵的系统调用数量较多,有创建文件、打开文件、关闭文件、读文件、写文件、创建个目录、建立目录、移动文件的读/写指针、改变文件的属性等。
- 进程通信类系统调用:该类系统调用被用在进程之间传递消息和信号。
- 设备管理类系统调用: 该类系统调用被用来请求和释放有关设备,以及启动设备间操作等。
- 信息维护类系统调用:用户可利用这类系统调用用来获得当前时间和日期。
- 不同的系统调用需要传递给系统子程序以不同的参数,而且,系统调用的执行结果也要以参数形式返回给用户程序,几种常用的实现方法。
陷人指令自带参数+有关通用寄存器来传递参数+专用堆栈区来传递参数。 - 系统调用命令是扩充机器指令。
- 中断向量=程序状态字PSW+PC指令计算器。
- 中断字是指中断请求的编号。
- 操作系统提供给用户用于应用程序编程的唯一接口是:系统调用。
- 故障性中断主要是指机器运行过程中出现障来自CPU的内部中断。可以与当前进程有关也可无关;时钟中断是时钟脉冲引进的中断也是可以与当前进程有关或无关;IO中断是由输入输出开始或结束引起的也是可与当前进程有关或无关; 程序性中断只能由当前正在运行的程序主动执行中断引发指令引起的,所以与当前进程一定相关.
- 处理器暂停当前程序转而处理中断的过程称为中断响应.
- 发生中断时正在执行的程序的暂停点称为中断断点.
- 把引起中断的事件称为中断事件或中断源.
- 中断源向处理器发出的请求信号称为中断请求.
- 把处理中断事件的程序称为中断处理程序。
- 在系统运行过程中,CPU的状态是动态改变的,时而运行于管态,时而运行于目态,即管态和目态这两种状态是可以相互转换。目态到管态的转换途径是通过中断或异常,管态(内核)到目态(用户态)转换的途径可以通过设置PSW指令(修改程状态字),实现操作系统向用户程序的转换。
- 程序计数器记录了下一条执行的指令地址。
-
相关阅读:
vscode debug with cmake on macos
【经验分享】PS如何设置像素
css 动画 过渡
常见的五种设计模式
UG NX二次开发(C#)-创建点到曲线(边)的切线
【新知实验室 基于WEB的实时音视频(TRTC)案例搭建】
【版本控制】Git(学习笔记)
Selenium自动化测试框架常见异常分析及解决方法
centos7安装mysql5.7步骤(图解版)
css3动画+svg实现水球进度条
-
原文地址:https://blog.csdn.net/lovemelovefish/article/details/132962503