用户态和核心态(转)


当程序运行在3级特权级上时,就能够称之为运行在用户态,由于这是最低特权级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态;反之,当程序运行在3级特权级下时,就能够称之为运行在内核态。数据结构

虽然用户态下和内核态下工做的程序有不少差异,但最重要的差异就在于特权级的不一样,即权力的不一样。运行在用户态下的程序不能直接访问操做系统内核数据结构和程序。操作系统

当咱们在系统中执行一个程序时,大部分时间是运行在用户态下的,在其须要操做系统帮助完成某些它没有权力和能力完成的工做时就会切换到内核态。.net

 

用户态切换到内核态的3种方式blog

系统调用:这是用户态进程主动要求切换到内核态的一种方式,用户态进程经过系统调用申请使用操做系统提供的服务程序完成工做。而系统调用的机制其核心仍是使用了操做系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。
异常:当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换处处理此异常的内核相关程序中,也就转到了内核态,好比缺页异常。
    外围设备的中断:当外围设备完成用户请求的操做后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,若是先前执行的指令是用户态下的程序,那么这个转换的过程天然也就发生了由用户态到内核态的切换。好比硬盘读写操做完成,系统会切换到硬盘读写的中断处理程序中执行后续操做等。

原文:https://blog.csdn.net/qq_35642036/article/details/82798812 进程

相关文章
相关标签/搜索