随笔篇-操作系统的int80

操作系统的int80

先膜拜周老师构图,膜拜膜拜膜拜,哈哈。
在这里插入图片描述
硬件请求cpu ,中断cpu,正在做的事情,叫做 中断,
同理
软件请求cpu, 中断cpu,正在的做的事情,叫做软中断。

一个java 程序,再调用某些api,例如read, 这是系统内核的函数,程序被编译成可被cpu,执行的指令时候,对应系统调用的函数, 会有指令 int80 ,int 为cpu 指令, 80 为16进制,转十进制128,对于 cpu而言是将数字128写到 寄存器里(8位寄存器,0-255)。

内核中有中断向量表,0-255,个编号,对应128编号,表示用户程序对应调用了,内核函数函数,以下称这种函数被调用为,系统调用,此时操作系统会,将应用程序挂起,保护他的pcb,用户态切换至内核态,继续执行程序。

中断向量表中 key 128 value :callback函数, 在cpu中体现的是一个具体的地址,这个地址位置指出向着,callback 函数.

当read(fd8) 时,通常cpu会去读,内存中pageche是否有,如果没有就去读---->硬件(触发缺页处理),然后硬件中的数据写到---->cpu 寄存器,然后cpu寄存器数据写至---->内存中, 内存中具体是指pagecache,

但是cpu忙着计算,让他读硬件数据,那cpu就要等,cpu 速度,要比物理磁盘快,他们不是一个数量急的速度,肯定不能这么设计,为了防止cpu ,调入这种io陷阱,DMA,协处理器,这个芯片他去处理。等DMA都处理完这个 read(fd8)所有要读的数据,然后在向cpu 发出信号,继续执行内核态程序,内核再恢复现场,置进程进入能被操作系统调度的状态。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值