内容与设计思想修改Minix3.1.2a的进程管理器,改进brk系统调用的实现,使得分配给进程的数据段栈段空间耗尽时,brk系统调用给该进程分配一个更大的内存空间,并将原来空间中的数据复制至新分配的内存空间,释放原来的内存空间,并通知内核映射新分配的内存段。
阅读全文
内容和设计思想在MINIX3中安装一块X MB大小的RAM盘(minix中已有6 块用户可用RAM盘,7块系统保留RAM盘),可以挂载并 且存取文件操作。
测试RAM盘和DISK盘的文件读写速度,分析其读写速度差异原因。
阅读全文
准备Message和Packet类定义分别作为应用层和传输层的数据包
其中Packet类的generateChecksum()方法根据报文数据生成校验和,selfcheck()方法根据报文数据和校验和检查数据是否损坏
阅读全文
内容与设计思想在MINIX3中实现Earliest-Deadline-First近似实时调度功能:
提供设置进程执行期限的系统调度chrt (long deadline),用于将调用该系统调用的进程设为实时进程,其执行的期限为:从调用处开始deadline秒。
在内核进程表中需要增加一个条目,用于表示进程的实时属性;修改相关代码,新增一个系统调用chrt,用于设置其进程表中的实时属性。
修改proc.c和proc.h中相关的调度代码,实现最早deadline的用户进程相对于其它用户进程具有更高的优先级,从而被优先调度运行。
在用户程序中,可以在不同位置调用多次chrt系统调用,在未到deadline之前,调用chrt将会改变该程序的deadline。
未调用chrt的程序将以普通的用户进程(非实时进程)在系统中运行。
阅读全文
内容与设计思想实现一个基本的Shell,能够实现以下功能:
1. 带参数的程序运行功能。
2. 重定向功能,将文件作为程序的输入/输出。
3. 管道符号“|”,在程序间传递数据。
4. 后台符号& ,表示此命令将以后台运行的方式执行。
5. 工作路径移动命令cd。
6. 程序运行统计mytop。
7. shell退出命令exit。
8. history n显示最近执行的n条指令
阅读全文
这个lab现成的东西比较多,要写的其实比较少,而且相比于其他几个lab,shelllab的文档里的hint明显写的更加详细,所以很多问题和写法直接看文档就可以解决了。
阅读全文
主要尝试了两种方法,隐式空闲链表(implicit free list)和隔离空闲链表(segregated free list),当然还有一种显式空闲链表法,但是感觉类似于单个的隔离空闲链表。
阅读全文
要求用位运算的方式实现各种运算功能,同时包括一些浮点数和整数的相互转化,难点是很多基本的运算比如加减乘除都不能用了,很多地方的实现会感觉很别扭,但确实从计算机内部角度来说会更快。
阅读全文