分段和分页
什么是用户态和内核态?它们之间是怎样切换的?
内核态:控制计算机的硬件资源,并提供上层应用程序运行的环境,运行在高特权级上。 用户态:上层应用程序的活动空间,运行在低特权级别上。
为了使上层应用能够访问到这些资源,内核为上层应用提供访问的接口。
1、系统调用
用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作
2、异常
当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态
3、外围设备中断
当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停即将要执行的指令而去执行与中断信号对应的处理程序