【教学课件】第2章用户界面.ppt

上传人:牧羊曲112 文档编号:5658366 上传时间:2023-08-06 格式:PPT 页数:26 大小:393.97KB
返回 下载 相关 举报
【教学课件】第2章用户界面.ppt_第1页
第1页 / 共26页
【教学课件】第2章用户界面.ppt_第2页
第2页 / 共26页
【教学课件】第2章用户界面.ppt_第3页
第3页 / 共26页
【教学课件】第2章用户界面.ppt_第4页
第4页 / 共26页
【教学课件】第2章用户界面.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《【教学课件】第2章用户界面.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第2章用户界面.ppt(26页珍藏版)》请在三一办公上搜索。

1、2023/8/6,1,第2章 用户界面,2023/8/6,2,2.1 操作系统提供的用户界面,用户界面也称为用户接口,是操作系统提供给用户与计算机打交道的外部机制,用户借助这种机制来使用和控制计算机系统。用户界面是操作系统中直接与用户交互的平台,是操作系统功能中不可忽略的一个重要的组成部分,其优劣直接关系到操作系统是否能够得到用户的青睐,是评价操作系统性能的重要指标之一。,2023/8/6,3,2.1 操作系统提供的用户界面,操作系统的用户界面分为两种类型:操作命令界面:不同的操作系统提供不同的操作命令界面,它包括键盘命令、图形界面以及批处理界面;系统调用界面:常被称作系统调用接口或系统调用函

2、数,是每个操作系统都必须提供的系统服务功能,用户能够在源程序中使用它来请求系统服务。,2023/8/6,4,用户界面与操作系统,2023/8/6,5,2.1 操作系统提供的用户界面,不同的操作系统针对自身的特点提供不同的用户界面:分时系统必须提供键盘命令和系统调用界面,而一个批处理系统则必须提供批处理控制语言和系统调用界面。任何操作系统都必须提供系统调用界面。,2023/8/6,6,2.1.1 操作命令界面,操作命令界面包括键盘命令、图形界面(视窗)和批处理作业控制语言。用户使用图形界面或键盘命令实现用户与计算机系统之间的交互,或使用操作命令界面来实现对作业的批处理控制。操作系统的操作命令界面

3、由早期的批处理作业控制语言(JCL)方式和键盘命令的方式向多窗口、菜单、按钮、声控等图形化及多媒体方式变化,这种操作界面的显著进步也体现了操作系统的不断更新。,2023/8/6,7,1.键盘命令,分时操作系统中常用的键盘命令可以分为以下几类:目录操作:子目录的创建、删除、改变当前目录、更名、显示目录中文件的属性、显示当前目录路径等等有关目录的操作。文件操作:文件的复制、移动、更名、文件操作权限的设置、显示文本内容、查找文件、文件压缩和解压缩等等有关文件的操作。系统管理:对用户和用户组的增删改等异动管理、对系统进程的查看和管理、对系统日期、时间的显示和修改等系统管理、对磁盘等外部设备的管理等等涉

4、及系统资源管理和用户管理的命令。其它操作:清屏、历史命令的显示、系统帮助等。,2023/8/6,8,2.图形界面,图形操作界面以窗口的方式将系统资源或应用程序展现在用户面前,并以菜单或快捷键的形式提供当前窗口所有的功能服务,使用户能够在窗口或对话框的提示下,一步一步地完成系统所需要知道的服务内容,从而使系统能够正确地响应用户通过菜单给出的请求,顺利而快捷地完成系统与用户之间的交互。操作系统具有图形操作界面后为计算机的普及插上了翅膀,使计算机进入千家万户成为可能。在计算机的普及上,操作系统所提供的图形界面功不可没。,2023/8/6,9,3.批处理作业控制语言,批处理操作系统必须提供作业控制语言

5、(JCL),该语言所起的作用是对批处理文件中各作业的执行过程进行控制。操作系统对于作业批处理控制语言采用解释执行方式,即在批处理文件的执行过程中边解释边执行。用户可以使用批处理语言来组织和控制自己的可执行文件的执行,这使用户能够在作业级别上控制多个作业的执行流程。批处理是操作系统提供的作业操作界面,因此作业控制语言由操作系统负责解释执行,无须编译连接,所以批处理文件虽然可执行,但与高级程序编译连接后形成的可执行文件是不同类型的文件。,2023/8/6,10,3.批处理作业控制语言,批处理语言与高级语言的不同之处在于:批处理文件是ASCII码文本文件,它由可执行的文件、键盘命令或批处理控制语言组

6、成,其中的可执行文件和键盘命令都可以在文本方式下单独执行;而高级语言源程序中放的是高级语言提供的语句或者操作系统提供的系统调用函数。批处理文件中的每个作业都是可执行的,因而不需要编译连接,只需要修改该批处理文件的属性为可执行文件后便可执行;而高级语言源程序中的语句都是符号语言,需要经过编译连接翻译成二进制代码后才可以执行。操作系统所提供的批处理作业控制语句的格式因为没有编译程序的帮助往往很呆板,使用时不如高级语言程序那么顺手好用。因为批处理不经过编译,其控制语言中没有结束语句,最后一个作业(命令)执行完后就自动结束了;与终止键盘命令的执行相同,在批处理命令的执行过程中如果需要终止执行也可以使用

7、组合键Ctrl+c实现。而高级语言程序一般都有结束标记。,2023/8/6,11,2.1.2 系统调用界面,所谓系统调用,就是用户在程序中调用操作系统所提供的一些子功能。它是一种特殊的过程调用,这种调用通常是由特殊的机器指令实现的。这些服务程序以系统功能模块或函数的形式提供给用户,在用户程序中凡是涉及到对系统资源的请求、控制、使用等与系统资源有关的操作,都可以在程序中需要的地方提出请求,由操作系统的服务程序来完成。,2023/8/6,12,2.1.3 两种界面之间的关系,操作命令与系统调用两种界面的相互关系:操作命令界面是在系统调用界面的支持下开发完成的。无论是键盘命令、图形界面还是批处理文件

8、,它们在执行后都会转换为相应的系统调用函数去完成相应的任务。所以,系统调用是实现操作系统功能和应用程序功能的支撑平台。在设计操作系统时很大一部分任务是设计操作系统所有的系统调用函数。,2023/8/6,13,操作系统提供给应用程序的一个接口,使得应用程序能够获得操作系统的服务进程管理、文件管理、存储管理、系统管理等,系统调用是一个复杂的过程 系统调用往往通过软中断的方式实现 系统调用在为应用程序提供操作系统服务的同时,也实现了对计算机资源和应用程序的保护,2.2 系统调用,2023/8/6,14,软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和“信

9、号”有些类似。软中断和硬中断相对应,硬中断是外部设备对CPU的中断,软中断通常是硬中断服务程序对内核的中断,信号则是由内核(或其他进程)对某个进程的中断。,关于软中断,2023/8/6,15,系统调用一般包括以下几种类型:1有关设备管理的系统调用:用户使用这些系统调用实现对设备的读写和控制等。比如系统调用read、write可以用来对指定设备进行读写;open、close可以用来打开和关闭指定的设备等等。2有关进程控制的系统调用:比如实验中将用到进程的创建fork()、进程的终止exit()、获取当前进程的标识符getpid()、等待子进程终止wait()、执行某个应用程序execl()等等。

10、,2.2.1 系统调用的类型,2023/8/6,16,2.2.1 系统调用的类型,3有关进程通信的系统调用:比如我们也要在实验中用到的实现父子进程通信的管道创建pipe(),实现多进程共享消息队列的几个系统调用msgget()、msgsnd()、msgrcv()、msgctl(),实现多进程共享内存缓冲区的系统调用shmget()、shmat()、shmdt()、shmctl(),以及实现网络套接字socket的几个系统调用等等。4有关文件管理的系统调用:有关文件管理的系统调用是用户源程序中使用最多的一种,它包括文件的打开、关闭、读、写、创建、删除、执行、安装、获取等等。其中最常用的如打开、关

11、闭、读、写等直接作为语句提供在高级语言中直接使用。比如我们在C语言中所熟悉的open()、close()、read()、write()等虽是以语句的形式给出,最后调用的是操作系统所提供的系统调用。5关于存储管理的系统调用:涉及到对内存空间大小的获取和释放、请求内存缓冲区、检查内存中现有的进程、改变堆栈的大小等等操作都要使用这一类的系统调用。6关于系统管理的系统调用:比如对系统日期和时间的设置或读取、获得当前用户或主机的标识符等等。显然,一个操作系统所提供的系统调用越多,其功能就越强,用户就越方便,当然系统本身就越复杂和庞大,分析起来也就越困难。,2023/8/6,17,2.2.2 系统调用的实

12、现,系统调用函数执行时处理机处于核态或管态,CPU可以执行系统程序中的特权指令、访问内核空间。因此,在用户在源程序中需要执行特权指令的时候,必须使用系统调用来请求操作系统的服务,由操作系统的服务程序来完成。当处理机执行用户程序中的系统调用函数时,由特定的硬件或软件指令实现对操作系统某个功能的调用,CPU在执行到系统调用函数时会产生访管中断,通过中断自动将CPU的态由用户态转变为系统态,然后进入系统的服务程序去执行,服务完成后再通过中断返回将处理机的状态由系统态转变回用户态,然后返回用户程序中被中断的地方继续执行。,2023/8/6,18,系统功能的调用,系统调用与返回 程序之间的嵌套调用,20

13、23/8/6,19,系统调用执行过程,2023/8/6,20,2.2.2 系统调用的实现,不同的操作系统实现系统调用的具体方法不同,但其实质相同,都具有以下几点:1.每个系统调用对应一个系统调用号;2.每个系统调用有一个对应的执行程序段;3.每个系统调用要求一定数量的输入参数和返回值;4.整个系统有一个系统调用执行程序入口地址表。,2023/8/6,21,2.2.2 系统调用的实现,用户在其源程序中需要请求系统服务的地方使用请求系统服务的访管指令,执行访管指令时产生访管中断并转到操作系统访管中断处理程序执行,并通过中断将CPU的态修改为核态。该中断处理程序根据系统调用的名称或调用号查系统调用子

14、程序入口地址表(即图中的例行子程序入口地址表),找到该系统调用子程序的入口地址,从而转到系统调用子程序去执行。操作系统与用户程序配合完成系统调用的过程参见前图。,2023/8/6,22,2.2.3 系统调用与子程序调用的区别,系统调用在形式上与子程序调用类似,但是它们有本质的区别,其区别见下表:,2023/8/6,23,2.3 Linux的系统调用,Linux在系统文件/usr/src/linux-2.4/arch/i386/kernel/entry.S中存放了系统所提供的系统调用的入口表,表中给出了函数名与调用编号之间的对应关系。比如exit()的调用号是1号,fork()是2号,以此类推,

15、如下所示为部分调用号与函数名之间对应的系统调用入口表。ENTRY(sys_call_table).long SYMBOL_NAME(sys_ni_syscall)/*0 old setup()system call*/.long SYMBOL_NAME(sys_exit).long SYMBOL_NAME(sys_fork).long SYMBOL_NAME(sys_read).long SYMBOL_NAME(sys_write).long SYMBOL_NAME(sys_open)/*5*/.long SYMBOL_NAME(sys_close).long SYMBOL_NAME(sys_

16、waitpid).long SYMBOL_NAME(sys_creat).long SYMBOL_NAME(sys_link).long SYMBOL_NAME(sys_unlink)/*10*/.long SYMBOL_NAME(sys_execve).long SYMBOL_NAME(sys_chdir).long SYMBOL_NAME(sys_time).long SYMBOL_NAME(sys_mknod).long SYMBOL_NAME(sys_chmod)/*15*/,2023/8/6,24,2.3 Linux的系统调用,在系统文件/usr/src/linux-2.4/kern

17、el/sys.c中存放了一部分系统调用函数,它们都以asmlinkage开头,类型都是long,而且在调用的函数名前面加上前缀sys_如下所示。比如,上面的入口表中的第0号系统调用函数ni_syscall就是asmlinkage long sys_ni_syscall(void)函数,如下所示。asmlinkage long sys_ni_syscall(void)return-ENOSYS;,2023/8/6,25,2.3 Linux的系统调用,还有其它一些系统调用函数,它们都以asmlinkage long sys_开头,比如:asmlinkage long sys_getrusage(int who,struct rusage*ru)if(who!=RUSAGE_SELF 如果用户需要在系统内核中增加一个新的系统调用函数,则必须修改上述两个系统文件entry.S和sys.c,并对系统内核进行重新编译形成新的内核,系统才能识别新增加的系统调用函数。,2023/8/6,26,作业,第2章 2、3题,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号