20k 37 分钟

# 实验目的 掌握系统调用的概念及流程 实现进程间通信机制 实现 fork 函数 掌握页写入异常的处理流程 在用户态下,用户进程不能访问系统的内核空间,也就是说它一般不能存取内核使用的内存数据,也不能调用内核函数,这一点是由体系结构保证的。然而,用户进程在特定的场景下往往需要执行一些只能由内核完成的操作,如操作硬件、动态分配内存,以及与其他进程进行通信等。允许在内核态执行用户程序提供的代码显然是不安全的,因此操作系统设计了一系列内核空间中的函数,当用户进程需要进行这些操作时,会引发特定的异常以陷入内核态,由内核调用对应的函数,从而安全地为用户进程提供受限的系统级操作,我们把这种机制称为...
5.2k 9 分钟

# 前言 又寄了(悲)。这次体验比上次还差,做 exam 时手欠弄了俩 bug ,等 de 完就只剩 3min 了。据贾爹说 extra 非常非常简单,可惜了,又错过了 这次 exam 的设定是真难,是实现 EDF 调度算法。不过有的老师上课已经明确指出了上机会考这个,而且题目描述也很详尽,按要求一步一步来即可。只能说我的手太欠了 至于 extra ,反正贾爹说简单,我扫了一眼感觉和往年题差不多,应该不是很难。看看会不会开放吧 # exam # 题目要求 # 简述 实现 最早截止期优先 算法,即 EDF 算法。但课下的 RR 算法也要保留。即我们有两个队列,储存不同的进程。 课下的...
1.3k 2 分钟

# 项目结构 my-vue-project/ ├── node_modules/ # 项目依赖包 ├── public/ # 静态资源目录 │ ├── favicon.ico # 网站图标 │ └── index.html # 主HTML文件 ├── src/ # 项目源代码目录 │ ├── assets/ # 静态资源(图片、字体等) │ ├── components/ # Vue组件 │ ├── router/ # 路由配置(如果选择了vue-router) │ ├── store/ # Vuex状态管理(如果选择了vuex) │ ├── views/ # 页面级组件 │ ├──...
2.6k 5 分钟

# 指令修饰符 按键修饰符 @keyup.enter : 键盘回车弹起事件 v-model 修饰符 v-model.trim :去除首尾空格 v-model.number : 转数字 事件修饰符 @事件名.stop : 阻止冒泡 @事件名.prevent : 阻止默认行为 # v-bind 控制样式 # 操作 class 语法: :class="对象/数组" 对象 形式为键值对。键是类名,值是布尔值,表示是否添加这个类的样式 <div class="box"...
884 2 分钟

笔者愚钝,在页表自映射这地方花了很长时间,幸得大佬指点迷津才得以理解。 # 目的 在普通的分页机制中,页目录和页表只在物理内存中出现,而程序只能通过虚拟地址对内存进行操作。这就导致了操作系统难以访问和修改它们。 于是产生了页表自映射机制来解决这一问题。自映射通过 将页目录和页表映射到固定的虚拟地址,使得: 内核可直接通过虚拟地址修改页表,无需临时映射或关闭分页,像访问普通内存一样操作页表即可。 # 实现 共有 1024 个二级页表(以下简称页表),每个页表记录了 1024 条映射关系,大小为 4KB 。这些页表物理上不连续,但映射到虚拟空间是连续的,共占 4MB 的空间(并且 4MB...
17k 30 分钟

# 实验目的 创建一个进程并成功运行 实现时钟中断,通过时钟中断内核可以再次获得执行权 实现进程调度,创建两个进程,并且通过时钟中断切换进程执行 在 Lab3 中将运行一个用户模式的进程。 本实验需要使用数据结构进程控制块 Env 来跟踪用户进程,并建立一个简单的用户进程,加载一个程序镜像到指定的内存空间,然后让它运行起来。 同时,实验实现的 MIPS 内核具有处理异常的能力。 # 进程控制块 # 进程控制块 PCB 进程控制块 (PCB) 是系统专门设置用来管理进程的数据结构,它可以记录进程的外部特征,描述进程的变化过程。系统利用 PCB 来控制和管理进程,所以 PCB...
5.9k 11 分钟

# 回顾 随着最后一次 Bug 修复的完成,我的第二单元 “含恨九泉” 了。三次作业的强测都不理想,第二次大胆尝试了影子电梯的策略,性能确实可观,但却给我增添了许多 bug,一直延续到第三次迭代,可谓是赔了时间又折分。 我也深刻反思了一下自己,因为忙其他的事情,这个单元分配给 OO 的时间确实少了许多。尤其是写完通过中测后,没有再构造数据进行测试,只在第二次迭代互测时写了个弱弱的评测机。 虽然这单元的分数很差,但是仍旧学到了很多,比如对于锁、同步块的理解和应用。下个单元继续努力,争取金身 #...
4.4k 8 分钟

近日在装修站点时发现了好玩的 “看板娘 “,尽管我不混迹二次元世界,但看板娘的动效实在让我眼馋,遂决定将它带回家。 # 传统插件:hexo-helper-live2d 使用 npm 安装: npm install hexo-helper-live2d 安装后博客会使用库中自带的看板娘模型,并且只有最简单的效果 若想使用更高级的动效、换装等功能,则需要替换为自定义的模型 但是 hexo-helper-live2d 几年前便停止维护,使用自定义的看板娘时只能使用 .moc 版本的模型,不兼容 .moc3 版本,因此笔者尝试后发现页面无法加载,遂放弃。 #...
8.2k 15 分钟

又寄了(悲)。这次体验非常不好,exam 虽然不难,但我花了将近 40min;然后 extra 信息量很大,写起来一堆 bug,最后折腾半天是 0 分 # exam # 题目要求 在 ./kern/pmap.c 实现以下函数 u_int page_conditional_remove(Pde *pgdir, u_int asid, u_int perm_mask, u_long begin_va, u_long end_va);其功能是取消所有符合条件的地址映射,并返回取消的页表项数量。具体来说如下: pgdir 页目录的每一个 有效的 二级页表项,若其满足以下两个条件: 其虚拟地址在 [...