操作系统总结:进程切换与内核态权限

需积分: 0 0 下载量 68 浏览量 更新于2024-08-05 收藏 594KB PDF 举报
在张慕晖的博客中,他分享了2018年春季学期操作系统课程的期中考试总结,涵盖了多个重要的概念。首先,关于进程执行系统调用,他指出一个常见的误解,即从用户态切换到内核态执行时,实际上并不需要切换页表,因为可能是通过直接映射的方式进入内核空间。进程切换通常在内核态发生,因为涉及特权指令,比如修改CR3寄存器。 其次,关于内核线程与用户线程之间的切换,题目提到OS不能让它们直接进行进程切换,但这在Lab5的实验中被证明是错误的,因为可以在创建用户进程后,由内核线程转到用户线程执行。在初始化和配置页表,尤其是启用页机制时,的确需要使用特权指令,这是正确的。 内存管理方面,虽然用户态进程长时间执行死循环可能导致CPU占用,但OS并非无法干预,只要硬件支持中断,就能中断用户进程。二次机会页面替换算法,如时钟算法,存在Belady异常现象,当所有页的访问位全为1时,会导致性能下降。 在处理内存访问异常时,OS不会直接杀死产生异常的用户进程,特别是缺页异常,通常是尝试性地加载缺失的页,而不是立即终止进程。此外,尽管通常认为在OS内核中不能通过系统调用来获取服务,但实际上系统调用可以在同特权级别下执行,无需切换栈。 最后,关于子进程的fork()操作,当调用失败时,确实返回一个负值,这可能暗示了某种错误或异常情况,与常规的返回子进程PID和自身返回0的行为不同,这体现了问题设计的特殊性。 这些总结点深入剖析了操作系统的关键概念,展示了进程管理和内存管理中的细节,以及操作系统设计中的灵活性和复杂性。通过这些题目,学生可以加深对操作系统原理的理解。