操作系统通常分批处理环境、交互式环境、实时环境
系统调用传递参数方法
- 寄存器
- 堆栈
- 指令自带
用户进程在实现系统调用的时候,通过变量传递是不能用于传递参数的
系统调用:调用程序在用户态,被调程序在核心态
处理器中对用户可见的寄存器,通常是对用户程序可用的是:地址寄存器、数据寄存器、条件码寄存器
不可见的寄存器多是用户控制处理的操作:程序寄存器、指令寄存器、程序状态字寄存器
用户在编写程序时,若要在屏幕上画圆,需要系统调用
程序状态字(PSW)
用来指示处理器状态的寄存器
通过设置PSW指令可以改变的是管态(内核态)到目态(用户态)
访管指令是目态到管态
包含的标志位
- 进位标志位(CF)
- 结果为零标志位(ZF)
- 符号标志位(SF)
- 溢出标志位(OF)
- 陷阱标志位(TF)
- 中断使用(屏蔽)标志位(IF):当运行中的进程不希望被外部事件打扰时
- 虚拟终端标志位(VIF)
- 虚拟终端待决标志位(VIP)
- CPU工作状态码(S)
- 条件码(C)
没有有效位(A)这个玩意
没有保护位(P)这个玩意
程序计数器(PC)
用来指示要执行的下一条指令的寄存器
指令寄存器(IR)
包含取出的指令
数据寄存器
用于各种算术逻辑指令
地址寄存器
用于存储数据及指令的物理地址、线性地址或有效地址
条件码寄存器
保存CPU操作结果的各种标记
特权指令
用户程序中不能使用特权指令。
当用户程序正在处理器上运行,取到了一条特权指令,则产生一个”非法操作“的事件
操作系统提供了三个类型的接口供用户使用
命令接口
程序接口
图形界面接口
关闭中断响应指令
这个指令是属于特权指令,用户程序不能直接执行,必须要使CPU陷入核心态,由操作系统来执行该特权指令,因此程序必须先发起防管中断,让CPU由用户态向核心态转换的方法。
中断与异常
中断处理程序的入口地址一般在中断向量表里
中断是由外部事件引发的,而异常则是由正在执行的指令引发的
被零整除属于软件引起的 异常
目态程序试图执行特权指令 是 异常
进程打开文件时出错 是 异常
产生缺页故障 是异常
访问不允许访问的存储位置 是 异常
操作系统需要处理器从内核态状态转为用户态,采用修改程序状态字
(考了两次尼玛)可以在内核态下运行又可以在用户态下运行的指令是置移位方向标志
- 中断请求是中断控制器向处理器发出的信号
- 中断响应是指处理器暂停当前程序,转而进入中断处理程序
- 中断断点是正在运行的程序的暂停点
中断系统是由硬件和软件互相配合实现的
微内核结构
提高操作系统的可靠性
较高的灵活性和可扩充性
融入面对对象技术
可移植性
适用于分布式系统
系统调用不能实现的功能是调用程序多次嵌套与递归
被调用程序返回调用程序的描述
过程调用直接返回到调用程序,系统调用在返回到调用程序前先运行调度程序
多道程序设计技术
缩短作业的平均周转时间
提高各种资源利用率
多种硬件资源可以并行工作
标签:调用,操作系统,中断,程序,用户,指令,寄存器,运行机制 From: https://blog.51cto.com/u_15763679/6973812