IO指令的特权保护

[复制链接]
4208|5
 楼主| yos 发表于 2007-1-22 10:42 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;我们直到,x86系列cpu以及其兼容机的io需要在特权状态才能执行,用户状态是不能使用的,io操作只能通过操作系统的系统调用才能实现。<br />&nbsp;&nbsp;&nbsp;&nbsp;许多单片机是没有特权状态的,操作系统和应用程序只能运行在同一个状态里,这几年很火的ARM虽然有特权状态,但是没有独立的IO指令,可以看作是IO指令不受特权保护,在有mmu时,可以利用mmu间接实现特权保护。<br />&nbsp;&nbsp;&nbsp;&nbsp;除x86系列cpu外,还有哪些cpu的io操作是受特权状态保护的?
dai_weis 发表于 2007-1-22 20:33 | 显示全部楼层

不明白你的描述

呵呵,楼下言之有理学习之。
 楼主| yos 发表于 2007-1-23 09:27 | 显示全部楼层

特权操作

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

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

  
computer00 发表于 2007-1-23 14:45 | 显示全部楼层

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

只有内存空间,没有IO空间.&nbsp;尤其是嵌入式方面的.&nbsp;
mohanwei 发表于 2007-1-23 19:12 | 显示全部楼层

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

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

yos

5

主题

30

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部