2021-11-3 内核态和核心态

1、什么是内核态?
当一个进程进行系统调用而陷入内核代码中时,就称程序陷入了内核态。否则就是用户态。用户程序运行在用户态而操作系统运行在内核态。用户态只能执行非特权指令,而内核态可以执行全部指令。内核态可以执行的指令比如:执行I/O,设置时钟,内存清零等。用户态有三种方式可以进入到内核态,分别是系统调用、异常、以及外围设备的中断。
2、什么时候内核态切换到用户态?
系统调用:创建进程/线程、切换进程/线程
异常:程序在运行中遇到了异常,这时需要切入到操作系统内核态中处理异常。异常类型比如缺页中断。缺页中断是指要访问的页面不在主存,需要操作系统将其调入主存后再进行访问。
外围设备的中断:当外围设备完成用户请求的操作以后,会向CPU发出相应的中断信号。CPU会暂停原本下一条即将要执行的指令,转而执行与中断信号对应的程序指令。如果原先执行的是用户态的程序指令,那么这个时候也会有用户态到内核态的一个切换。
3、为什么需要区分内核态和用户态?
由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络。
限制不同程序的访问能力可以防止使用者本身对系统的误改以及病毒程序对系统的恶意篡改,总体来说能够保护系统,提高系统的安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值