这两者主要的区别就是二者的权限不同,大部分程序都是运行在用户态中,权限比较小,当需要操作硬件或者程序发生异常等,就需要切换到内核态,由操作系统来进行更高权限的操作。然后就是处于用户态执行时,进程所能访问的内存空间和对象受到限制,且当前的处理器是可被抢占的;而处于内核态时,能够访问所有的内存空间和对象,且所占用的处理器是不允许被抢占的。