Uploaded by zhi yao (yaozhi)

操统作业2

advertisement
一、 总结 risc-v 体系结构对于中断的支持
二、 理解 Linux 的中断处理流程,解释为什么引入上半部和下半部处理
Linux 的中断处理流程包括两个阶段:上半部处理和下半部处理。
上半部处理是在中断发生时立即执行的,它通常完成一些紧急的、必须立即处理的任务,例
如中断的一些初始化操作、快速响应用户操作等等。由于上半部处理需要尽快完成以避免延
迟,因此它必须尽可能短小精悍,不得占用太多的 CPU 时间片。
下半部处理则是在上半部处理执行完毕后异步执行的,它通常完成一些较为耗时的、可以延
迟执行的任务,例如磁盘 I/O 操作、网络数据包处理等等。由于下半部处理的执行时间不紧
急,因此可以较为安全地占用更多的 CPU 时间片。
引入上半部和下半部处理的原因是为了提高 Linux 内核的响应性能。如果中断处理过程过于
耗时,会导致其他任务的延迟,影响系统的响应速度。通过将中断处理过程划分为上半部和
下半部,可以在不影响系统响应速度的情况下完成中断处理。
三、 系统调用与过程调用的区别是什么?
1.调用对象不同:系统调用是用户程序通过系统调用接口调用操作系统提供的服务,例如文
件读写、网络通信等。过程调用则是在程序内部调用其他函数或过程。
2.调用开销不同:系统调用由用户程序切换到内核态进行调用,需要经过用户态到内核态的
切换过程,因此比过程调用的开销更大。过程调用则是在用户态内部进行调用,开销较小。
3.权限不同:系统调用需要经过操作系统的权限验证,只有获得足够的权限才能调用成功。
过程调用则不需要权限验证,只需要函数或过程的定义在调用的代码中可见即可。
4.功能不同:系统调用提供的是操作系统的服务,例如文件系统、网络通信、进程管理等。
过程调用则是用于程序内部逻辑的封装和重用,例如函数库、模块化编程等。
总的来说,系统调用和过程调用是不同的程序调用方式,它们适用于不同的场景。系统调用
用于用户程序与操作系统之间的通信和交互,而过程调用则用于程序内部的逻辑封装和重
用。
Download