我认为我得到的系统程序是什么,但我想了解为什么它们部分在用户模式下执行,部分在内核模式下执行。
由于计算机软件旨在为其他软件提供服务,我认为它们可能完全以内核模式运行。他们在用户模式下运行的是什么?
答案 0 :(得分:0)
存在内核模式和用户模式级别,以防止用户软件损坏系统及其功能。
用户模式如何执行低级指令?
ans - 使用系统调用
用户模式程序可以切换到内核模式,但无法控制将在内核模式下执行的指令。 因此,唯一可能发生的方法是使用系统调用,用户模式使用该接口与低级资源(硬件)进行通信。
唯一的例外是进程使用''ioperm''系统调用。在这种情况下,可以直接访问设备 用户模式过程(不能使用IRQ)。
在此过程中,
用户模式程序将值放在寄存器中,或者创建带参数的堆栈帧, 指出它需要从操作系统中获得哪些特定服务。然后执行陷阱指令。
CPU立即切换到内核模式,并跳转到内存中固定位置的指令。
trap指令或系统调用处理程序,读取所请求的服务+参数的详细信息,然后 在内核模式下执行此请求。
最后完成系统调用后,操作系统将重置模式 到用户模式并从系统调用返回。