用户态、内核态的理解
起因:“为了防止用户程序破坏操作系统或直接操作硬件,必须严格区分操作系统代码和用户代码。为此,许多处理机在处理机状态字(PSW)中增加了一个执行方式位,区分两种操作方式:用户态,内核态”,说白了,就是为了安全;
“内核态下,允许访问cpu的全部指令,可以访问所有的寄存器和存储区;”
“用户态下,只允许访问cpu的非特权指令,访问制定的寄存器和存储区。如果在用户态下企图运行一条特权指令,cpu就视其为非法指令,终止其运行。”说白了,就是权限范围不同。
扩展阅读
1.操作系统运行在内核态,用户程序运行在用户态;
2.用户态下调用cpu指令的方式称为系统调用;编程人员通过使用系统调用来获取操作系统的资源或服务;常见的系统调用有进程创建与销毁,内存分配与释放,文件的读写,获取或设置系统的日期时间等等。系统调用反应到java中来,就是native方法。
3.内核态与用户态之间的切换与线程上下文切换的区别:内核态与用户态之间的切换是发生在一个线程中的,线程上下文切换是指一个正在运行的线程挂起或执行结束后,转而执行另一个线程;