操作系统面试题 (其他部分)

中断与系统调用

操作系统接口是什么?

用户通过程序(应用软件)使用计算机
程序是普通代码加上一些重要的函数(如printf函数)

操作系统提供重要函数(重要函数就是操作系统接口,接口表现为函数调用,由系统提供,因此叫系统调用)

常见的系统调用有:
fork()
open()

为什么要区分用户态与内核态?

因为内核中有很多重要的信息与内容,若能随意调用和jmp那就很危险。
比如root密码被修改,word内容通过显存被看到

如何划分用户态与内核态?

硬件把内存割成了两个区域,一个叫用户态,一个叫内核态。
内核态可以访问任何数据,用户态不能访问内核数据

引入DPL与CPL
DPL用来描述目标内存段的特权级别(要访问的目标区域的特权级别)
CPL当前的特权级别
若CPL的数字<=DPL的数字,表示当前特权级别更高,则可以进入,否则不能进入

系统调用如何进入内核态?

硬件提供了主动进入内核的方法——中断指令int(唯一的方法)

猜你喜欢

转载自blog.csdn.net/m0_51082307/article/details/109684413