第8章-用户接口服务.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 用户接口服务 8.1 用户接口的发展 计算机软件平台 早期操作系统对外提供的接口很简陋,功能也单一,包括脱机的作业控制语言(或命令)和联机的键盘操作命令。 在分时系统出现后 ,不仅为程序员提供编程服务的系统调用,而且提供功能强大的命令行接口。在一维空间运行。 图形用户接口(常称做图形界面),它是二维空间界面。 现在有不少游戏软件在三维硬件显示卡的支持下实现三维动画效果。 8.2 系统调用 8.2.1 系统调用和库函数 1.系统调用 系统调用是操作系统提供的、与用户程序之间的接口,也就是操作系统提供给程序员的接口。它一般位于操作系统核心的最高层。 从感觉上系统调用类似于过程调用,都由程序代码构成,使用方式相同——调用时传送参数。 两者有实质差别:过程调用只能在用户态下运行,不能进入核心态;而系统调用可以实现从用户态到核心态的转变。 系统调用可分为5个类别:进程控制、文件管理、设备管理、信息维护和通信。 2.库函数 它们本身并不属于操作系统的内核部分,而且运行在用户态下。 库函数涉及文件管理、状态信息、文件修改、程序设计语言的支持、程序装入和执行、通信等方面内容。 UNIX/Linux系统中系统调用与库函数之间的关系 8.2.2 系统调用使用方式 在UNIX/Linux系统中,系统调用和库函数都是以C函数的形式提供给用户的,它有类型、名称、参数,并且要标明相应的文件包含。 open系统调用可以打开一个指定文件,其函数原型说明如下 #include sys/types.h #include sys/stat.h #include fcntl.h int open(const char *path, int oflags); ▲不同的系统调用所需要的头文件(又称前导文件)是不同的。 【例8.1】本程序利用fork( )创建子进程,利用getpid( )和getppid( )分别获得进程的PID和父进程PID,使用sleep( )将相关进程挂起几秒钟。 /*proc1.c演示有关进程操作*/ #include unistd.h #include sys/types.h #include stdio.h #include errno.h int main(int argc,char **argv) { pid_t pid,old_ppid,new_ppid; pid_t child,parent; parent=getpid(); /*获得本进程的PID*/ if((child=fork())0){ fprintf(stderr,%s:fork of child failed:%s\n,argv[0],strerror(errno)); exit(1); } else if(child==0){ /*此时是子进程被调度运行*/ old_ppid=getppid(); sleep(2); new_ppid=getppid(); } else { sleep(1); exit(0); /*父进程退出*/ } /*下面仅子进程运行*/ printf(Original parent:%d\n,parent); printf(Child:%d\n,getpid()); printf(Childs old ppid:%d\n,old_ppid); printf(Childs new ppid:%d\n,new_ppid); exit(0); } 8.2.3 系统调用的处理方式 1.一般处理方式 不同版本的UNIX系统提供的系统调用的数目不同 实现它们的汇编代码形式通常都以trap指令开头(在Linux系统中是通过中断指令“INT 0X80”实现的) trap指令的一般格式是: trap xx 参数1 参数2 …… ▲当CPU执行到trap指令时,产生陷入事件。 ▲所有的陷入事件有一个总的服务程序,即陷入总控程序。 ▲系统调用处理函数根据trap指令后面的系统调用号去查系统调用入口表,然后转入各个具体的系统调用处理程序。 2.系统调用实现过程示例 8.3 命令行接口 8.3.1 命令的一般使用方式 1. 常用shell种类 Bourne shell(简写sh) C shell(简写csh) Bourne Again Shell(简写bash

文档评论(0)

2518887 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档