《计算机操作系统》(第4版)第9章 操作系统接口 复习笔记

news2024/9/23 16:13:07

第9章 操作系统接口

一、用户接口

1. 字符显示式联机用户接口

(1)命令行方式

该方式是以行为单位,输入和显示不同的命令。每行长度一般不超过256个字符,一般情况下,以回车符作 为一个命令的结束标记。通常,命令的执行采用的是间断式的串行执行方式,即后一个命令的输入一般需等到前 一个命令执行结束。

简单命令的一般形式为:

Command arg1 arg2...argn

其中Command 是命令名,又称命令动词,其余为该命令所带的执行参数,有些命令可以没有参数。

(2)批命令方式

操作系统都支持一种称为批命令的特别命令方式,允许用户预先把一系列命令组织在一种称为批命令文件的 文件中,一次建立,多次执行。使用这种方式可减少用户输入命令的次数,既节省了时间,减少了出错概率,又 方便了用户。通常批命令文件都有特殊的文件扩展名,如MS-DOS 系统的.BAT 文件。

2. 图形化联机用户接口

字符显示式用户接口要牢记各种命令的动词和参数,必须严格按规定的格式输入命令,而且不同操作系统所 提供的命令语言的词法、语法、语义及表达形式是不一样的,这样既不方便又花费时间。于是,图形化用户接口 GUI(Graphics User Interface)便应运而生。

3. 联机命令的类型

(1)系统访问类

(2)文件操作命令

①显示文件命令type。

②拷贝文件命令 copy。

③文件比较命令 comp。

④重新命名命令Rename

⑤删除文件命令erase。

(3)目录操作命令

①建立子目录命令mkdir

②显示目录命令dir。

③删除子目录命令rmdir。

④显示目录结构命令tree。

⑤改变当前目录命令chdir。

(4)其他命令

①输入输出重定向命令。

②管道连接。

③过滤命令。

④批命令。

二、Shell 命令语言

1. 简单命令简介

(1)简单命令的格式

简单命令的格式比较自由,包括命令名字符的个数及用于分隔命令名、选项、各参数间的空格数等,都是任 意的。一条命令可有多个选项,用于改变命令执行动作的类型。命令的格式如下:

$Command-option argument list

(2)简单命令的分类

①根据创建者分类

a.  系统提供的标准命令。 

b. 用户自定义的命令。

②根据命令是否包含在 Shell内部分类

a.   内部命令。

b.  外部命令。

(3)Shell   的种类

①Bourne Shell

B Shell  C Shell要小和简单,执行效率却比C Shell高,但交互性方面相对较差。

②C Shell

C Shell不仅和B Shell提示符兼容,而且还提供比B Shell更多的提示符参数。

③Kom Shell

Kom Shell集合了C Shell B  Shell的优点,并且和B Shell完全兼容。

2. 简单命令的类型

(1)进入与退出系统

 进入系统。

②退出系统。

(2)文件操作命令

①显示文件内容命令cat。

 复制文件副本的命令cp。

③对已有文件改名的命令mv。

④撤消文件的命令rm

⑤确定文件类型的命令file

(3)目录操作命令

①建立目录的命令mkdtr (简称md)。

②撤消目录的命令rmdir (简称rd)。

③改变工作目录的命令cd。

(4)系统询问命令

①访问当前日期和时间命令date。

②询问系统当前用户的命令who。

③显示当前目录路径名的命令pwd

3. 重定向与管道命令

(1)重定向命令

Shell向用户提供了一种用于改变输入、输出设备的手段(例如输出到指定文件,而非屏幕),此即标准输入 与标准输出的重新定向。用重定向符“<”和“>”分别表示输入转向与输出转向。

(2)管道命令

进一步把重定向思想加以扩充,用符号“|”来连接两条命令,使其前一条命令的输出作为后一条命令的输  

4. 通信命令

(1)信箱通信命令mail

信箱通信是作为在UNIX 的各用户之间进行非交互式通信的工具。

(2)对话通信命令write

用这条命令可以使用户与当前在系统中的其他用户直接进行联机通信。由于UNIX 系统允许一个用户同时在 几个终端上注册,故在用此命令前,要用who 命令去查看目标用户当前是否联机,或确定接收者所使用的终端 名。

(3)允许或拒绝接收消息的mesg 命令

5. 后台命令

有些命令需要执行很长的时间,UNIX 系统提供了一种机制,用户可以在这种命令后面再加上“&”号,以 告诉Shell 将该命令放在后台执行,以便用户能在前台继续键入其他命令,完成其他工作。

三、联机命令接口的实现

1. 键盘终端处理程序

(1)字符接收功能

①面向字符方式

驱动程序只接收从终端打入的字符,并且不加修改地将它传送给用户程序。这通常是一串未加工ASCII 码。

②面向行方式

终端处理程序将所接收的字符暂存在行缓冲中,并可对行内字符进行编辑。仅在收到行结束符后,才将一行 正确的信息送命令解释程序。

(2)字符缓冲功能

①专用缓冲方式

系统为每个终端设置一个缓冲区,暂存用户键入的一批字符。这种方式较适合于单用户微机或终端很少的多 用户机。如图9-1 (a)   所示。

②公用缓冲方式

利用公用缓冲池方式可有效地提高缓冲的利用率,如图9-1 (b)   所示。

(3)回送显示

回送显示(回显)是指每当用户从键盘输入一个字符后,终端处理程序便将该字符送往屏幕显示。

(4)屏幕编辑

①删除字符键。

②删除一行键。

③插入键。

④移动光标键。

⑤屏幕上卷或下移键。

(5)特殊字符处理

①中断字符。

②停止上卷字符。

③恢复上卷字符。

2.MS-DOS   解释程序

(1)命令解释程序的作用

命令解释程序的主要作用是在屏幕上给出提示符,请用户键入命令,然后读入该命令,识别命令,再转到相 应命令处理程序的入口地址,把控制权交给该处理程序去执行,并将处理结果送屏幕上显示。若用户键入的命令 有错,而命令解释程序未能予以识别,或在执行中间出现问题时,则应显示出某一出错信息。

(2)命令解释程序的组成

①常驻部分。

 初始化部分。

③暂存部分。

(3)命令解释程序的工作流程

命令解释程序的工作流程如图9-2所示。

图9-2 COMMAND.COM的工作流程

3.Shell   解释程序

(1)Shell   命令的特点

①一条命令行中含有多个命令。

②具有不同的分隔符。

(2)二叉树结构的命令行树

①命令表型结点

在执行时,对于“;”型结点,先递归地执行其左子树,待其左子数执行完后,再执行其右子树。

②管道文件型结点

Shell 命令解释程序遇到管道算符“I”  时,先为之建立一个管道文件型结点。再将分隔符左面部分构成该 结点的左子树,右面部分构成右子树。

③简单命令型结点

对于简单命令,无需为它建立二叉树结构的命令行树。

(3)Linux   命令解释程序的工作流程

①读取用户由键盘输入的命令行。

②对命令进行分析。

③建立相应的子进程。

④等待子进程完成。

 对于“&”型结点,在启动其左子结点执行后,不需要等待,执行其右子树。

四、系统调用的概念和类型

1. 系统调用的基本概念

(1)系统态和用户态

①特权指令

特权指令是指在系统态运行的指令。

②非特权指令

非特权指令是在用户态运行的指令。

(2)系统调用

系统调用在本质上是应用程序请求OS 内核完成某功能时的一种过程调用,它与一般的过程调用有下述几方 面的差别:

①运行在不同的系统状态。

②状态的转换。

③返回问题。

④嵌套调用。

(3)中断机制

系统调用是通过中断机制实现的,并且一个操作系统的所有系统调用,都通过同一个中断入口来实现。

2. 系统调用的类型

(1)进程控制类系统调用

①创建和终止进程的系统调用。

②获得和设置进程属性的系统调用。

③等待某事件出现的系统调用。

(2)文件操纵类系统调用

①创建和删除文件。

②打开和关闭文件的系统调用。

③读和写文件的系统调用。

(3)进程通信类系统调用

①消息传递方式。

②共享存储区方式。

3.POSIX   标准

UNIX/Linux 系统程序、库函数、系统调用的分层关系如图9-3所示。

图9-3 UNIX/Linux 系统程序、库函数、系统调用的分层关系

五、UNIX 系统调用

1. 进程控制

(1)进程的创建和终止

①创建进程 (fork)。

②终止进程 (exit)。

(2)改变进程映像和等待

①执行一个文件(exec)。

②等待子进程结束(wait)。

(3)其他进程调用

①获得进程ID。

②获得用户ID。

③进程暂停 (pause)。

2.文件操纵

(1)文件的创建和删除

①创建文件 (creat)。

②删除文件。

UNIX 系统中没有专门的删除文件的系统调用,故无人可对文件进行删除,只有当文件的确已无人需要时 才删除它。

(2)文件的打开和关闭

①打开文件(open)。

②关闭文件 (close)。

(3)文件的读和写

①文件的读。

②文件的写。

③读和写的前提。

仅当用户利用open 打开指定文件后,方可调用read  write 对文件执行读或写操作。

(4)建立与文件的连接和去连接

①连接(link)。

②去连接(unlink)。

3. 进程通信和信息保护

(1)进程通信

为了实现进程间的通信,在UNIX 系统中提供了一个用于进程间通信的软件包,简称 IPC。它由消息机制、 共享存储器机制和信号量机制三部分组成。

(2)信息维护

①设置和获得时间。

②获得进程和子进程时间(times)。

③设置文件访问和修改时间(utime)。

④获得当前UNIX 系统的名称 (uname)

六、系统调用的实现

1. 系统调用的实现方法

(1)系统调用号和参数的设置

①系统调用号。

②参数的设置

a. 陷入指令自带方式。

b. 直接将参数送入相应的寄存器中。

c.  参数表方式。

(2)系统调用的处理步骤

①将处理机状态由用户态转为系统态,然后保存中断进程的相关信息;

②分析系统调用类型,转入相应的系统调用处理子程序;

 在系统调用处理子程序执行完后,应恢复被中断的或设置新进程的CPU 现场,然后返回被中断进程或新进程,继续往下执行。

2.UNIX   系统调用的实现

(1)CPU   环境保护。

(2)AP   FP 指针。

(3)确定系统调用号。

(4)参数传送。

(5)利用系统调用定义表转入相应的处理程序。

(6)系统调用返回前的公共处理。

3.Linux   系统调用

(1)系统调用组成

①内核函数。

②接口函数。

(2)工作流程

①取系统调用号,检验合法性;

②执行int 80h产生中断;

③进行地址空间的转换,以及堆栈的切换,进入内核态;

④进行中断处理,根据系统调用号定位内核函数地址;

⑤根据通用寄存器内容,从用户栈中取入口参数;

⑥核心函数执行,把结果返回应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抖音收回“作品代发布”能力?短视频矩阵工具未来何去何从?

相信不少朋友都看到过抖音开放平台的公示&#xff0c;从2024年7月20日开始&#xff0c;官方将要收回“代替用户发布内容到抖音”能力&#xff0c;如果你还在用原有抖音开放平台接口的矩阵系统&#xff0c;那可要注意及时调整了。 那未来的短视频矩阵工具还能用吗&#xff1f;矩…

数学建模~~描述性分析---RFM用户分层模型聚类

目录 1.RFM用户分层模型介绍 2.获取数据&#xff0c;标准化处理 2.1获取数据 2.2时间类型转换 2.3计算时间间隔 3.对于R,F,M的描述性分析 3.1代码分析 3.2分析结果说明 3.3对于F的描述性分析 3.4对于M的描述性分析 4.数据分箱--等级划分 4.1分箱概念 4.3分箱特点 …

区间合并+并查集

前言&#xff1a;写完这个题目的时候没意识到这个和区间合并是等价的&#xff0c;现在看起来确实是一个区间合并的题目 &#xff08;注意这个多米诺骨牌是可以连续推倒的&#xff09; #include<bits/stdc.h> using namespace std;#define int long long int t; int n,m; …

转发和重定向的区别

转发和重定向的区别 转发是一次请求。因此浏览器地址栏上的地址不会发生变化。 重定向是两次请求。因此浏览器地址栏上的地址会发生变化 转发的代码实现&#xff1a;request.getRequestDispatcher(“/index”).forward(request,response); 重定向的代码实现&#xff1a;resp…

学习 Java 和数据库:从前端到全栈的进阶之路

作为一名前端开发者&#xff0c;掌握 Java 和数据库知识不仅能提升你的技术水平&#xff0c;还能让你在全栈开发的道路上走得更远&#xff08;主要是涨薪&#xff09;。本文将为你提供一个详尽的学习大纲&#xff0c;帮助你从零开始学习 Java 和数据库&#xff0c;并解释为什么…

Windows离线安装openSSH服务实现远程访问

1、问题概述? 在企业的实际的开发环境中,我们的计算机可能是没有网络的,这种时候我们安装openSSH就需要通过离线的方式安装。 1.1、下载openSSH离线包 离线下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases msi格式可以在windows中直接安装 下载之后直接…

机器人拾取系统关节机械臂通过NY-PN-EIPZ进行命令控制

关节机械臂是一种精密的机器&#xff0c;旨在模拟人类手臂在订单拣选操作中的运动。这些多功能机器人由多个关节组成&#xff0c;通常有 4 到 7 个轴&#xff0c;使它们能够高度自由地移动&#xff0c;并在仓库内以各种方向和位置接触物品。 制造工厂智能仓库系统中的关节机械臂…

centos7.9系统安装cloudpods(一)

1. 简介&#xff1a; Cloudpods 是一款简单、可靠的企业IaaS资源管理软件。帮助未云化企业全面云化IDC物理资源&#xff0c;提升企业IT管理效率。 Cloudpods 帮助客户在一个地方管理所有云计算资源。统一管理异构IT基础设施资源&#xff0c;极大简化多云架构复杂度和难度&…

Datawhale X 李宏毅苹果书 AI夏令营(深度学习进阶)taks1

深度学习的基础 常见的临界点的种类为局部最小值和鞍点 1.局部最小值 对于任何目标函数f(x)&#xff0c;如果在x处对应的f(x)值小于在x附近任意其他点的f(x)值&#xff0c;那么f(x)可能是局部最小值。如果f(x)在x处的值是整个域中目标函数的最小值&#xff0c;那么f(x)是全局…

如何将LaTeX数学公式嵌入到PowerPoint中

如何将LaTeX数学公式嵌入到PowerPoint中 简介 在学术演示或技术报告中&#xff0c;清晰且专业地展示数学公式是至关重要的。PowerPoint虽然提供了一些基本的公式编辑功能&#xff0c;但如果你需要更复杂或格式严格的公式&#xff0c;使用LaTeX生成公式并嵌入到PPT中是一个极佳…

huggingface下载model

0x00 背景 服务器的普通用户&#xff0c;不具有root权限服务器网络不稳定 0x01 解决办法 使用镜像【HF-Mirror】提供的工具hfd 方法三&#xff1a;使用 hfd hfd 是本站开发的 huggingface 专用下载工具&#xff0c;基于成熟工具 gitaria2&#xff0c;可以做到稳定下载不断…

安卓中 onClick(View v) 方法在主线程还是子线程运行

在Android开发中&#xff0c;onClick(View v) 方法通常是在主线程&#xff08;也称为UI线程&#xff09;中运行的。这个方法是在用户与界面元素&#xff08;如按钮&#xff09;进行交互时&#xff0c;由系统框架自动调用的。由于Android的UI操作必须是线程安全的&#xff0c;并…

MySQL 数据库深度解析:安装、语法与高级查询实战

一、引言 在现代软件开发和数据管理领域中&#xff0c;MySQL 数据库凭借其高效性、稳定性、开源性以及广泛的适用性&#xff0c;成为了众多开发者和企业的首选。无论是小型项目还是大型企业级应用&#xff0c;MySQL 都能提供可靠的数据存储和管理解决方案。本文将深入探讨 MyS…

QT Creator UI中文输入跳出英文

笔者用的是QQ拼音输入&#xff0c;发现只要在UI中加入了QTableWidget&#xff0c;输入多几次中文&#xff0c;就会跳入英文。 后面改用搜狗拼音稍微好一些&#xff0c;但是偶尔还是插入了空格。

JavaScript静态方法

介绍 在 JavaScript 中&#xff0c;static 方法是与类本身关联的方法&#xff0c;而不是与类的实例关联。也就是说&#xff0c;static 方法可以通过类直接调用&#xff0c;而不需要创建类的实例。 class PersonCl {constructor(fullName, birthYear) {this.fullName fullNam…

2024湖南自考报考详细流程建议收藏!!

&#x1f4e2;湖南自考报考时间 &#x1f449;新考生入籍时间&#xff1a;8月19日9:00 至 8月28日 12:00 &#x1f449;考生理论课程报考时间&#xff1a;8 月 27日 9:00 至 9月4 日 17:00 &#x1f4e2;湖南自考报考流程 &#x1f449;登录“湖南省高等教育自学考试综合管理平…

《机器学习》 AUC性能测试、回归树、随机森林

目录 一、AUC性能测试 1、什么是AUC 2、什么是AUC-ROC曲线 1&#xff09;TPR、FPR • TPR&#xff1a;真实值为1&#xff0c;预测值为1的概率 • FPR&#xff1a;真实值为0&#xff0c;预测值为1的概率 2&#xff09;如何绘制图示曲线 3、最理想的AUC-ROC曲线图 4、案…

C语言占领游戏

目录 开头程序程序的流程图程序的效果结尾 开头 大家好&#xff0c;我叫这是我58。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <Windows.h> void pri…

C语言 自定义类型-结构体 #结构体类型的声明 #结构体的自引用 #结构体内存对齐 #结构体位段的实现

文章目录 前言 一、结构体类型的声明 1、结构体的基础知识 2、结构体的声明 3、特殊声明 二、结构体的自引用 三、结构体变量的定义和初始化 1、结构体的定义分为两类 2、结构体的初始化 四、结构体内存对齐 1、结构体在内存中是怎样存放的呢&#xff1f; 2、结构体的对齐规则&…

数字卫星:「超实时仿真」实现处理器性能5倍提升

01.数字孪生in卫星 卫星及其附属系统在航天领域具有十分重要的意义。近年来&#xff0c;卫星产业发展迅猛&#xff0c;数字化、网络化、智能化、服务化转型升级需求日益增长。为进一步完善星务软件验证工作、获取在轨卫星模拟数据&#xff0c;“数字卫星”成为当下主流趋势。 …