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

本文深入探讨了操作系统中的关键概念,包括中断、异常、系统调用、日志文件系统及其在ext3中的应用。详细解释了中断处理机制、系统调用的工作原理以及日志文件系统如何提高文件系统的稳定性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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的“事物提交”

资源下载链接为: https://pan.quark.cn/s/67c535f75d4c 在开发 Vue 项目时,跨域问题是一个常见的挑战,主要是由于浏览器的同源策略限制了不同源之间的请求。本文将介绍几种解决跨域问题的方法,适用于使用 vue-cli 脚手架搭建的项目。 在后端服务器上,可以通过修改响应头来解决跨域问题。例如,在 PHP 中,可以设置 Access-Control-Allow-Origin 为 *,以允许所有来源的请求,同时设置 Access-Control-Allow-Methods 为 POST, GET,以允许跨域的 POST 和 GET 请求。代码示例如下: 在前端开发环境中,可以使用 http-proxy-middleware 来设置代理,从而绕过浏览器的同源策略。在 vue-cli 项目中,打开 config/index.js 文件,并在 proxyTable 对象中添加以下配置: 这样,前端的请求路径以 /api 开头时,http-proxy-middleware 会自动将请求转发到目标地址。 axios 是一个常用的 HTTP 库,用于处理前后端交互。可以在项目的 main.js 文件中全局配置 axios,例如设置 POST 请求的 Content-Type: 在组件中,可以通过 this.$axios 发起请求: Fetch API 是另一种发起 HTTP 请求的方式,同样支持跨域。在 Vue 组件中,可以使用以下代码发起 POST 请求: 如果目标服务器只支持 JSONP,可以使用 jQuery 的 $.ajax 方法,并设置 dataType 为 JSONP。例如: Vue 项目中的跨域问题可以通过调整后端服务器的 Header 或在前端使用 http-proxy-middleware 代理来解决。对于支持 JSONP 的 API,还
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值