笔记.ucore.中断&异常&系统调用

本文介绍了计算机启动流程,从BIOS初始化到操作系统加载,详细讲解了中断、异常和系统调用的背景、处理机制以及它们在操作系统中的作用。系统调用作为应用程序与操作系统交互的主要方式,其概念、实现及开销进行了阐述,并给出了系统调用的示例。
摘要由CSDN通过智能技术生成

启动

  • 计算机体系结构该书
  • 计算机内存和硬盘布局
  • 系统启动流程

中断异常和系统调用


计算机体系结构概述
在这里插入图片描述
cpu:计算能力,执行指令
内存:存储能力
IO:跟外界有交互,网络,磁盘,键盘

cpu加电之后执行的第一条指令在哪里
在内存里面
关掉电源之后没有东西了
ram,rom
rom加电之后还有电东西,就从这个地方开始

在这里插入图片描述
在这里插入图片描述
磁盘上是有文件系统的,bios中不能认识所有的文件代码,
在这里插入图片描述
加载bios,bios加载启动程序,启动程序去读内核映像
把操作系统加载进来之后就可以跳到操作x
bios系统调用:
字符显示,磁盘扇区读写等等

系统启动流程

系统加电,bios初始化硬件
bios读取主引导扇区代码
主引导扇区代码读取活动分区的引导扇区代码
引导扇区代码读取文件系统的加载程序

bios -> 主 -> 活动分区 -> 文件系统

cpu初始化
在这里插入图片描述
bios初始化过程:
硬件自检
硬件中内存显卡都在工作状态
进行设备初始化
执行系统bios,进行系统检测
更新escd扩展系统配置数据,就知道当前系统有什么设备
按照指令启动顺序从软盘、硬盘、光盘驱动

主引导记录MBR格式:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
bios:
固化到计算机主板上的程序
包括系统设置、自检程序、系统自启动程序
有多个分区之后,需要选择从那个分区启动,有了下面这些
在这里插入图片描述
bios-mbr
GPT全局唯一表示分区表
pxe网络启用标准,联结到服务器上去

UEFI
接口标准,在所有平台上一致的操作系统服务

中断异常、系统调用

背景:
为什么需要中断、异常、系统调用

应用程序没有办法完全信任,但是又需要使用操作系统提供的服务
中断异常希望解决的问题:
当外设连接计算机时,会出现什么现象
处理意想不到的行为
系统调用希望解决的问题:用户应用程序得到系统服务
系统调用和功能调用的不同之处
在这里插入图片描述
操作系统和外界打交道就是:中断异常系统调用
系统调用:应用程序主动向操作系统发出的服务请求
异常:非法指令/其他原因导致当前指令执行失败
中断:来自硬件设备的处理请求

中断异常系统调用
源头外设应用程序意想不到的情况应用程序请求操作
响应方式异步同步异步/同步
处理机制持续,对应用程序是透明的杀死/重新执行意想不到的程序指令等待和持续

中断、异常处理机制

硬件处理:在cpu初始化时设置中断使能标志
软件:现场保存(编译器操作),中断服务处理(服务历程),清除中断标志(服务历程),现场恢复(编译器操作),

中断嵌套:正在搞中断的时候,另一个中断来了,先去处理这个中断,中断请求会保持到cpu作出响应

异常服务历程:可被打断,异常服务历程执行时可能出现硬件中断.可以嵌套,可能出现缺页

系统调用的概念和实现

printf()会调用操作系统调用中的write(),

操作系统服务的编程接口,一般用C或者C++实现,程序访问通过高层次的api:
在这里插入图片描述

系统调用的内部实现:系统调用每个都有一个编号

系统调用函数调用
int iretcall ret
堆栈切换&特权级的转换常规调用没有堆栈切换

###这三个的开销
开销 > 函数调用
引导机制,建立内核堆栈,验证参数,内核态映射到用户态的地址空间,内核态独立地址空间

系统调用示例

在这里插入图片描述
在这里插入图片描述
代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
int就是系统调用
用户态已经看不到了
下来是内核态:
在这里插入图片描述
在这里插入图片描述
这个里面有个syscall();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值