摘要:
Lab page tables 内核地址空间,进程地址空间。 地址映射 守护页,PTE的flags 物理内存分配 sbrk和exec Speed up system calls 通过在用户空间和内核之间的只读区域共享数据加速特定的系统调用,执行这些系统调用可以不再进入内核。本实验可以学习向页表中插入 阅读全文
摘要:
Chapter 3 Page tables 页表是操作系统保证每个进程有独立的地址空间和内存的最常用的机制。页表决定内存地址代表什么,决定哪部分物理地址可以访问,使 xv6 可以分隔不同进程的地址空间,并将它们映射在一块物理内存上。页表是常用的设计,因为它实现了很多 tricks ,如 xv6 的一 阅读全文
摘要:
Lab System calls 物理资源抽象设计(文件系统管理,内存使用,CPU切换,管道交互);指令执行的三种状态(M,S,U),系统调用;宏内核和微内核;进程机制(S/U mode,地址空间,时间片),进程目的(增强隔离性),进程的地址空间和状态项,进程的设计思想;xv6的启动概述;安全相关。 阅读全文
摘要:
Chapter 2 Operating system organization 一个操作系统的关键特征是支持多个任务。例如,用fork系统调用接口创建新的进程,这些进程分时共享计算资源。尽管进程数量比硬件CPU数量多,操作系统一定可以确保所有进程都有机会执行。另一个特征是进程的隔离性(isolati 阅读全文
摘要:
Lab Utilities 本章实验学习xv6的一些softerware tools的实现,学习系统调用。 学习进程、文件相关的系统调用使用。 sleep 使用sleep系统调用,暂停指定的ticks(一个tick代表两次时钟中断的时间间隔)。 使用exit系统调用终止当前进程。 #include 阅读全文
摘要:
Chapter 1 Operating system interfaces xv6采用传统的内核形式,由内核为运行的程序提供服务。每个运行的程序称为进程,其内存里包含指令,数据,栈。指令实现程序的计算,数据是计算执行的对象——变量,栈组织程序的过程调用。 进程常常通过system call调用内核服 阅读全文
摘要:
写了几道题,对线段树的概念有了一定的认识,这里总结下我写的习惯,方便以后完善及复习。 线段树所用的函数: pushup():向上更新父节点 build(): 与普通建树方式相同,最后要pushup()(向上更新(父节点的值) update():判断当前区间与给定区间的关系;若是点:找到点更新即可,若 阅读全文
摘要:
现在对AC自动机的理解还十分浅薄: AC自动机相比Trie多了失配边,结点到结点间的状态转移,结点到根的状态转移。 这里fail的定义是:使当前字符失配时跳转到另一段从root开始每一个字符都与当前已匹配字符段某一个后缀完全相同且长度最大的位置继续匹配。 A - Keywords Search 题意 阅读全文
摘要:
感觉不把这个Trie理解一下,AC自动机的代码看起来有点费劲。 这里代码的学习仿照训练指南209页。 这里如果只是查询单词,感觉用map更好,但是如果查前缀,还是用Trie。 Trie查询前缀字符串是否存在。 #include <bits/stdc++.h> using namespace std; 阅读全文
摘要:
这里是学习韦神的6道入门树形dp并进行整理整理。 这里大部分题目都是参考的韦神的思想。 A - Anniversary party 题意: 一个树,每个点有一个“快乐”值,父子结点不能同时快乐,问这个结构的最大快乐值。 Thinking: 思考如何写出树规方程,即思考根与子节点的关系。 dp[i][ 阅读全文
