1.程序的启动和结束
1.1程序的启动
程序开始执行时必须满足:
- 程序已装入内存
- 程序计数器PC中已置入该程序在内存的入口地址
启动方式:
- 命令方式
- 批处理方式(.BAT文件)
- EXEC方式:在一个程序中运行另一个程序
- 由硬件装入程序和启动程序执行:如BIOS
- 自启程序:包括引导程序和程序主体
1.2程序的结束
- 正常结束:程序按自身的逻辑有效地完成预定功能后结束,返回父程序并回送结果信息,释放所有资源(空间、设备),记录使用情况,记账等
- 异常结束:发生了某些错误而导致程序在没有完成预定功能时提前结束
2.作业(JOB)的基本概念
2.1作业(从用户角度)
-
在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所作的有关该次业务处理的全部工作称为一个作业
-
作业步:在一个作业的处理过程中,计算机所作的相对独立的工作。作业由不同的顺序相连的作业步组成
2.2作业(从系统角度)
- 作业 = 程序 + 数据(作业体)+ 作业说明书(作业控制语言)
- 在批处理系统中,作业是抢占内存的基本单位,即以作业为单位将程序和数据调入内存
- 作业说明书:体现用户的控制意图,包括作业基本情况、作业控制、作业资源要求的描述 ,由作业控制语言(JCL)编写
作业 | |
---|---|
作业的基本情况 | 用户名、作业名、编程语言、最大处理时间等 |
作业控制 | 作业控制方式(脱机/联机)、作业步的操作顺序、作业执行出错处理 |
作业资源要求 | 处理时间、优先级、内存空间、外设类型和数量、库函数或实用程序等 |
3.作业的建立
- 一个作业的全部程序和数据输入到外存且在系统中建立了相应的作业控制块(Job Control Block——JCB)
- 包括:作业的输入、JCB的建立
- 作业的输入:将作业的程序、数据和作业说明书从输入设备输入到外存,并形成有关初始信息
3.1作业输入方式
3.1.1联机输入方式
- 外围设备和主机直接连接
- 单台设备和主机连接时,I/O与作业处理不能并行,降低了CPU效率
- 多台外设同时联机输入——SPOOLING系统
3.1.2脱机输入方式(预输入方式)
- 利用低档个人计算机作为外围处理机进行输入处理
- 解决了主机CPU的浪费,以牺牲个人机为代价
- 灵活性差,需人工干预介质传送,不安全
3.1.3直接耦合方式
- 将主机和外围低档机通过一个公用的大容量外存直接耦合
- 保留了脱机方式快速的特点,克服了其人工干预的缺点
- 需要大容量公用存储器和多台低档机,成本高
3.1.4SPOOLING系统(假脱机)
- 系统把作业处理的全过程划分为相对独立的三个部分:输入流、处理流和输出流
- SPOOLING系统效果:三流并行、实现外部设备虚拟
- spooling - in /spooling out 进程:控制输入/输出,包括输入程序模块、输出程序模块、作业调度程序
- spooling系统
spooling系统工作原理 |
---|
作业执行前用慢速设备将作业预先输入到后援存储器(如磁盘、磁鼓,称为输入井),称为预输入 |
作业运行后,使用数据时,从输入井中取出 |
作业执行不必直接启动外设输出数据,只需将这些数据写入输出井 |
作业全部运行完毕,再由外设输出全部数据和信息,称为缓输出 |
- 实现了对作业输入、组织调度和输出的统一管理
- 使外设在CPU直接控制下,与CPU并行工作(假脱机)
- 联机下实现了三流并行
spooling系统工作过程 |
---|
在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程将信息从输入装置读入缓冲区 |
当缓冲区满时,由写过程将信息写到外存输入井。读过程和写过程反复循环,直到一个作业输入完毕 |
当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存,并调用中断处理程序结束该次输入 |
系统为该次作业建立作业控制块JCB,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存 |
- spooling系统作业和进程状态转换
- 进入态对应输入流,运行态对应处理流,退出态对应输出流
- 设备虚拟技术:将独占型设备虚拟为共享型设备,提高设备的利用率和系统的效率
3.1.5网络输入方式
3.2JCB的建立
- 作业的建立过程,包括作业的输入和作业JCB的建立
- JCB是在作业建立时系统根据作业说明书建立的
- 在运行过程中,JCB是系统对作业进行管理的必要信息
4.用户接口
4.1程序级接口
- 提供给用户在编程时使用
- 系统为用户在程序一级提供有关服务而设置,由一组系统调用命令组成
- 用汇编语言:程序中直接用系统调用命令
- 用高级语言:可在编程时使用过程调用语句
4.2操作级接口
- 提供给用户直接在键盘终端上交互式地使用
- 脱机方式:用户通过JCL编写作业控制程序提交给系统,系统执行过程中用户无法干预(批处理文件、传统的脱机方式、命令文件)
- 联机方式:系统为用户提供操作命令,用户通过命令与系统对话,控制程序执行和管理计算机系统(用户直接参与控制作业执行)
联机控制方式的命令种类
- 环境设置:改变终端用户所在位置、执行路径等
- 执行权限管理:控制用户访问系统和操作文件的权限
- 系统管理:系统维护、开机关机、增加或减少终端用户、计时收费等
- 文件管理:管理和控制终端用户的文件
- 编辑、编译、链接装配和执行编辑命令
- 通信:主机与远程终端之间、主机与主机之间
- 资源要求:用户向系统申请资源
4.3图形用户接口
- 技术基础:高分辨显示器和鼠标
5.系统调用
- 系统调用是操作系统提供给软件开发人员地唯一接口
- OS核心中都有一组实现系统功能地过程(子程序),系统调用就是对上述过程的调用
5.1系统调用的功能
- 设备管理:设备的读写和控制。如:Open设备打开、Close设备关闭、Read读设备、Write写设备
- 文件管理:文件的读写和文件控制。如:Open文件打开、Seek读写指针定位、Read读文件、Write写文件
- 进程控制:创建、中止、暂停等控制。如:Fork创建进程、Exit进程自我终止、Sleep进程睡眠
- 进程通信:进程之间传递信息或信号。如:消息队列、共享存储区、socket等通信渠道的建立、使用和删除
- 存储管理:内存的申请和释放
- 系统管理:设置和读取时间、读取用户和主机标识等。如:Gtime读取时间、Stime设置时间
- 通过系统调用接口也可以使用系统命令
5.2系统调用的实现过程
- 系统调用的语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的。每种机器的机器指令集中都有一条系统调用指令
5.3中断和trap的区别
中断 | 陷入(trap) | |
---|---|---|
引起原因不同 | 由与现行指令无关的中断源引起 | 通常由处理机正在执行的现行指令引起 |
服务对象不同 | 中断处理程序提供的服务则不是为当前进程的 | 陷入处理程序提供的服务为当前进程所用 |
响应时机不同 | CPU在执行完一条指令之后,下一条指令开始之前响应中断 | 在一条指令执行中也可以响应陷入 |
5.4系统调用与普通过程调用
相同点:
- 改变指令流程
- 重复执行和公用
- 改变指令流程后需要返回原处
不同点:
- 执行方式不同:调用和返回经历了不同的系统状态。通常核心和应用程序的代码分别运行在CPU的不同的状态下(系统态/核心态/管态和用户态/目态),所用地址空间也不同。核心的代码可以直接访问应用进程的地址空间,反之不然
- 进入方式不同:利用 int 或 trap 指令进行系统调用;利用 call 或 jump 指令进入普通的过程调用
- 返回方式:采用抢先式调度的系统,在系统调用返回时,要对系统中所有要求运行的进程进行优先级分析,并进行重新调度的检查——是否有更高优先级的任务就绪(创建或唤醒)