文章目录
- 一、概述
- 1.1 用户接口
- 1.2 程序接口(API)
- 二、作业控制级接口
- 2.1 脱机与联机用户接口
- 2.2 作业和作业类型
- 2.3 脱机用户接口
- 2.4 联机用户接口
- 三、Shell 命令语言
- 3.1 Shell 简介
- 3.2 Shell 命令
- 3.3 Shell 脚本
- 四、程序级接口
- 4.1 用户态与核心态
- 4.2 特权指令与访管指令
- 五、系统调用
- 5.1 系统调用的概念和类型
- 5.2 系统调用与一般过程调用的区别
- 5.3 系统调用的分类
一、概述
- 操作系统充当计算机与用户之间的接口,提供两类接口:用户接口和程序接口。
1.1 用户接口
- 联机用户接口:字符显示式和图形化联机用户接口。
- 脱机用户接口:通过作业控制卡或作业说明书控制作业。
1.2 程序接口(API)
系统调用:程序通过系统调用来请求操作系统服务。
二、作业控制级接口
2.1 脱机与联机用户接口
- 脱机用户接口:用户通过作业控制卡或作业说明书控制作业。
- 联机用户接口:用户通过终端命令与作业直接交互。
2.2 作业和作业类型
- 作业:用户请求计算机系统完成的一系列工作的总和。
- 作业类型:脱机作业(批处理作业)和联机作业(交互式作业)。
2.3 脱机用户接口
- 作业控制语言(JCL):用户定义作业并描述作业控制流程。
2.4 联机用户接口
- 命令行方式:用户通过终端输入命令控制作业。
- 批命令方式:用户通过批命令文件执行一系列命令。
- 图形用户接口(GUI):使用窗口、图标、菜单和鼠标操作。
三、Shell 命令语言
3.1 Shell 简介
- Shell:Unix/Linux系统中的命令式用户接口。
3.2 Shell 命令
- 内部命令:构建在Shell内部,如cd、echo。
- 外部命令:独立的可执行应用程序,如ls、rm。
3.3 Shell 脚本
脚本执行:通过Shell脚本组合命令,提高工作效率。
#!/bin/bash
# 打印 Hello World
echo "Hello World!"
四、程序级接口
4.1 用户态与核心态
- 用户态:用户程序执行状态。 核心态:系统程序执行状态。
4.2 特权指令与访管指令
- 特权指令:只能在核心态下使用。 访管指令:实现从用户态到核心态的转变。
五、系统调用
5.1 系统调用的概念和类型
- 系统调用:程序中调用操作系统提供的子功能。
5.2 系统调用与一般过程调用的区别
- 运行状态:系统调用涉及状态转换。
- 返回问题:系统调用可能影响进程调度。
5.3 系统调用的分类
-
进程控制:创建和终止进程。
-
文件操作:文件的创建、读写、关闭。
-
进程通信:进程间的消息传递。
-
设备管理:设备的请求和释放。
-
信息维护:获取系统信息。
代码示例:(C语言)
#include <unistd.h>
#include <sys/types.h>int main() {pid_t pid = fork(); // 创建子进程if (pid == -1) {// 错误处理} else if (pid == 0) {// 子进程} else {// 父进程waitpid(pid, NULL, 0); // 等待子进程结束}return 0;
}