德阳网站建设求职简历b2b免费发布信息平台
特权指令:具有特殊权限的指令,比如清内存,重置时钟,分配系统资源,修改用户的访问权限
由于这类指令的权限最大,所以使用不当会导致整个系统崩溃
系统调用:是操作系统提供给应用程序的接口(供应用程序调用的特殊函数),应用程序使用系统调用来获得操作系统的服务
运行的用户程序,想要操控内核态级别的资源(比如文件管理,进程控制,内存管理),需要通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成,要记住的是用户程序执行系统调用
用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取
内核态:可以访问内存所有数据,而且可以访问外围设备(硬盘,网卡),cpu也可以将自己从一个程序切换到另一个程序
内核态和用户态的区别就是权限不同,内核态处于权限0,权限较高,用户态处于权限3,权限较低
从用户态切换到内核态的方法:
(1)系统调用:
进程调用:exit,fork()
文件系统访问:chmod,chown
设备调用:read,write
信息读取:读取设备信息
通信:mmap,pipe
(2)中断:外围设备的终端,硬盘读写操作完成后,会向cpu发出中断信号,这时cpu会暂停执行下一条将要执行的指令,转而去执行与中断信号对应的处理程序,这个程序时内核态程序,所以也会由用户态转为内核态
(3)异常:cpu在执行用户态下的程序时,发生了某些事先不可知的异常,这时会触发当前运行的进程切换到处理此异常的内核相关程序,也就转到了内核态,比如缺页异常,除零异常