黄底的字是我还不懂的地方,如果有知道的小伙伴可以私戳我或者评论,感激不尽ღ( ´・ᴗ・` ),期末加油!

Exception

概念

exception:非法的程序操作
interrupt:硬件设备发出的信号
system call:用户程序通过系统调用请求操作系统服务
OS期末预习与PPT翻译(PPT7~13)
CPU每执行完一条指令,都要检查是否有未响应的中断信号(这张图里的interrupt包括exception,interrupt和system call吗?还是仅仅是interrupt),如果是,则保护被中断的CPU环境。获取中断号并由此找到中断处理程序,中断处理程序处理完后再继续执行下一条指令。

中断向量表

OS期末预习与PPT翻译(PPT7~13)
每种设备都配以相应的中断处理程序。当某种设备发来中断请求信号时,中断处理器会确定中断号。然后去查找中断向量表。
中断向量表存着所有中断号和对应的中断处理程序的入口地址。因此找到中断号对应的中断处理地址并把地址放在PC中,就可以去执行中断处理程序了。

中断的分类

OS期末预习与PPT翻译(PPT7~13)
ppt标题的这个User->Kernel是什么意思?
是否中断可以分成interrupt和exception,同时也可以分成device interrupt,software interrupt 和program faults?

  • Device interrupt
    硬件中断(设备中断),是需要中断CPU的中断,因此中断发生时,CPU要暂时停止当前程序而执行中断请求。
    是由与系统相连的外设(比如网卡 硬盘 键盘等)自动产生的
  • software interrupt
    软中断,是执行中断指令产生的。
    软件中断其实并不是真正的中断,它们只是可被调用执行的一般程序。
interrupt handler

OS期末预习与PPT翻译(PPT7~13)
为什么不能sleep?如果可以sleep,假设下面的情况:process1进入内核之后占用LockA,然后发生中断,现在要执行ISR来处理中断,但是要执行ISR必须要有LockA,所以ISR调用了sleep来等待LockA的释放。但是LockA永远不会被释放了,因为Process1在ISR完成之前是不能执行的。

Top half &Bottom half

OS期末预习与PPT翻译(PPT7~13)

  • 技术上是一个中断处理程序
  • 执行最少的常用功能:保存寄存器,解除其他中断的掩码。最后撤销它:恢复寄存器,返回到以前的上下文。
  • 通常使用汇编语言
  • IRQ(中断信号)在此期间被屏蔽
  • top half最重要的任务:调用设备驱动程序提供的合适的中断处理程序
  • 不会做太多的事情,因为此时中断信号被屏蔽,而且也不希栈太大
  • 通常,对请求进行排队并设置一个用于延迟处理的标志

OS期末预习与PPT翻译(PPT7~13)
上面列举了四个延迟工作的机制。其中softirqs就是上文中top bottom设置的用于延迟处理的标志
OS期末预习与PPT翻译(PPT7~13)
top half和ISR的关系是什么?

system call

概念

系统调用是一种程序化的方式,在这种方式中,计算机程序从执行它的操作系统的内核请求服务。

ptrace

OS期末预习与PPT翻译(PPT7~13)

  • 跟踪编译后的应用程序的系统调用
  • 每次执行系统调用时都会输出参数和返回代码
  • 用于debuggers
    ppt中debuggers(breakpoint,singlestep,etc),括号里的breakpoint,singlestep,etc是什么?
flexible system calls

OS期末预习与PPT翻译(PPT7~13)

  • flexible system call是一种新的系统调用机制。
  • 引入了由用户和内核共享的system call page(系统调用页面)
  • 用户线程可以将系统调用请求push系统调用页面
  • 内核线程将从系统调用页面把系统调用请求poll out
  • 通过将调用和执行解耦来消除同步,导致更少的异常。

Journaling & Ext3

日志文件系统(journal file system)

如果在文件系统尚未shutdown时就断电了,下次重开机时会导致文件系统资料不一致,修复非常耗时。因此引入了“日志文件系统”。
此类文件系统最大的特色是,它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回溯追踪。
因为记录了非常详细的细节,所以在中断后,可以直接根据记录回溯并重整被中断的部分,而不需要检查其他部分。

ext3

第三代扩展文件系统,是一个日志文件系统,常用于linux。OS期末预习与PPT翻译(PPT7~13)
每一个flexible group由很多block group组成,第一个block group保存的是当前Flex_group的bitmap、inode表,剩余空间保存data。其他的block group只保存data
OS期末预习与PPT翻译(PPT7~13)
default mode是什么?
OS期末预习与PPT翻译(PPT7~13)
上图是《现代操作系统》4.3.6里的一段话,其中划红线的的“写日志项”,“日志项被写入磁盘”,“不同的操作”是不是对应ppt里的“元缓冲区接受管理”,“事务提交”和“正常读写数据”?

ext3支持三种data模式,对应日志的不同行为
1.orded

  • 不记录data的journal,只记录metadata的journal
  • 写metadata的journal前,必须先确保data已经落盘。
  • 这句话对吗?什么叫做落盘呢?

2.writeback

  • 不记录data journal,仅记录metadata journal。
  • 并且不保证data比metadata先落盘。

3.journal

  • 记录data 和matadata 的journal。
  • 在将data写入文件系统前,必须等待metadata和data的journal已经落盘了。

OS期末预习与PPT翻译(PPT7~13)
transaction 对应上面一张ppt的“事物提交”

相关文章:

  • 2021-11-14
  • 2021-12-18
  • 2022-02-01
  • 2022-01-16
  • 2022-01-01
  • 2021-08-29
  • 2021-06-20
  • 2021-11-18
猜你喜欢
  • 2021-07-21
  • 2022-03-06
  • 2022-12-23
  • 2021-08-20
  • 2021-10-08
  • 2021-04-17
  • 2021-11-18
相关资源
相似解决方案