Nachos Lab06 Shell实现

通过这个实验对Shell与内核的交互方式有了一定的了解,即Shell本质上是将用户的输入进行解析然后交给系统内核去处理执行。
Lire la suite

Nachos Lab05 系统调用

在这次实习中学习了Nachos是处理现系统调用的,也学习了如何向用户开放系统调用的相关接口,以及这些接口和实际系统调用执行直接关联是什么。最后通过这几个练习实际实现了这个系统调用的功能。
Lire la suite

Nachos Lab04 文件系统

在这次文件系统的实习中主要是在Nachos内部实现的一个不完善的真实文件系统之上补充其功能。在第一部分中,主要通过对文件头和目录的修改,实现了文件描述属性的维护,文件数据块的间接索引,多级目录的处理,以及允许文件动态扩充大小。而第二部分则是,学习同步磁盘的处理方式,来实现更为精细化的同一磁盘区块读写的同步处理,以及多线程访问同一文件的一致性处理。
Lire la suite

Nachos Lab03 同步机制

本实习希望通过对同步互斥相关概念的理解,在Nachos中实现锁、条件变量、barrier等等同步机制,并利用这些机制实现同步互斥实例。
Lire la suite

Nachos Lab02 虚拟内存

本次Lab主要涵盖了三个部分,第一部分对TLB的理解及对相关缺页中断处理方式;第二部分虚拟内存和页表之间的关联和管理方式,多进程共存内存的处理方法,以及内存缺页的处理;第三部分则是利用文件系统的交换空间,来实现不将进程一次性读入内存的延迟装载。拓展部分则是实现进程的挂起和倒排页表。
Lire la suite

Nachos Lab01 线程机制

这次实习希望通过理解nachos中对于线程Thread,调度器scheduler,时间片Timer以及相关文件的代码,从而能够扩展线程的结构,实现全局线程管理,线程调度等方法。最终理解什么是线程,线程是如何被调度的,以及时间片在其中是如何发挥作用的。
Lire la suite