- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
系统调用是通过访管指令请求操作系统服务的, PDP-11系统计算机的UNIX系统 TRAP n 微机系统windows 95/98 , NT MS-DOS INT N 教材上称为自愿进管指令: SVC N SVC (supervisor call) :自愿进管指令的操作码 N:为地址码 系统调用是通过访管指令实现的。在程序中,如果希望请求操作系统的服务(例如,打开一个文件,显示某个目录的内容等),就要执行一条访管指令(trap、int),系统处理这个中断,即为用户提供相应的服务(或者称响应用户的请求)。 注意: 在汇编程序中是显式地使用访管中断命令,trap、INT。在高级语言中(C语言)是隐式使用访管指令。 不同的操作系统,系统调用实现的具体方法有所不同,但其实质的特点是相同的: 1、每个系统调用对应一个系统调用号; 2、每个系统调用有一个对应的执行程序段; 3、每个系统调用要求一定数量的输入参数和返回值; 4、整个系统有一个系统调用执行程序入口地址表; 系统调用的实现 UNIX系统的系统调用 一、UNIX系统调用的使用 在UNIX系统中系统调用是自陷的一种。例如:某用户程序要求打开一个文件: 汇编语言程序中: trap 5 C语言程序中: open(“文件路径名,mode) 二、trap处理程序 trap处理程序是UNIX系统的自陷处理程序,负责处理所有的自陷(来自处理机内部的中断),其中包括系统调用的处理。 在处理系统调用时,首先把要求的参数传送到指定的存储区(user结构中),然后根据系统调用号查系统调用入口表,找到相应处理程序的入口地址,并启动执行,处理程序执行完成后,返回trap程序,trap程序返回中断自陷总控程序。 三、系统调用入口表 系统调用入口表是系统调用处理程序入口地址表,该表的第一个表目对应0号系统调用,第二个表目对应1号系统调用,如此类推。在老版本的UNIX系统中只有64个系统调用,在现代流行的UNIX系统版本中,一般有128个系统调用。 UNIX系统的系统调用入口表的定义如下: struct sysent { int count; /* 参数的个数 */ int (*call)(); /* 执行程序入口地址 */ } sysent[64]; * 四、UNIX系统调用实现 UNIX系统调用的分类 1、有关进程管理的系统调用 fork 创建一个进程 exec 执行一个可执行的文件 wait 等待子进程终止 exit 进程终止(自杀) ...... 2、与文件有关的系统调用 open 打开一个文件 close 关闭文件 read 读文件 write 写文件 creat 创建文件 lseek 修改文件的读写指针 link 文件连接 unlink 撤除文件连接(删除文件) ...... 3、与系统状态有关的系统调用 time 取日历时间 stime 设置日历时间 ...… 设计多级存储的体系结构 假设两级存储器: 第I级包含1KB,存取时间为0.1μs 第II级包含1MB,存取时间为1μs 存取I级中的内容,直接存取 存取II级,首先被转移到I级,然后再存取 假设确定内容所在位置时间可以忽略 若在I级存储器中发现存取对象的概率是95%,则平均访问时间为: 结果非常接近I级存储的存取时间 缓冲技术 引入缓冲目的:缓和CPU与设备速度不匹配的矛盾。 CPU Cache 内存 Buffer 外部设备 字传送 块传送 缓冲包括:Cache和Buffer。 什么是中断? 指CPU对系统中或系统外发生异步事件的响应 异步事件是指无一定时序关系的随机发生事件 如外部设备完成数据传输、实时设备出现异常等 “中断”名称源于: 当异步事件发生后,打断了对当前程序的执行 而转去处理该异步事件 直到处理完了后,再转回原程序中断点继续执行 1.7.3 中断技术 从用户角度看中断 几个概念 中断是指某个事件(例如,电源掉电、俘点运算溢出、外部设备传输完成或出错等)发生时,系统中止现运行程序的执行,引出处理事件程序对相应事件进行处理,处理完毕后返回断点继续执行。 中
文档评论(0)