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

倖福魔咒の 提交于 2020-01-14 09:10:23

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

Exception

概念

中断 指CPU 在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。
操作系统-复习笔记整理

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

中断向量表

在这里插入图片描述
每种设备都配以相应的中断处理程序。当某种设备发来中断请求信号时,中断处理器会确定中断号。然后去查找中断向量表。
中断向量表存着所有中断号和对应的中断处理程序的入口地址。因此找到中断号对应的中断处理地址并把地址放在PC中,就可以去执行中断处理程序了。

中断的分类

在这里插入图片描述
ppt标题的这个User->Kernel是什么意思?
是否中断可以分成interrupt和exception,同时也可以分成device interrupt,software interrupt 和program faults?

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

在这里插入图片描述
中断、异常、trap的区别

interrupt handler

在这里插入图片描述
为什么不能sleep?如果可以sleep,假设下面的情况:process1进入内核之后占用LockA,然后发生中断,现在要执行ISR来处理中断,但是要执行ISR必须要有LockA,所以ISR调用了sleep来等待LockA的释放。但是LockA永远不会被释放了,因为Process1在ISR完成之前是不能执行的。

Top half &Bottom half

在这里插入图片描述

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

在这里插入图片描述
上面列举了四个延迟工作的机制。其中softirqs就是上文中top bottom设置的用于延迟处理的标志
在这里插入图片描述
top half和ISR的关系是什么?

system call

概念

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

ptrace

在这里插入图片描述

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

在这里插入图片描述

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

补充: 系统调用是操作系统提供给软件开发人员的唯一接口,开发人员可利用它使用系统功能。用户在 程序中 调用操作系统提供的子功能称为系统调用。
a) 是特殊的过程调用, 由特殊的机器指令( 广义指令 )实现。
b) 系统调用指令还将系统转入管态

处理器运行系统程序的状态称为管态、特权状态或系统状态;运行用户程序的状态为算态、目态或用户态。

系统调用与一般过程调用的比较

【相同点】:
改变指令流程,转去执行公用程序段。

【不同点】:
a ) 一般过程调用,调用程序和被调用程序都运行在 相同状态(管态或算态);而系统调用, 调用程序在算态, 被调用程序在管态。
b) 一般过程调用调用时不涉及 系统状态转换,直接转向被调用过程; 而系统调用调用时涉及系统状态的转换,不允许由调用过程直接转向被调用过程, 要先通过软中断机制由用户态转换为核心态, 在OS 核心分析后, 再转向相应的系统调用处理子程序

Journaling & Ext3

日志文件系统(journal file system)

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

ext3

第三代扩展文件系统,是一个日志文件系统,常用于linux。在这里插入图片描述
每一个flexible group由很多block group组成,第一个block group保存的是当前Flex_group的bitmap、inode表,剩余空间保存data。其他的block group只保存data
在这里插入图片描述
default mode是什么?
在这里插入图片描述
上图是《现代操作系统》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已经落盘了。

在这里插入图片描述
transaction 对应上面一张ppt的“事物提交”

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!