操作系统——作业

2023-05-16


写在前头:
       这是小鱼上的网课整理来的笔记,希望可以帮助大家更好的理解操作系统这门课!
一、作业

       这一讲,我们来介绍作业的概念
       我们需要从两个方面去理解作业

       1️⃣用户

       我们可以先看看下面的图示的编译过程
在这里插入图片描述

       根据这个过程,我们可以了解到,从输入开始,到输出结束,用户要求计算机所作的有关该次业务的工作处理的全部工作成为一个作业

       2️⃣系统

       在系统的角度,我们可以将作业视为程序、数据和作业说明书构成的整体
       作业=程序+数据(作业体)+作业说明书(作业控制语言编写)
       其中,书写作业说明书的语言称为作业控制语言(JCL),使用户用于描述批处理作业处理过程控制意图的一种特殊程序

二、作业组织

       我们站在系统的角度,进一步作业
       前面我们说过,作业说明书体现了用户的控制意图,包括作业基本情况、作业控制、作业资源要求的描述
       ①作业的基本情况:用户名、作业名、编程语言、最大处理时间等
       ②作业控制描述:作业控制方式、作业步的操作顺序、作业执行出错处理
       ③作业资源要求描述:处理时间、优先级、内存空间、外设类型和数量

       作业的建立

       一个作业的全部程序和数据输入到外存且在系统中建立了相应的作业控制块。也就是说,作业的建立包括作业的输入和作业控制块的建立
       作业的输入是将作业的程序、数据和作业说明书从输入设备输入到外存,并形成有关初始信息
       我们在作业输入时,需要外部启动信号通知系统调用相应的输入管理程序,这也决定了作业的输入方式
       作业的输入方式:

       1️⃣联机输入方式:外围设备和主机直接连接的输入方式
       在这里插入图片描述

       缺点:单台设备和主机连接时,I/O与作业工作处理不能并行,降低CPU的效率

       2️⃣脱机输入方式:利用抵挡个人计算机作为外围处理机进行输入处理

       ①在个人机上,用户通过联机的方式将作业输入到后援存储器,然后将装有输入数据的后援存储器拿到主机的告诉外设上与主机连接
       ②解决了主机CPU浪费,以牺牲个人机为代价,灵活性差,需要人工干预介质传送
在这里插入图片描述

       3️⃣直接耦合方式:将主机和外围抵挡机通过一个公共的大容量外存直接耦合

       特点:
       ①保留了脱机方式快速的有点,克服了人工干预的缺点
       ②需要大容量公用存储器和多台抵挡机,成本高

       4️⃣SPOOLING系统:假脱机

       工作方式:
       系统把作业处理的全过程划分为相对独立的三个部分——输入流、处理流、输出流
       spooling-in/spooling-out进程:控制输入/输入,包括输入程序模块、输出程序模块、作业调度程序
在这里插入图片描述

       原理:
       ①作业执行前用慢速设备将作业预先输入到后援存储器(如磁盘、磁鼓, 称为输入井)中,称为预输入
       ②作业运行后,使用数据时,从输入井中取出
       ③作业执行不必直接启动外设输出数据,只需将这些数据写入输出井中
       ④作业全部运行完毕,再由外设输出全部数据和信息,称为缓输出
       可见,这一过程表明,实现了对作业输入、组织调度和输出的统一管理,使 外设在 CPU 直接控制下,与 CPU 并行工作。虽然主机与输入设备没有分离, 却具有了脱机的性质——假脱机。

       5️⃣网络输入方式
       当用户需要在计算机网络中某一台主机上输入的信息传 送到同一网络中的另一台主机上进行操作或执行时,即构成网络输入方式

三、作业控制块的建立

       ①作业名
       ②估计执行时间
       ③优先数(用于调度)
       ④作业说明书文件名
       ⑤程序类型(需调用的系统程序)
       ⑥资源要求(静态,或中间可以随作业步变化)
       ⑦作业状态(提交、后备、执行、完成)

四、操作系统为用户提供两类接口

       1️⃣程序级接口
       程序级接口是系统为用户在程序一级提供有关服务而设置的,由一组系统 调用命令组成
       特点:
       ①负责管理和控制运行的程序
       ②在这些程序与系统控制的资源和提供的服务间实现交互作用
       ③用汇编语言:在程序中直接用系统调用命令
       ④用高级语言:可在编程时使用过程调用语句
       例子:

void main(){
	int i;
	  if(fork()==0){
	  	for(i=1;i<1000;i++)
	  		print("This is child process\n");
	  		}
	  }

       其中的 fork()就是一个系统调用函数——程序级接口
       注意:程序级接口只能在高级语言或汇编语言中作为函数和过程被调用,而 不能像一个命令那样直接在系统提示符下输入

       2️⃣命令操作级接口

       用户在 DOS 或 UNIX 文字界面的系统提示符下输入命令,即使用了操作系统提供的命令级或者称操作级接口。因此,操作级接口为用户提供了各种命令
       用户可以将一些命令通过 JCL 编写作业控制程序提交给系统,系统执行过程中用户无法干预,这种方式可以视为“批处理”
       另一种更常见的方式是,用户通过命令与系统对话,控制程序执行和管理计算机系统(用户直接参与控制作业执行)。
       操作系统通过操作级接口提供的命令种类包括:
       ①环境设置:改变终端用户所在位置、执行路径等;
       ②执行权限管理:控制用户访问系统和操作文件的权限;
       ③系统管理:系统维护、开机关机、增加或减少终端用户、计时收费等;
       ④文件管理:管理和控制终端用户的文件;
       ⑤编辑、编译、链接装配和执行编辑命令;
       ⑥通信:主机<==> 远程终端、主机 <==>主机;
       ⑦源要求:用户向系统申请资源。

       操作级接口(命令接口)提供给用户直接在键盘终端上交互式地 使用,程序级接口提供给用户在编程时使用。

五、系统调用

        由操作系统实现提供的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。是应用程序同系统之间的接口。

       操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境来使应用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用(system call)的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序

       一般地,系统调用的功能如下

       (1) 设备管理:设备的读写和控制
       (2) 文件管理:文件读写和文件控制
       (3) 进程控制:创建、中止、暂停等控制
       (4) 进程通信:进程之间传递消息或信号
       (5) 存储管理:内存的申请和释放
       (6) 系统管理:设置和读取时间、读取用户和主机标识等

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

       (1) 相同点
       改变指令流程
       重复执行和公用
       改变指令流程后需要返回原处

       (2) 不同点
       ①运行在不同的系统状态
       一般过程调用,其调用程序和被调用程序都运行在相同状态;而系统调用, 调用程序在用户态,被调用程序运行在系统态
       ②通过软中断进入
       一般调用过程通过过程调用语句直接由调用过程转向被调用过程,而系统调用必须通过系统调用指令,由软中断(陷入指令)转向相应处理程序,CPU 由用户态转为系统态
       ③返回问题
       一般调用过程在被调用过程执行完毕后,直接返回调用过程;系统调用,在被调用过程执行完毕后,必须首先对系统中所有要求运行的进程进行优先级分析


       今天的学习笔记就分享到这里!!
       PS:小鱼学习网站是中国大学MOOC(慕课)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

操作系统——作业 的相关文章

  • window系统消失的c盘,实际占用与显示占用相差好多G

    问题 C盘一直显示的红色提醒 我c盘实际占用的空间只有33 1GB 而我的c盘总共大小是59 9GB 显示的剩余大小是1 35GB 也就是说我占用了58 11 和c盘的总文件大小相差了25GB 那么消失的25GB去了哪里 我百度过这个问题
  • texlive支持中文的简单方法

    1 确保tex文件的编码方式是UTF 8 2 在文档开始处添加一行命令即可 即 usepackage UTF8 ctex 如下所示 documentclass article usepackage UTF8 ctex begin artic
  • System.getProperty用法

    转自 http blog darkmi com 2011 03 16 1666 html System getProperty 用于获取当前的系统属性 比如java版本 操作系统名称 区域 用户名等 这些属性一般由jvm自动获取 不能手工设
  • unix环境高级编程——文件IO

    本期主题 unix环境高级编程 文件IO 文件IO 0 引言 1 文件描述符 2 IO编程中常用的API接口 1 open函数 2 close函数 3 read函数 4 write函数 5 lseek函数 3 函数sync fsync和fd
  • mapengpeng1999@163.com 操作系统4~处理机调度

    处理机调度 1 三级调度体系 1 处理机调度主要是对处理机运行时间进行分配 即 按照一定算法或策略 将处理机运行时间分配给各个并发进程 同时尽量提高处理机的使用效率 2 现代操作系统中 按调度所实现的功能分3种类型 高级调度 中级调度和低级
  • 虚拟内存的最大容量与实际容量区别

    虚拟内存的最大容量与实际容量区别 1 概念介绍 虚拟内存的最大容量是计算机的地址结构 CPU寻址范围决定的 虚拟内存的实际容量是内存与外存之和 CPU寻址范围 两者的最小值 2 例题介绍 某计算机的地址结构是64位 按字节编址 内存大小51
  • ps aux 和ps -aux和 ps -ef的选择

    Linux中的ps命令是Process Status的缩写 ps命令用来列出系统中当前运行的那些进程 ps命令列出的是当前那些进程的快照 就是执行ps命令的那个时刻的那些进程 如果想要动态的显示进程信息 就可以使用top命令 要对进程进行监
  • CF、SF、OF、ZF标志位

    没学汇编 这种题我真是做一道错一道 OF overflow flag 溢出标志位 溢出标志位 OF 1 表示带符号整数运算时结果发生溢出 对于无符号整数运算 OF没有意义 对于有符号数的溢出判断方式有 1 采用一位符号位 思想为 或 则为溢
  • nslookup命令详解

    nslookup命令用于查询DNS的记录 查看域名解析是否正常 在网络故障的时候用来诊断网络问题 nslookup的用法相对来说还是蛮简单的 主要是下面的几个用法 1 直接查询 这个可能大家用到最多 查询一个域名的A记录 nslookup
  • 深入ftrace kprobe原理解析

    Linux krpobe调试技术是内核开发者专门为了编译跟踪内核函数执行状态所涉及的一种轻量级内核调试技术 利用kprobe技术 内核开发人员可以在内核的绝大多数指定函数中动态插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程
  • Elasticsearch 日志

    下载并安装 Filebeat 首次使用 Filebeat 请参阅入门指南 复制代码片段 curl L O https artifacts elastic co downloads beats filebeat filebeat 7 2 0
  • Linux alien命令

    一 简介 alien是一个用于在各种不同的Linux包格式相互转换的工具 其最常见的用法是将 rpm转换成 deb 或者反过来 二 安装 http toutiao com a6188997768449360129 三 实例 http www
  • Linux常用命令记录

    文章目录 1 软件安装 安装软件 来自源服务器 安装 deb软件 来自本地 deb文件 修复依赖关系 卸载软件 2 文件 文件夹操作 删除文件夹 移动文件 文件重命名 3 程序查看 处理 进程查看 查看端口占用情况 强制终止程序 4 解压文
  • 图解五种磁盘调度算法, FCFS, SSTF, SCAN, C-SCAN, LOOK

    一 FCFS 调度 先来先服务 磁盘调度的最简单形式当然是先来先服务 FCFS 算法 虽然这种算法比较公平 但是它通常并不提供最快的服务 例如 考虑一个磁盘队列 其 I O 请求块的柱面的顺序如下 98 183 37 122 14 124
  • 《深入理解计算机系统》实验四Architecture Lab

    前言 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻请看 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻 我觉得这个文档对整个实验很有帮助 如果你的Y86 64环境还没安装好可以看
  • linux 使用systemctl 启动服务报错: Error: No space left on device

    By default Linux only allocates 8192 watches for inotify which is ridiculously low And when it runs out the error is als
  • java IO、NIO、AIO详解

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 IO流 同步 阻塞 二 NIO 同步 非阻塞 三 NIO2 异步 非阻塞 正文 回到顶部 概述 在我们学习Java的IO流之前 我们都要了解几个关键词 同步与异步 sy
  • 使用ShellJS提升你的开发效率(一)

    Shelljs Unix shell commands for Node js Shelljs是Node js下的脚本语言解析器 具有丰富且强大的底层操作 Windows Linux OS X 权限 Shelljs本质就是基于node的一层
  • 《OSPF和IS-IS详解》一1.7 独立且平等

    本节书摘来自异步社区 OSPF和IS IS详解 一书中的第1章 第1 7节 作者 美 Jeff Doyle 更多章节内容可以访问云栖社区 异步社区 公众号查看 1 7 独立且平等 OSPF和IS IS详解与TCP IP相比 OSI协议对各国
  • I/O设备模型

    I O设备模型 绝大部分的嵌入式系统都包括一些I O Input Outut 输入 输出 设备 例如仪器上的数据显示屏 工业设备上的串口通信 数据采集设备上用于保存数据的Flash或SD卡 以及网络设备的以太网接口等 I O设备模型框架 R

随机推荐