**

主要内容:

**

一.cpu状态

二.中断/异常机制

三.系统调用操作系统笔迹(二)

一.处理机

两类寄存器
1.通用
2.控制和状态
pc:程序计数器,存储指令地址
psw:程序状态字,存储处理器的运行状态
ir:指令寄存器
程序状态字寄存器psw设置状态,起到保护作用

两个状态
内核态
用户态

特权指令:只能由操作系统使用,用户程序不能使用的指令
启动i/o 内存清零 设置时钟 允许/禁止中断 停机

状态的转变
1.用户->内核:唯一途径->中断/异常
2.内核态->用户态:设置程序状态字PSW
一条特殊的指令:陷入指令(又称访管指令),系统调用

二.中断/异常

引入原因不同:
中断是为了并行操作
异常是为了表示cpu执行指令时本身出现的问题

操作系统笔迹(二)
其实个人感觉并没有明确的区分
操作系统笔迹(二)
设备发送中断信号,硬件保存相关的pc与ps,根据中断码查表,找到中断处理程序的入口地址放于pc,状态放于ps.中断处理程序进行操作.保存通用寄存器.中断处理程序运行,最后返回的时候从栈中读取原来的程序

中断处理程序
保存相关寄存器信息
分析中断/异常的具体原因
执行
恢复

x86处理器

操作系统笔迹(二)

过程:
确定向量i->获得中断描述符->根据中断描述符的段选择符找到全局描述符->全局描述符上的段基址->执行处理程序

三.系统调用(system call)

用户在编程时可以调用系统的一些功能

三者关系
操作系统笔迹(二)

设计
1.用中断/异常机制
2.选择一条特殊指令:陷入指令(访管指令)
3.系统调用号和系统参数
4.系统调用表

Ex:
write(1,string,7);

movl $4,%eax
寄存器
int $0x8

系统调用
1.中断/异常机制:硬件保护现场;通过查中断向量表把
控制权转给系统调用总入口程序
2.系统调用总入口程序:保存现场;将参数保存在内核堆
栈里;通过查系统调用表把控制权转给相应的系统调用
处理例程或内核函数
3.执行系统调用例程
4.恢复现场,返回用户程序

相关文章:

  • 2021-10-11
  • 2021-07-10
  • 2021-11-30
  • 2021-07-27
  • 2021-12-10
  • 2021-05-04
  • 2021-05-24
猜你喜欢
  • 2021-10-15
  • 2021-04-24
  • 2021-11-08
  • 2021-04-22
  • 2021-04-18
  • 2021-06-05
相关资源
相似解决方案