Nachos指南(一)
Nachos是一个教学用的操作系统,它提供了一个操作系统的骨架来支持线程,用户级别进程,虚拟内存以及中断驱动的输入输出设备。Nachos和实际的操作系统的区别在于它是作为一个独立的UNIX进程运行,而实际的操作系统在裸机上运行,但Nachos模拟了机器的底层设施,这包括中断,虚拟内存和中断驱动的输入输出设备。
Nachos模拟了一个基本类似于MIPS架构的机器,它有寄存器,内存和CPU,除此以外,还提供了一个事件驱动的模拟时钟来进行中断调度,并在特定的时间点执行中断。这个模拟的MIPS机器可以执行二进制程序代码。它简单地将指令加载到机器的内存中,初始化寄存器(包括程序计数器PCReg),然后通知机器开始执行指令。机器就按照PCReg所指的地址去取指令,对指令进行译码并执行。这个过程无限的重复,直到执行非法操作或者产生硬件中断。当进入陷阱或者发生了中断时,MIPS指令的执行就暂停,转而去调用一个中断服务例程去处理。
Nachos有两种执行模式,其中一种时MIPS模拟器,它是这样来执行用户级进程的,将其加载到模拟器的内存中,初始化模拟器的寄存器,然后运行模拟器。用户程序只能访问与模拟机器相关联的内存。第二种模式是Nachos内核。当第一次启动或者用户程序执行的指令产生了硬件陷阱(例如,非法指令,缺页错误,系统调用等)就执行内核。在内核模式下,Nachos以普通的UNIX进行的方式执行。也就是说,Nachos源代码语句被执行,内存的访问也对应于赋予Nachos的变量的那部分内存。
Nachos支持内核线程,允许多个线程并发执行。这点上Nachos和其他线程包类似。事实上,用户级进程是通过一个内核线程去调用模拟器而得以执行,因此,多进程就意味着使用了多个线程,每个用户级进程都有一个与其相关联的Nachos内核线程,通过这个内核线程来执行MIPS模拟器。
作者:洞庭散人
出处:http://phinecos.cnblogs.com/
posted on 2007-10-31 11:56 Phinecos(洞庭散人) 阅读(3057) 评论(4) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
2006-10-31 WebCast听课录(11)