前情提要
在Java中,我们使用单引号来表示一个字符,用双引号来表示一个字符串。而在Python中,单引号和双引号对于字符串来说,毫无区别。那么在shell中单引号和双引号有区别吗?除了单双引号,还有反引号,那么反引号又是用来做什么的?
13 为什么表数据删掉一半,表文件大小不变如果把数据行删掉,那么对应到页里面就是把这一行标记为删除了,并没有对空间进行删除。 如果是把整个数据页删掉,那么这个数据页会被重新利用,同样也不会删掉。如果两个页中的数据所占比例都太少,那么会把一个页的数据搬动到另外一个页里面,但是仍然不会让页被清理。 所以就算delete掉了整个表格,所占空间还是不会变少。而且根据上面的描述,随着对数据库表的操作,会有越来越多的空洞产生,所以需要进行”压缩“操作。也就是重建一个新的表,这样空间利用率又达到了最大。 重建有两种办法,一种是锁住要重建的表,然后复制数据到新的表,那新的表就是重建后的表;还有一种是不锁,但是 ...
Introduction这部分开始写内存管理。内存管理有两部分:分配内存空间(编写一个数据结构能够知道哪些页是空闲的、哪些页是独享的、哪些页是共享的)和进行虚拟内存的管理(映射关系)。 本lab新增了下面这些文件: inc/memlayout.h:用来描绘了虚拟内存的分布。 kern/pmap.c kern/pmap.h kern/kclock.h kern/kclock.c Part 1: Physical Page Management操作系统必须知道物理内存中,哪些是空闲的,哪些是可用的。首先需要先编写物理页面的分配器。每一个页抽象成一个struct PageInfo,然后利用链表连 ...
原lab的地址:https://pdos.csail.mit.edu/6.828/2018/labs/lab1/ PC Bootstrap这部分原文是介绍了x86的汇编语言和计算机的引导过程。 Getting Started with x86 assembly注意区分AT&T的汇编语法和Intel的语法之间的区别。 练习一:了解一下基本的汇编知识。 当然如果有充足的时间,不妨可以阅读一下Intel提供的指令手册。 Simulating the x86为了能够模拟真正的引导,该lab使用qemu来进行模拟,而不需要真实的机器。 第一步,先对代码进行make操作,毕竟目前都是一堆. ...