notebooks
  • notebooks
  • _planning
    • 2022 OKR
    • basketball
    • swimming
  • communication
    • Dubbo
    • Kafka
    • Messaging
    • RPC
    • Thrift
  • computation
    • map-reduce
  • cs-basic-knowledge
    • computer-architecture
    • data-structure-and-algorithms
    • networks
    • os
  • devops
    • Docker
    • Linux
    • Prometheus
    • operations
    • security
    • trouble-shooting
  • distributed-knowledge
    • Zookeeper_CMD
    • distributed-system
  • game-engine
    • Unity
  • others
    • appium使用
  • protocols
    • http(s)协议
    • 官方链接
    • sip
  • storage
    • Elasticsearch
    • GuavaCache
    • MySQL
    • MySQL_CMD
    • NoSQL
    • Redis
    • Redis_CMD
  • system-design
    • system-design
  • tools
    • Git
    • IDEA
    • Mac
    • VScode
    • Vim
  • _working
    • doc-template
      • backend-design-review
      • correction-of-error
      • service-review
    • process
      • domain-backup
      • oncall
  • blogs
    • history
      • 8088/8086微处理器
      • 8088/8086指令系统
      • CSS-DOM
      • CSS定位
      • CSS工作原理
      • CSS控制背景
      • CSS浮动布局
      • CSS盒模型
      • Chrome开发者工具使用方法
      • DOM
      • Django Model模型层学习
      • Django-REST-framework Serializers学习
      • Django-REST-framework Views和ViewSets学习
      • Django View视图层学习
      • Gvim下Emmet安装及使用教程
      • HTTP协议简介
      • HashMap原理初探
      • JavaScript简史
      • JavaScript语法
      • Java内存模型和GC机制
      • Java基础——Lambda学习
      • Java基础——方法引用
      • Java基础——枚举类型
      • Java类加载机制
      • KMP算法
      • Kafka学习
      • Linux下用命令行编译Java程序
      • MathJax简介和基本用法
      • Python实现常见数据结构
      • Python装饰器总结
      • TCP协议的三次握手和四次挥手
      • Thrift学习
      • asyncio学习
      • markdown的常用语法
      • 修改hosts文件实现翻墙
      • 充实文档的内容
      • 关系数据库
      • 关系数据库标准语言SQL(一)
      • 关系数据库标准语言SQL(二)
      • 关系数据理论
      • 关系查询处理和查询优化
      • 内联元素和块级元素
      • 剑指offer算法题练习
      • 动态创建标记
      • 图形化用户界面
      • 在Eclipse中使用Maven构建Java Web项目
      • 增加微博秀遇到的一些问题
      • 处理机调度
      • 如何用github和hexo搭建个人博客
      • 存储管理
      • 存储系统的层次结构
      • 学习模仿lionhit网站首页的过程总结
      • 实用的GitHub小技巧
      • 并发控制
      • 循环与分支程序设计
      • 指令系统的设计
      • 指令级并行及其开发——硬件方法
      • 搭建自己的VPN服务器
      • 操作系统用户界面
      • 数据库安全性
      • 数据库完整性
      • 数据库恢复技术
      • 数据库绪论
      • 数据库编程
      • 数据库设计
      • 数据抽象
      • 文件系统
      • 文法和语言
      • 最佳实践
      • 案例研究:JavaScript图片库
      • 案例研究:图片库改进版
      • 汇编语言程序格式
      • 汇编语言程序设计基础知识
      • 流水线技术
      • 深度优先搜索和广度优先搜索
      • 牛客网——网易2017秋招编程题集合
      • 用JavaScript实现动画效果
      • 第一篇博客
      • 经典排序算法总结(Java实现)
      • 经典查找算法总结(Java实现)
      • 综合示例
      • 编译原理引论
      • 背包、队列和栈
      • 虚拟机安装Linux系统及常用软件
      • 计算机操作系统绪论
      • 计算机系统结构的基础知识
      • 设备管理
      • 设计模式之代理模式
      • 设计模式之单例模式
      • 设计模式之工厂模式
      • 设计模式之策略模式
      • 设计模式之观察者模式
      • 词法分析
      • 进程管理
      • 闭包
      • 阻止Google自动跳转到香港服务器的方法
      • 项目部署过程
  • programming-language
    • C#
      • C#
    • C&C++
      • C
    • C&C++
      • C++
    • Java
      • GoogleGuice
    • Java
      • JVM
    • Java
      • Java
    • Java
      • Maven
    • Java
      • Mybatis
    • Java
      • Spring知识
    • Java
      • SpringBoot
    • Java
      • Tomcat
    • Python
      • Python
    • Shell
      • Shell
  • wheels
    • dcc
      • 产品调研
      • 方案设计
    • red-envelope
      • 方案设计
    • short-url
      • 短链接服务
    • sso
      • 方案设计
Powered by GitBook
On this page
  • 作业的基本概念
  • 作业的定义
  • 作业的组成
  • 作业的建立
  • 作业的建立过程
  • 作业控制块JCB (Job Control Block)
  • 作业输入输出方式
  • 作业控制方式
  • 用户接口
  • 用户接口的定义
  • 操作系统提供的用户接口
  • 系统调用
  1. blogs
  2. history

操作系统用户界面

Previous搭建自己的VPN服务器Next数据库安全性

Last updated 3 years ago

用户界面是操作系统的重要组成部分。用户界面负责用户和操作系统之间的交互,即用户通过用户界面向计算机系统提交服务需求,计算机通过用户界面向用户提供用户所需要的服务。

作业的基本概念

作业的定义

作业:是要求计算机系统按指定步骤对应用程序进行处理并得到计算结果的加工工作。

用户的观点:在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作。

作业步:对应用程序进行处理的步骤。

  • 作业由不同的顺序相连的作业步组成

  • 作业步是在一个作业的处理过程中,计算机所做的相对独立的工作

作业的组成

作业由程序、数据和作业说明书三部分组成。(系统的观点)

  • 程序和数据:完成用户所要求的业务处理工作。

    • 每个作业至少包含一个程序

  • 作业说明书:体现用户的控制意图。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。

    • 作业基本情况:用户名、作业名、编程语言、最大处理时间等

    • 作业控制描述:作业控制方式、作业步的操作顺序、作业执行出错处理

    • 作业资源要求描述:处理时间、优先级、内存空间、外设类型和数量等

作业的建立

作业的建立过程

(1)作业的输入 指将作业的程序、数据和作业说明书从输入设备输入到外存。 (2)作业控制块的建立 作业控制块是作业说明书在系统中生成的一张表格。操作系统通过该表了解到作业的要求,并分配资源和控制作业中程序和数据的编译、链接、装入和执行等。

当一个作业的全部程序和数据输入到外存并且在系统中建立了相应的作业控制块之后,一个作业就建立了。

作业控制块JCB (Job Control Block)

  • 作业名

  • 估计执行时间

  • 优先数(用于调度)

  • 作业说明书文件名

  • 程序语言类型(表明需调用的系统程序)

  • 资源要求:如内存、外设要求(静态/动态申请)

  • 作业状态:提交/后备/执行/就绪/等待/完成

  • 作业在外存中的存储地址(以便迅速调入内存)

作业控制块和作业之间是一一对应关系

作业输入输出方式

  • 联机:通过交互会话来输入输出作业。由主机直接控制I/O ;作业处理与I/O不能并行(CPU利用率低)。

  • 脱机(又称为预输入方式):通过后援存储器(磁带/磁盘)在外围处理机与主机之间交换作业。提高了主机的利用率,但需人工干预,如移动存储介质和连接后援存储器等。

  • 直接耦合:通过大容量的公用存储器在外围处理机与主机之间交换作业;既提高了主机的利用率,又无需人工干预。成本较高,一般只适用于大型机/巨型机系统

  • SPOOLING (Simultaneously Peripheral Operation On Line,外围设备同时联机操作 ):多台外围设备通过通道/DMA器件和主机与外存连接起来。作业的I/O过程由主机中的操作系统控制。

  • 网络联机:用户把在计算机网络中某一台主机上输入的信息传送到网中另一台主机上进行操作或执行。

SPOOLING系统工作原理

  1. 在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置读入缓冲区。

  2. 当缓冲区满时,由写过程将信息从缓冲区写到外存输入井中。

  3. 读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存,并调用中断处理程序结束该次输入。

作业控制方式

  • 脱机作业控制:用户输入作业说明书,整个作业的运行由系统控制。

  • 联机作业控制:通过人-机会话方式控制作业运行。用户登录(控制台登录或远程登录),由系统自动执行一些命令脚本后,并进入shell(字符或GUI界面),接受用户的命令和操作,最后退出系统。

需要说明的是,作业的概念一般用于早期批处理系统和现在的大型机、巨型机系统中,对于广为流行的微机和工作站系统,一般不太使用作业的概念。

用户接口

用户接口的定义

用户接口(界面):是操作系统提供给用户与计算机打交道的外部机制。

  • 用户通过用户接口向计算机提交服务请求

  • 计算机通过用户接口向用户提供所需要的服务

计算机系统的三类用户

  • 普通用户:只是使用计算机的应用服务

  • 管理员用户:负责计算机系统的正常与安全运行

  • 程序员用户:编程、开发新的应用程序

针对不同的用户,操作系统提供不同的用户接口

操作系统提供的用户接口

  1. 命令控制接口(操作接口) 组织工作流程、控制程序的运行。 用户利用这些操作命令来组织和控制作业的执行或管理计算机系统 两种界面形式:命令界面,图形界面 使用操作命令进行作业控制的主要方式有两种。

  • 脱机方式:用户将作业的执行顺序和出错处理方法一并以作业控制说明书的方式或命令文件方式提交给系统,由系统按照作业说明书或命令文件中所规定的顺序控制作业执行。

  • 联机控制:用户使用系统提供的操作命令和系统会话,交互地控制程序执行和管理计算机系统。

  1. 系统功能调用(程序接口) 用户程序在其运行过程中,使用系统功能调用来请求操作系统的服务。

系统调用

系统调用是操作系统提供给软件开发人员的唯一接口:编程人员利用系统调用,在源程序一级调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行等。系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。

系统调用及系统调用指令

系统调用:用户程序中对OS所提供的一些子功能的调用称为系统调用。(编程人员利用系统调用来请求OS提供服务,它是OS提供给编程人员的唯一接口)

处理机的执行状态

  • 用户态:处理机在用户程序中执行称为用户态

  • 系统态:处理机在系统程序中执行称为系统态

在系统发生访管中断(陷阱中断)时,为了不让用户程序直接访问系统程序,反映处理机硬件状态的处理机状态字PSW中的相应位要从用户执行模式转换为系统执行模式。这一转换在发生访管中断时由硬件自动实现。

系统调用指令(或称访管指令、陷阱指令):指由于系统调用引起处理机中断的指令。

系统调用的实现过程

陷阱(trap)处理机构:是控制系统调用服务的中断处理机构,以保证系统调用时操作系统程序不被用户程序破坏。

  • 陷阱指令中必须包括对应系统调用的功能号(在操作系统中,每个系统调用都对应一个事先给定的功能号,例如0,1,2,3等 )

  • 陷阱处理程序把陷阱指令中所包含的功能号与入口地址表中的有关项对应起来,从而由系统调用功能号驱动有关系统子程序执行。(入口地址表中,每个系统子程序名都与相应的入口地址对应起来)

系统调用的处理过程

  • 在进入系统调用处理之前,陷阱处理机构需保存处理机现场

  • 在系统调用处理结束之后,陷阱处理机构还要恢复处理机现场

  • 在操作系统中,处理机的现场一般被保护在特定的内存区或寄存器中。

参数传递问题:

  • 不同的系统调用需要传递给系统子程序以不同的参数

  • 系统调用的执行结果也要以参数形式返回给用户程序

参数传递的常用方法(用户程序和系统程序之间):

  • 由陷阱指令自带参数(陷阱指令只能自带极有限的几个参数进入系统内部)

  • 使用有关通用寄存器来传递参数(无法传递较多的参数,且这些寄存器应是系统程序和用户程序都能访问的)

  • 在内存中开辟专用堆栈区来传递参数(在系统调用较多的系统中)

系统调用功能

系统调用的功能

  • 设备管理:请求和释放设备,启动设备操作等

  • 文件管理:创建、删除文件,读、写文件操作,移动文件指针等

  • 进程控制:创建、执行、撤销进程等控制

  • 进程通信:进程间传递消息或信号的系统调用

  • 存储管理:内存块的申请、释放,获取作业占用内存块的首址、大小等

  • 系统管理:设置和读取时间、读取用户和主机标识等

系统调用与普通过程调用的异同点

相同点

  • 改变指令流程

  • 重复执行和公用

  • 改变指令流程后需要返回原处

不同点

  • 系统调用是动态调用,而CALL调用方式是静态调用

  • 执行状态不同

  • 进入方式不同

  • 与进程调度的关系不同

  • 嵌套或递归调用

《计算机操作系统教程(第3版)》张尧学 史美林 张高 著

系统为该作业建立作业控制块JCB,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存。

操作系统用户界面2
操作系统用户界面1