计算机操作系统原理与核心设计精要_第1页
计算机操作系统原理与核心设计精要_第2页
计算机操作系统原理与核心设计精要_第3页
计算机操作系统原理与核心设计精要_第4页
计算机操作系统原理与核心设计精要_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统接口概述清华大学出版社1/19目标:提供一个友好的用户访问操作系统的接口,使得用户能将自己的要求告诉操作系统,同时也要构造一个反向接口使系统能够利用该接口告知用户目前的工作情况两种主要接口:作业(或功能)控制一级脱机用户接口联机用户接口程序一级的编程接口:由一组系统调用和高级语言库函数组成操作系统接口概述(续)应用程序操作系统硬件系统调用命令用户界面用户接口示意图用户清华大学出版社2/19第10章操作系统接口清华大学出版社3/19作业接口(命令接口)脱机用户接口联机用户接口图形用户接口。

通过出现在屏幕上的对象直接进行操作,以控制和操纵程序的运行。Shell语言程序接口(系统调用)

由一组系统调用组成,每一个系统调用都是一个完成特定功能的子程序。10.1作业级接口清华大学出版社4/19脱机用户接口

由一组具有编程语言特征的作业控制命令,或称作业控制语言(Job

Control

Language,JCL)组成。

以作业说明书的方式提交给系统(批的方式);执行过程中,用户无法干涉

作业说明书主要包括作业情况和作业资源要求两方面的内容UNIX/Linux中的Shell语言也可作为JCL使用效率较高,但缺乏交互能力,不适合初学者作业级接口清华大学出版社5/19联机用户接口采用人机对话的方式来控制作业的运行,及时交互由一组命令及命令解释程序组成,也称命令接口一般可提供如下的一种或几种方式:命令行方式菜单方式命令文件方式联机用户接口(1)清华大学出版社6/19命令行方式

通过控制台终端,打入操作系统提供的命令来控制自己的作业的运行各操作系统命令从格式到功能都不尽相同通常的命令格式:COMMAND

argl,arg2,…,argn

<CR>命令类型:系统管理、环境设置、权限管理、文件管理等该方式繁琐,难记,但用起来快捷便利、十分灵活联机用户接口(2)清华大学出版社7/19Unix/Linux常用命令类型系统访问命令:login,logout等编辑和文件管理命令vi,emacs,cp,rm和ls等编译、链接命令:cc,link等调试命令:例如dbx等维护管理命令:adduser,chown等其它命令:date、time等联机用户接口(3)清华大学出版社8/19批命令方式

把所需执行的一系列命令组装成文件,然后用文件名作为命令名执行所需命令序列,从而自动控制作业的运行例子:MS的BAT文件Unix的Shell文件或Shell过程对一些重复运行的作业非常有用联机用户接口(4)清华大学出版社9/19命令解释程序

接收用户输入的命令行,作出相应的解释并执行该命令提出的对作业的处理要求。通常会保存一张命令名字(动词)表

记录所有操作命令及其处理程序的人口地址或相关信息。第10章操作系统接口清华大学出版社10/19作业接口(命令接口)脱机用户接口联机用户接口图形用户接口

通过出现在屏幕上的对象直接进行操作,以控制和操纵程序的运行。Shell语言程序接口(系统调用)

由一组系统调用组成,每一个系统调用都是一个完成特定功能的子程序。10.2图形用户接口清华大学出版社11/19图形用户接口(Graphics

User

Interface,GUI)将各种图形元素显示在屏幕上,对屏幕上的对象直接进行操作部件构成窗口、菜单、列表框、消息框、对话框、按钮、滚动条等。特点人机交互的并发性好、传递信息量大例子MS

Windows、UNIX的X-Window等最新进展触摸屏、话音、用户表情和肢体动作等。10.2图形用户接口清华大学出版社12/19

采用事件驱动的控制方式,工作过程:用户按键或点击鼠标产生一个事件,通过中断系统激发事件驱动控制程序由事件驱动控制程序负责接收、分析和处理事件最后清除处理过的事件第10章操作系统接口清华大学出版社13/19作业接口(命令接口)脱机用户接口联机用户接口图形用户接口

通过出现在屏幕上的对象直接进行操作,以控制和操纵程序的运行。Shell语言程序接口(系统调用)

由一组系统调用组成,每一个系统调用都是一个完成特定功能的子程序。10.3

shell语言清华大学出版社14/19UNIX或Linux系统的最外层,亦即外壳UNIX或Linux操作系统的用户界面

作为操作系统命令语言,也可以作为作业控制语言使用具有参数传递、变量设置、字符替换、流程控制、子程序以及中断管理等功能

用户可利用多条shell命令构成一个程序文件或shell过程。10.3.1

Shell命令语言清华大学出版社15/19命令结构由简单命令名和管道命令名及命令参数(可选)组成例子$date;who这两条命令分别打印或设置系统日期和时间查看其它登录的用户10.3.1

Shell命令语言清华大学出版社16/19Shell元字符用来匹配文件名例子1Windows常使用的“?”和“*”10.3.1

Shell命令语言清华大学出版社17/19例子2:匹配文件名中的任何单个字符括号中的内容理解为一条命令后台执行命令替换命令行中的参数Shell变量Var的值命令表的分隔符执行反引号中的命令,并在输出时用该■■Linux

Shell常用元字符?(

)&$0,$1,…$n$Var;"comd

"命令执行的结果替换命令部分Var=Vcomdl

||

comd2comdl将值赋给Shell变量如果不成功执行命令comd2,否则执行comd1

&&

comd2#如果不成功执行命令comd1,否则执行comd2忽略所有在#之后的内容10.3.1

Shell命令语言清华大学出版社18/19Shell变量Shell环境是由一些变量及其变量值来决定的,这些变量称为Shell变量。Shell变量是一个标识字符串,它的值可以是一定范围内的字母和数字Shell变量分为两类标准Shell变量用户自定义的变量例如:$SAMPLE=“Hello,world!”10.3.1

Shell命令语言清华大学出版社19/19Shell常用命令文件管理类:cd、chmod、chown、chgrp、comm、cp、crypt、diff、file、find、ln、ls、mkdir、mvcd、pr、pwd、mv、mvdir。

进程管理类:at、kill、mail、nice、nohup、ps、time、write、mesg。

文本加工类:cat、crypt、grep、norff、unlq、wc、sort、spell、tail、troff。

软件开发类:cc。f77、login、logout、size、yaccvi、emacs、dbx、lex、make、lint、ld。

系统维护类:date、man、passwd、stty、tty、who等。10.3.1

Shell命令语言清华大学出版社20/19其它Shell命令后台命令“&”例如

cc

demo-pgm.c&环境变量例$XYZ=“cat

pgm-name1”■$echo

$XYZ将执行命令$cat

pgm-namel输入输出重定向$cat

file1

file2>/dev/lp管道命令$cat

filelfile2

|

wc10.3.1

Shell命令语言清华大学出版社21/19其它Shell命令(续)过滤器grep——从指定文件中搜索特定的字符串或包含特定字符串的行等。sort——对文件内的各行或词组按某种规定的方式分类。tail——表示文件末尾的指定数行。命令返回值例$echo$?0反引号操作符(‘)$EXAMPLE=

"

echo

$LOGNAME

"■■■$echo

$EXAMPLEUser1$其它,如(;)可将多条命令组合为一条命令。$ls;echo

$EXAMPLE10.3.2

Shell过程清华大学出版社22/19

用Shell命令语言编制成的程序文件称为

Shell过程。除各种合法命令,还包括控制流语句if-

then-elsein-case,for-dowhile-do,until-doShell过程还可以设置Shell变量范例参见课本10.3.2第10章操作系统接口清华大学出版社23/19作业接口(命令接口)脱机用户接口联机用户接口图形用户接口

通过出现在屏幕上的对象直接进行操作,以控制和操纵程序的运行。Shell语言程序接口(系统调用)

由一组系统调用组成,每一个系统调用都是一个完成特定功能的子程序。10.4

系统调用清华大学出版社24/19系统调用简介系统调用的类型系统调用的实现实现机制执行过程参数传递系统调用与过程调用的区别Win32应用程序接口10.4

系统调用清华大学出版社25/19系统调用(SYSTEM

CALL),也称程序接口

操作系统提供给编程人员的唯一接口,编程人员利用系统调用,完成与机器硬件部分相关的工作。用户得以在程序中调用操作系统所提供的一些子功能。

OS核心中都有一组实现系统功能的过程(子程序),系统调用就是对上述过程的调用。编程人员利用系统调用向OS提出服务请求,由OS代为完成。

每个系统都有上百种系统调用,涉及进程、文件和设备控制等。系统调用是由特殊的机器指令实现的。系统的系统调用越多,功能就越强,使用更加灵活。10.4

系统调用清华大学出版社26/19系统调用的类型进程控制类系统调用fork()、wait()文件操作类系统调用open

()、close()进程通信类系统调用设备管理类系统调用存储管理类的系统调用维护管理类系统调用不同的操作系统有一定的差异10.4

系统调用清华大学出版社27/19例1:文件管理:文件读写和文件控制(高级语言)Open

文件打开Close

文件关闭Read

读文件Write

写文件Creat

文件创建例2.利用系统调用实现硬盘文件内容读写MOVE

DX,OFFSETBUFFMOVE

CX,BYTEMOVE

BX,HANDLEMOVE

AH,3FHINT

21H10.4

系统调用系统调用的实现(续1)

当编程人员给定了系统调用名和参数之后,由陷入处理机构(类似于硬件中断处理机构)完成。陷入处理机构是系统专门为控制系统调用服务设立的。

当用户使用系统调用时,产生一条相应的指令(陷入指令,trap指令),CPU在执行到该指令时发生相应的中断,发出有关信号给该

处理机构,并启动相应的处理程序来完成该系统调用所要求的功能。陷入指令(或访管指令):由于系统调用引起处理机中断的指令

在陷入中断发生时,从用户态->核心态。这一转换在发生访管中断时由硬件自动实现。清华大学出版社28/1910.4

系统调用清华大学出版社29/19系统调用的实现(续2)

系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的。每种机器的机器指令集中都有一条系统调用指令。10.4

系统调用清华大学出版社30/19执行过程保护用户程序的现场;执行相应功能:根据系统调用提供的功能号,访问系统功能入口地址表,得到相应功能的人口地址,然后转去执行;返回处理:在系统调用处理结束之后,还要恢复处理器现场。在操作系统中,处理器的现场一般被保护在特定的内存区或寄存器中。10.4

系统调用清华大学出版社31/19参数传递目的:实现用户程序和系统程序间的参数传递常用实现方法:

由陷入指令自带参数:陷入指令的长度有限的,且还要携带系统调用功能号,只能自带有限的参数

通过有关通用寄存器来传递参数:这些寄存器应是系统程序和用户程序都能访问,由于寄存器长度较短,从法传递较多的参数更为常见的是在内存中开辟专用堆栈区来传递参数。10.4

系统调用清华大学出版社32/19系统调用与一般过程调用的区别相同点:改变指令流程重复执行和公用改变指令流程后需要返回原处10.4

系统调用清华大学出版社33/19系统调用与一般过程调用的区别(续1)不同点:运行在不同的系统状态一般过程调用,其调用程序和被调用程序都运行在相同状态:核心态或用户态系统调用:调用程序在用户态,被调用程序在系统态进入方式不同,状态的转换

通常利用call或jump指令进入普通的过程调用,而进行系统调用则需要利用int或trap指令通过软中断进入一般的过程调用不涉及系统状态的转换,可直接由调用过程转向被调用过程

运行系统调用时,调用和被调用过程在不同系统状态,不允许由调用过程直接转向被调用过程通过软中断机制先由用户态转换为核心态在OS核心分析后,转向相应的系统调用处理子程序10.4

系统调用清华大学出版社34/19系统调用与一般过程调用的区别(续2)不同点:返回方式不尽相同一般过程调用在被调用过程执行完后,返回调用过程

抢占式调度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论