PDP-11/40中断处理:PSW寄存器详解与中断流程

需积分: 14 80 下载量 29 浏览量 更新于2024-08-05 收藏 23.36MB PDF 举报
"这篇文档详细介绍了中断处理流程和PDP 11/40系统中的PSW寄存器,这是Unix操作系统内核的一部分。作者郝庆丰探讨了操作系统的内核实现,特别是针对UNIX第6版,强调了操作系统内核的重要性,并将其10000行代码分解为不同功能模块进行讲解。此资料适合高级软件工程师和操作系统研究者,同时也适合作为高等教育的参考书。" 在Unix操作系统中,中断处理是CPU响应硬件事件的关键机制。中断允许系统暂停当前任务,处理紧急事件,如设备输入输出或者错误情况。中断处理流程通常包括以下步骤: 1. **中断发生**:当外部设备需要CPU干预时,它会发送一个中断信号到CPU。 2. **保存现场**:CPU在进入中断处理前,会保存当前运行进程的状态,这通常涉及保存PSW寄存器的内容。PSW寄存器(Program Status Word)记录了处理器的工作状态,如当前模式、中断屏蔽优先级、计算条件码等。 3. **切换模式**:CPU从用户模式切换到内核模式,因为中断处理必须在更安全的权限级别下进行。 4. **识别中断**:CPU读取中断向量,中断向量包含了中断处理程序的地址。在PDP 11/40系统中,中断处理程序根据中断类型进行区分。 5. **执行中断处理程序**:CPU跳转到中断处理程序的地址,开始执行处理中断的代码。 6. **处理中断**:中断处理程序执行必要的操作,如更新设备状态、处理数据或执行错误恢复。 7. **恢复现场**:处理完成后,CPU恢复先前保存的PSW寄存器内容,这将恢复被中断进程的上下文。 8. **返回用户模式**:CPU切换回用户模式,并恢复执行被打断的进程。 在PSW寄存器中,各个位的含义如下: - Bit 15~14:表示当前和之前的处理器模式,00代表内核模式,11代表用户模式。 - Bit 13~12:同样表示处理器模式,与上面相同。 - Bit 11~8:这些位通常是保留的,不被普通程序使用。 - Bit 7~5:定义了当前中断被屏蔽的优先级,用于控制中断处理的顺序。 - Bit 4:自陷位,1表示自陷发生,0则表示中断。 - Bit 3:Negative,标志运算结果是否为负。 - Bit 2:Zero,表示运算结果是否为零。 - Bit 1:Overflow,表示运算是否溢出。 - Bit 0:Carrier,用于进位检测,常用于超系统最大数值范围的计算。 通过指令如`mov value, 0o177776`,程序可以读写PSW寄存器,进行状态的检查或修改。 郝庆丰的书籍深入解析了操作系统内核,以UNIX第6版为例,不仅涵盖了中断处理,还包括内存管理、进程调度、设备管理和文件系统等多个核心主题。对于那些希望深入理解操作系统实现的软件工程师,这本书提供了宝贵的参考资料。虽然对初级开发者来说可能有一定难度,但通过深入研究,可以显著提升编程技能。