CMU-15-445笔记(二)
占用空间大的值在tuple中的存储形式
Overflow storage pages
如果c是较大的值的话,c的位置可以放置指针,指向一个格外的页存储真实的数据,如果数据过大,可以在一个overflow page中再指向下一个overflow page。overflow page是在内存中常驻的,并且overflow page对于用户层面是透明的。
如果c是较大的值的话,c的位置可以放置指针,指向一个格外的页存储真实的数据,如果数据过大,可以在一个overflow page中再指向下一个overflow page。overflow page是在内存中常驻的,并且overflow page对于用户层面是透明的。
_exit
不会刷新标准输出,而exit
会_exit
不能用来清理进程,而exit
可以用来注册在on_exit
或者at_exit
上用来清理准备退出的进程。个人理解_exit
仅仅是退出当前的进程,而exit
是退出进程的同时,清理进程的残余物。
参考
https://stackoverflow.com/questions/5422831/what-is-the-difference-between-using-exit-exit-in-a- conventional-linux-fo
这里只看
1 | string& erase (size_t pos = 0, size_t len = npos); |
这个重载的代码
本次实验是让我们探寻xv6如何实现trap,需要阅读xv6 book的第四章
今天在学sigaction的时候,vscode总是蹦出struct sigaction incomplete error,而且没有代码提示,很烦人,然后我在reddit中找到了个不是很优雅的解决方法。
这一次实验需要读xv6 book中的第三章,而且需要好好读…
做这个实验之前需要把 xvb book 第二章和第四章的 4.3 4.4看了, 有助于理解。
为了解决仅仅使用基址和界限寄存器将进程重定位到物理内存区域,会产生大量的空隙,导致内存没有被有效利用。所以产生了分段的概念,在MMU中,不仅仅一对引入基址和界限寄存器,而是给地址空间内的每个逻辑段一对。一段是地址空间里的一个连续定长的区域。并且只有已用的内存才会在物理内存中分配空间。
记录bug