4.管态和目态
管态又称为特权态,系统态,核心态,CPU在管态下可以执行指令系统的全集,
如果程序处于管态,那么程序可以访问计算机的任何资源,它的资源访问权限不受限制,通常,操作系统在管态下运行。
目态又称为常态或者用户态,机器处于目态时,程序只能执行非特权指令,不能直接使用系统资源,也不能改变CPU的工作状态,并且只能访问这个用户程序自己的存储空间。
区分管态和目态的目的是为了保护操作系统程序,通常CPU执行两种不同性质的程序:一种是操作系统内核程序,另一种是用户自编程序或者系统外层的应用程序,对操作系统而言,两种程序的作用不同,前者是后者的管理者,因此管理程序需要执行一些特权指令,而被管理程序处于安全考虑不能执行这些指令,所谓特权指令,是指计算机中不允许用户直接使用的指令,例如IO指令,中断指令,
屏幕剪辑的捕获时间: 2021/3/12 17:46
5.如何从目态切换到管态
1.系统调用,,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,系统调用机制的核心是使用了操作系统为用户特别开放的一个中断来实现
2.异常,当CPU在执行用户态程序时,发生了某些实现不可知的异常,转到了内核态,例如缺页异常
3.IO设备的中断,IO设备完成用户请求操作后,会向CPU发出相应的中断信号,这是CPU会暂停下一条即将要执行的指令,转而去执行与中断信号对应的处理程序,
如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就分钟了有用户态到内核态的切换
例如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续的操作,会暂停执行下一条即将要执行的指令,转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换
其中系统调用可以认为用户进程主动发起,异常和外部设备中断是被动的
屏幕剪辑的捕获时间: 2021/3/12 17:47