Nachos指南(一)

Nachos是一个教学用的操作系统,它提供了一个操作系统的骨架来支持线程,用户级别进程,虚拟内存以及中断驱动的输入输出设备。Nachos和实际的操作系统的区别在于它是作为一个独立的UNIX进程运行,而实际的操作系统在裸机上运行,但Nachos模拟了机器的底层设施,这包括中断,虚拟内存和中断驱动的输入输出设备。

Nachos模拟了一个基本类似于MIPS架构的机器,它有寄存器,内存和CPU,除此以外,还提供了一个事件驱动的模拟时钟来进行中断调度,并在特定的时间点执行中断。这个模拟的MIPS机器可以执行二进制程序代码。它简单地将指令加载到机器的内存中,初始化寄存器(包括程序计数器PCReg,然后通知机器开始执行指令。机器就按照PCReg所指的地址去取指令,对指令进行译码并执行。这个过程无限的重复,直到执行非法操作或者产生硬件中断。当进入陷阱或者发生了中断时,MIPS指令的执行就暂停,转而去调用一个中断服务例程去处理。

Nachos有两种执行模式,其中一种时MIPS模拟器,它是这样来执行用户级进程的,将其加载到模拟器的内存中,初始化模拟器的寄存器,然后运行模拟器。用户程序只能访问与模拟机器相关联的内存。第二种模式是Nachos内核。当第一次启动或者用户程序执行的指令产生了硬件陷阱(例如,非法指令,缺页错误,系统调用等)就执行内核。在内核模式下,Nachos以普通的UNIX进行的方式执行。也就是说,Nachos源代码语句被执行,内存的访问也对应于赋予Nachos的变量的那部分内存。

Nachos支持内核线程,允许多个线程并发执行。这点上Nachos和其他线程包类似。事实上,用户级进程是通过一个内核线程去调用模拟器而得以执行,因此,多进程就意味着使用了多个线程,每个用户级进程都有一个与其相关联的Nachos内核线程,通过这个内核线程来执行MIPS模拟器。

你可能感兴趣的:(unix)