第2章 操作系统用户界面
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2 一般用户的输入输出界面
通道处理机(通道)
是一个独立于CPU的专管输入输出的处理机, 它控制外设或外存与内存之间的信息交换。
通道有自己的指令,以驱动外设进行读写操 作,但是,这些指令需要CPU执行“启动通道” 的指令后才开始执行。
通道处理机是IBM公司首先提出来的一种I/O处 理机方式。这种方式被广泛用于IBM360、370 等系列机上。
2.2 一般用户的输入输出界面
作业说明书的主要内容
2.2 一般用户的输入输出界面
2.2.3 一般用户的输入输出方式
1. 联机输入输出方式 外围设备直接和主机相连。例如:键盘、鼠标、 显示器、打印机等。 2. 脱机输入输出方式 用户通过联机方式把数据或程序输入到后援存 储器上,例如U盘、移动硬盘,然后把存有输 入数据的后援存储器连接到主机。可以在较短 的时间内完成作业的输入工作。
2.5 系统调用
为系统调用服务的机构称为陷阱(trap)处理机 构。由系统调用引起处理机中断的指令称为陷 阱指令(访管指令)。在操作系统中,每个系统 调用都对应一个事先给定的功能号,例如0,1, 2,3等。在陷阱指令中必须指定系统调用的功 能号和有关参数。 每个系统调用的功能由一个或多个子程序完成, 每个子程序有一个入口地址,陷阱处理程序根 据入口地址表调用相应的子程序完成系统调用 的功能。
2.5 系统调用
2.5 系统调用
处理机的执行状态:用户态、系统态(核心 态)。
处理机在用户程序中执行称为用户态,而把 处理机在系统程序中执行称为系统态。
2.6 Linux和Windows的系统调用
2.6.1 Linux系统调用 Linux提供了6类系统调用: 1.设备管理:申请、释放设备,设置设备的属性。 2.文件系统操作:建立、删除文件,打开、关闭和 读写文件,设置文件的属性。 3.进程控制:进程创建、执行、终止,设置进程的 属性。 4.存储管理:申请和释放内存。 5.管理用:设置日期时间,设置系统数据。 6.通信:建立和断开通信连接,发送和接收消息等。
程序的执行结果:
2.4 Linux与Windows的命令控制界面
2.4.2
Windows的命令控制界面
Windows的命令解释器cmd.exe提供了功能强大的 命令行控制界面,Windows的操作命令分为以下4 类:
(1)系统信息: time,date,mem,systeminfo (2)系统操作: shutdown,runas,taskkill (3)文件系统: copy,del,mkdir (4)网络通信: ping,netstat,route
if
void main(int argc,char *argv[]) { filecopy(argv[1],argv[2]); }
2.6 Linux和Windows的系统调用
2.6.2 Windows系统调用 Windows系统调用被进一步编写成不同的库函数 后放入动态链接库DLL中。 这些库函数构成了Windows操作系统提供给程序 员的编程界面。这个编程界面被称为应用编程 接口API,常用的API函数调用分为5类: 1、窗口管理类 2、图形设备接口(GDI)类 3、系统服务类 4、国际特性类 5、网络服务类
2.2 一般用户的输入输出界面
DMA控制器
DMA(Direct Memory Access ) ,即直接存 储器存取,是一种快速传送数据的机制。 DMA数据传送可以从适配卡到内存、从内存 到适配卡或从一段内存到另一段内存。每台 微机的主板上都有DMA控制器,外部设备的 适配器上的ROM(如光盘驱动控制器上的ROM) 存储了DMA程序,DMA程序启动后,DMA控制 器就可以脱离CPU,独立完成数据传送。
系统调用大致可分为6类:
(1) 设备管理。该类系统调用被用来请求和释放 有关设备、以及启动设备操作等。
(2) 文件管理。对文件的读、写、创建和删除等。
2.5 系统调用
(3) 进程控制。进程是程序的一次执行过程。与 进程控制有关的系统调用包括进程创建、进程 执行、进程撤消、执行等待和优先级控制等。 (4) 进程通信。该类系统调用被用在进程之间传 递消息或信号。 (5) 存储管理。 (6) 线程管理。包括线程的创建、调度、执行、 撤销等。 不同的系统提供不同的系统调用。一般,每个 系统为用户提供几十到几百条系统调用。
例:使用Linux提供的系统调用,编写一个程序, 实现文件复制的功能。
#include <fcntl.h> #include <sys/stat.h> #define SIZE 1 void filecopy(char *infile,char *outfile) { char buffer[SIZE]; int In_fh,Out_fh,Count; if ((In_fh=open(Infile,O_RDONLY))==-1) printf(“Opening infile failure”);
Shell命令格式: 命令名 [选项] 参数1 参数2... (1)参数变量的表示方法: $0:表示执行的程序名;$1-$9:表示传给程序的第 1个--第9个参数;${大于9的数字}:表示第10个、11 个参数.....; (2)特殊变量的表示方法: $#:表示参数变量的个数;$*:表示所有的参数变 量,$@:表示所有参数变量的值;$?:最近一个执行 过的命令的返回值。 对整数进行比较 [ int1 -eq int2 ]:相等为真; [ int1 -ne int2 ]:不相等为真 [ int1 -gt int2 ]:int1>int2为真 [ int1 -lt int2 ]:int1<int2为真 注:各选项之间用空格隔开
((Out_fh=open(Outfile,(O_WRONLY|O_CREAT |O_TRUNC),(S_IRUSR|S_IWUSR))==-1) printf(“Opening outfile failure”); while ((Count=read(In_fh,Buffer,sizeof(Buffer)))>0) if (write(Out_fh,Buffer,Count)!=Count) printf(“Writing data error”); if (Count==-1) printf(“Reading data error”); close(In_fh); close(Out_fh); }
2.4 Linux与Windows的命令控制界面
新建exam2.bat: @echo off mem > %1\meminfo.txt echo generate memoryinfo ok!
新建exam3.bat: @echo off type %1\*.txt echo type ok!
2.4 Linux与Windows的命令控制界面
2.4 Linux与Windows的命令控制界面
Windows命令的使用方式 (1)直接在命令行输入命令 例如:systeminfo & mem 显示当前系统的属性、 配置等,然后显示当前内存使用情况。 (2)使用批处理 新建 exam1.bat @echo off mkdir test echo hello pause
2.2 一般用户的输入输出界面
5.网络联机方式
以上述几种输入输出方式为基础,通过计 算机网络中某一台设备或主机对计算机网 络中另一台主机进行输入输出操作时,就 构成了网络联机方式。
2.3 命令控制界面
命令控制界面是操作系统提供给用户使用 的命令接口或系统调用。
命令控制界面主要有两种:图形窗口界 面和字符界面。
2.4 Linux与Windows的命令控制界面
字符命令界面下可以执行 shell 程序,一个 shell程序由6个部分组成:
(1)命令或其他shell程序; (2)位置参数; (3)变量及特殊字符;
(4)表达式比较;
(5)控制流语句,例如while,case等; (6)函数。
shell程序举例:
2.2 一般用户的输入输出界面
2.2.1 作业的定义
编程的一般过程
2.2 一般用户的输入输出界面
在一次应用业务处理过程中,从输入开始到输 出结束,用户要求计算机所做的有关该次业务 处理的全部工作称为一个作业。 作业由相对独立的作业步组成,一般来说,前 一个作业步产生下一个作业步的输入文件。例 如:编辑输入是一个作业步,它产生源程序文 件;编译也是一个作业步,它产生目标代码文 件。
一个查看内存情况的批处理程序exam.bat: @echo off mkdir test call exam2.bat test call exam3.bat test echo call ok! pause
2.5 系统调用
系统调用是操作系统提供给编程人员的唯一接 口。编程人员利用系统调用,在源程序一级动态 请求和释放系统资源,调用系统中已有的系统 功能来完成那些与机器硬件部分相关的工作以 及控制程序的执行速度等。
作业的概念一般用于早期批处理系统和大型机、 巨型机系统中。
2.2 一般用户的输入输出界面
2.2.2 作业组织
作业由程序、数据和作业说明书组成。 程序和数据完成用户要求的业务处理工作, 一个作业可以包含多个程序和多个数据集。 作业说明书体现了用户的控制意图,操作系 统根据作业说明书生成一个作业控制块 JCB, 并根据JCB的相关表格完成作业的任务。
2.2 一般用户的输入输出界面
3. 直接耦合方式
直接耦合方式把主机和外围机通过一个公用的大 容量外存直接耦合起来,从而省去了在脱机输 入中那种依靠人工干预来传递后援存储器的过 程。
4. SPOOLING系统 在SPOOLING系统中,多台外围设备通过通道 (或DMA器件)与主机(或外存)连接起来,作 业的输入输出过程由主机的操作系统控制。
2.4 Linux与Windows的命令控制界面
不同命令可以进行组合形成新命令:
Command1 & Command2 用来分隔一个命百度文库行 中的多个命令;
Command1 && Command2 Command1运行成功 时,才运行Command2;
Command1 || Command2 时,才运行Command2。 Command1运行失败
把目录中的所有文件备份到一个子目录中。
#!/bin/bash //bash,tcsh,ksh mkdir backup //创建一个子目录backup for file in *.* //循环建立当前目录下所有文件的备份 do cp $file backup/$file //cp:复制文件 echo $file copied //显示信息 if [ $? -ne 0] // -ne :比较操作符 then echo “copying $file error” // echo:显示文字 fi done
2.4 Linux与Windows的命令控制界面
2.4.1 Linux的命令控制界面
Linux按默认的方式启动登录后,进入图形 窗口界面。 在桌面上单击鼠标右键,从弹出的快捷菜单 中选择“在终端中打开”,可以进入字符命 令界面。 在桌面上依次单击“主程序”->“系统工 具”->“终端”也可以进入字符命令界面。
2.5 系统调用
系统调用的处理过程
编程人员指定了系统调用名和参数之后是怎样 得到系统服务的呢? 当用户使用系统调用时,产生一条相应的指令, 处理机在执行到该指令时发生相应的中断,并 发出有关信号给陷阱(中断)处理机构。陷阱 处理机构在收到了处理机发来的信号后,启动 相关的处理程序去完成该系统调用所要求的功 能。
第2章 操作系统用户界面
主要内容:
1、一般用户的输入输出界面
2、命令控制界面 3、系统调用
2.1 简介
用户界面是操作系统的重要组成部分,用户 界面负责用户和操作系统之间的交互。 用户通过用户界面向计算机系统提交服务请 求,计算机通过用户界面向用户提供服务。 操作系统为普通用户、管理员以及程序员提 供不同的用户界面:为普通用户和管理员提 供了操作命令,为程序员提供了系统调用。