打印

IO指令的特权保护

[复制链接]
2717|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yos|  楼主 | 2007-1-22 10:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    我们直到,x86系列cpu以及其兼容机的io需要在特权状态才能执行,用户状态是不能使用的,io操作只能通过操作系统的系统调用才能实现。
    许多单片机是没有特权状态的,操作系统和应用程序只能运行在同一个状态里,这几年很火的ARM虽然有特权状态,但是没有独立的IO指令,可以看作是IO指令不受特权保护,在有mmu时,可以利用mmu间接实现特权保护。
    除x86系列cpu外,还有哪些cpu的io操作是受特权状态保护的?

相关帖子

沙发
dai_weis| | 2007-1-22 20:33 | 只看该作者

不明白你的描述

呵呵,楼下言之有理学习之。

使用特权

评论回复
板凳
yos|  楼主 | 2007-1-23 09:27 | 只看该作者

特权操作

楼上:
    在特权状态下才能执行的指令称为特权指令,由特权指令完成的操作当然叫特权操作了。例如x86,在用户状态下执行io指令只相当与nop指令,如果程序运行在用户态,要执行特权操作只有请求操作系统协助才能完成。
    在单片机中,ARM就有特权指令,例如操作cpsr和spsr的指令,用户态执行这些指令也相当于nop。不过,很多人写程序时并不使用用户态,而是直接让程序运行在特权态,所以就感觉不出来。另外,很多嵌入式操作系统也不切换处理器状态,例如ucosii。
    无论哪一种操作系统,特权保护都是依靠硬件才能实现的,包括windows,因为操作系统并不能拒绝用户程序执行任何一种指令,但是cpu可以根据工作状态选择性地拒绝某些指令的执行。
    楼上学习时要注意哪些功能是cpu提供的,哪些功能是操作系统提供的。

使用特权

评论回复
地板
将军令| | 2007-1-23 14:33 | 只看该作者

dai_weis一定没有学过《操作系统》

使用特权

评论回复
5
computer00| | 2007-1-23 14:45 | 只看该作者

很多处理器都是没有IO操作指令的,直接是内存地址映射

只有内存空间,没有IO空间. 尤其是嵌入式方面的. 

使用特权

评论回复
6
mohanwei| | 2007-1-23 19:12 | 只看该作者

对于一个小单片机来说,就没必要搞这么复杂了……呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

yos

5

主题

30

帖子

1

粉丝