操作系统运行环境

处理器状态:

中央处理器(CPU)

处理器由运算器、控制器、一系列的寄存器以及高速缓存构成

两类寄存器:

用户可见寄存器:高级语言编译器通过优化算法分配并使用之,以减少程序访问内存次数

控制和状态寄存器:用于控制处理器的操作通常由操作系统代码使用

常见的控制和状态寄存器
程序计数器(PC):记录将要取出的指令的地址

指令寄存器(IR):记录最近取出的指令

程序状态字(PWA):记录处理器的运行状态如条件码、模式、控制位等信息

操作系统需要两种CPU状态

内核态:运行操作系统程序

用户态:运行用户程序

特权指令:只能由操作系统使用、用户程序不能使用的指令

非特权指令:用户程序可以使用的指令

非特权指令:控制转移、算数运算、访管指令、取数指令

CPU状态之间的转换:

用户态->内核态

唯一途径->中断/异常/陷入机制

内核态->用户态

设置程序状态字PSW

中断/异常机制:

中断/异常的概念:

CPU对系统发生的某个事件作出的一种反应

CPU暂停正在执行的程序,保留现场后自动转去执行响应事件的处理程序,处理完成后返回断点,继续执行被打断的程序

特点:是随机发生的、是自动处理的、是可恢复的

为什么引入中断与异常?

事件:

中断与异常小节:

中断/异常机制工作原理:

中断/异常机制是现代计算机系统的核心机制之一

硬件和软件相互配合而使计算机系统得以充分发挥能力。

I/O中断处理程序:

通常分为两类处理:

I/O操作正常结束

若有程序正等待此次I/O的结果,则应将其唤醒

若要继续I/O操作,需要准备好数据重新启动I/O

I/O操作出现错误

重新执行失败的I/O操作

重试次数有上限,达到时系统将判定硬件故障

系统调用:

系统调用:用户在编程时可以调用的操作系统功能

系统调用是操作系统提供给编程人员的唯一接口

使CPU状态从用户态陷入内核态

每个操作系统都提供几百种系统调用(进程控制、进程通信、文件使用、目录操作、设备管理、信息维护等)

怎样实现用户程序的参数传递给内核

常用的3种实现方法:

1)由陷入指令自带参数:陷入指令的长度有限,且还要携带系统调用功能号,只能自带有限的参数

2)通常通过寄存器传递参数:这些寄存器是操作系统和用户程序都能访问的,但寄存器的个数就限制传递参数的数量

3)在内存中开辟专用堆栈区来传递

中断发生后OS底层工作步骤:

 

学习视频链接:http://www.chinesemooc.org/course.php?ac=course_view&id=685641&eid=23938&key=0

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值