作者ggg12345 (ggg)
看板CSSE
标题Re: [问题] DUAL MODE
时间Mon Jul 14 09:41:27 2008
※ 引述《H45 (!H45)》之铭言:
: ※ 引述《capslook1218 (大写锁)》之铭言:
: : 在dual-mode operation
: : 分别为kernel mode(别称monitor mode , spuervisor mode,system mode)和user mode
: : 在kernel mode中 有一个东西叫做privileged instruction(特权指令)
: : 在这些指令中有一条指令 我看不太懂
: : 为啥change mode from user mode to monitor mode是privileged instruction
: : privileged instruction有一个限制是 只能在kernel mode中执行
: : 可是这条指令明显违反了这项规则阿>_<
: 只回上面三行 (我的 OS 没有拿超过 90 分,若有谬误烦请不吝指正)
: (○) priviledged instruction 只能在 kernel mode 执行
: (○) change mode from user mode to monitor mode 是 privileged instruction
: 而您的问题是这两个叙述是否矛盾,是吗?
: 单就这个问题来看,我认为没有矛盾
: change mode from user mode to monitor mode 确实是在 kernel mode 执行
: 如果在 user mode 执行的话,因为权限不足,所以系统理应拒绝执行。
=========
privileged instruction 指的是要取得管理者权限的程式才能让该指令
的执行产生效果. 机器进入这种有效执行特权的状态就是 supervisor mode .
从 user mode 要切换为 supervisor mode 时, 就必须对执行者的身份进行特
定的核验与放行, 这个核验当然是个在特殊空间的特定程式. 确保到达此特定
位置并确实执行此完整动作的方法就是透过 trap/interrupt .
interrupt 被执行时, processor 会从 enable interrupt 状态切换为
disable interrupt , 而 disable interrupt 这个指令本身就是 privileged
instruction . 换言之, interrupt/trap 执行後就到达 kernel space 的入
口被检查.
不具特权身份的程式碰到需有特权才能有效执行的特权指令时, 究竟是把
该指令无效跳过, 还是造成 exception trap 就视 processor 的设计而定.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.4.12
1F:推 rexrainbow:推~ 07/29 13:50
2F:→ lungswu:管理者权限..... 这说法有很大问题吧...? 07/31 10:04
3F:→ ggg12345:特权就是指管理者最高权限,user想要做特权指令的动作时, 08/01 22:36
4F:→ ggg12345:无法迳自执行,必须由os kernel代为处理,system call传递 08/01 22:38
5F:→ ggg12345:这些请求,利用trap/interrupt同时切换mode进入特定入口点 08/01 22:42
6F:→ ggg12345:具有管理者权限的kernel program再针对呼叫的user请求,决 08/01 22:44
7F:→ ggg12345:定要如何处理.kernel程式具管理者权限,若决定执行特权指 08/01 22:49
8F:→ ggg12345:令,其迳自执行的结果是生效的.supervisor就是管理者之意. 08/01 22:52
9F:→ lungswu:管理者 是否指的是OS中的 管理者帐号? 08/07 11:55