【OS】操作系统分类及用户界面
目录
第一章 操作系统分类
1. 分时操作系统 Time Sharing OS
2. 实时操作系统 Real Time OS
3. 网络操作系统 Network OS
4. 分布式操作系统
5. 个人计算机操作系统 Personal Computer OS
6. 操作系统的功能
存储管理
处理机管理
进程调度
进程控制
设备管理
文件管理
用户接口
第二章 操作系统用户界面
1. 作业的基本概念
作业的建立过程
作业的输入
作业控制块(Job Control Block)
作业说明书(Job Description)
作业的处理过程
SPOOLING
2. 用户接口
系统调用
过程调用与系统调用
3. 重点总结
为什么要提出这样的概念?
怎么使用这样的概念?
第一章 操作系统分类
1. 分时操作系统 Time Sharing OS
2. 实时操作系统 Real Time OS
过程控制系统、信息查询系统、事务处理系统
不能是通用的,必须要专用的实时操作系统完成。往往采用双机系统,成本较高。不能有片刻的耽误。通用系统往往不需要双机系统。
交互能力相对于分时系统而言较弱,交互太多反而会影响其实时性。事先在程序中预制好处理过程,因为人工实时处理是来不及的。
3. 网络操作系统 Network OS
额外提供网络相关功能的操作系统。
各自做各自的事情,松散的工作模式。不要求操作系统相同,只需要有一定协议就能互相通信。
网络:你干你的我干我的,有需要就传送。
网络OS对网络资源的使用要由用户明确指定。用户在网络操作系统中是一定要知道资源在哪个机器上的!
4. 分布式操作系统
分布式操作系统是协同工作,共同完成一个任务,要求各计算机OS同质。
分布式系统要求有更强的健壮性,一台损坏可能会影响整个任务的完成。网络OS不需要。
5. 个人计算机操作系统 Personal Computer OS
也是一步步发展的:单用户单任务、单用户多任务、多用户多任务
现在我们用的都是单用户多任务,个别情况下会涉及到多用户多任务:
6. 操作系统的功能
存储管理
本书特指内存的管理。
外存中的程序需要被放到内存中才能申请CPU资源。
主要包括:对进程分配与回收存储空间、存储保密保护(限定访问范围,其余空间没有资格访问,防止程序相互干扰)、逻辑地址映射到物理地址(程序第一条指令地址设为0,后续指令加偏移量。即使物理地址变了,比如放在别的电脑上运行,其偏移关系也不变)、存储扩充(覆盖、交换和虚拟存储)
处理机管理
以进程为基本单位,对处理机的管理本质上就是对进程的管理。
进程调度
通过调度算法将CPU资源分配给内存中的各个进程。存放在内存中的程序就像获得了生命,可以作为进程被操作系统处理。
进程控制
原语:一种特别的指令或命令,用于进行进程管理工作。它是直接由计算机系统来执行的,因此速度非常快。
- 创建:开始一个新程序。
- 撤销:结束一个正在运行的程序。
- 挂起:临时暂停一个程序,可以之后再继续。
- 封锁:暂时锁定一个程序,让它不能运行,直到满足某些条件再解锁。
设备管理
打印机、扫描仪都是字符型设备,工作非常慢。下面对某些概念进行类比:
单缓冲:
- 想象有一个桶,你可以往里面放水。
- 当桶满了,你需要停下来,等待将桶里的水倒出,然后再继续放水。
- 这样可能效率不高,因为每次桶满了都要停下来。
双缓冲:
- 现在你有两个桶。
- 当一个桶在装水时,另一个桶可以用来倒水。
- 这样你就不用每次都停下来,提高了效率。
缓冲池:
- 这就好比有很多个桶,根据需要可以使用多个桶来交替完成任务。
- 更进一步提高了效率,因为有更多的资源可供使用。
虚拟设备:
- 想象你在网上购物,但送货的速度很慢。
- 虚拟设备就好比一个中间仓库,你的商品先送到这里,然后你可以继续购物,不用等。
- 然后,中间仓库会在适当的时间慢慢将商品送到你家。
设备独立性:
- 比如你在一个餐厅点了一个汉堡,但你并不需要知道这个汉堡是怎么做的、用了什么食材等细节。
- 同理,当你在电脑上运行一个程序时,你不需要知道这个程序具体用了哪些物理设备。你只需要知道你要的结果,而不需要考虑背后的细节。
文件管理
文件管理讨论对外存的管理。
用户接口
不同的用户会有不同的接口。
并发concurrency 并行parallel
裸机、系统内核、存储管理、IO处理、文件存储、资源分配与调度。操作系统逻辑结构分层进行。
先建立系统内核,再用到什么就建立什么,防止资源浪费。
第二章 操作系统用户界面
1. 作业的基本概念
编辑 接收源程序、编译检查错误、链接成exe、运行。三个作业步。
从写的第一个字开始到整个程序运行结束,就是一个作业。一个作业可以分成多个作业步。和计算机打交道的过程。
作业=程序+数据+作业说明书
作业的建立过程
作业的输入
作业输入到外存
作业控制块(Job Control Block)
JCB是管理作业的数据结构,作业控制块和作业是一一对应的关系。管理对象的时候先查看对象的数据结构,方便操作系统了解作业的状态信息,便于资源分配或其他处理。
定义:作业控制块是一个数据结构,通常由操作系统用于存储有关正在执行或待执行作业的信息。
内容:它通常包括作业ID、优先级、状态(等待、运行、完成等)、所需的资源、内存需求等。
用途:用于操作系统的作业调度和资源分配。
动态性:JCB的内容会在作业的生命周期中发生改变。
作业说明书(Job Description)
定义:这通常是一个文档或一个软件配置文件,用于描述作业应该如何执行。
内容:它可能包括输入文件的位置、输出应该去哪里、使用哪个程序或脚本等。
用途:通常用于批处理环境或作业调度软件。
静态性:一旦创建,作业说明书通常不会改变,除非作业本身发生改变。
简而言之,作业控制块更侧重于操作系统级别的作业管理和调度,而作业说明书则更多地用于描述作业应该如何被执行。
作业的处理过程
作业提交:还没有录入,正在写呢
收容:以文件形式存储到外存中
执行:分配作业到内存当中,作为进程。(作业是更大的概念,就是一个执行态)进程有就绪、阻塞、运行态。
SPOOLING
通过通道/DMA器件对作业进行录入
联机方式是一种更常见的方式
2. 用户接口
操作系统提供给用户与计算机打交道的外部机制。用户提出请求,系统做出呼应。操作系统针对不同类型的用户(普通用户GUI,管理员用户CLI,程序员用户 系统调用。前二者也称为操作接口,后者称为程序接口),提供不同类型的用户接口。
系统调用
便于程序开发的功能:系统调用。操作系统部分功能开放给程序员,程序员调用这样的功能。每一个功能在系统调用中有功能号(id),这种指令称之为陷阱指令或访管指令。
马上产生中断,保存现场、进程上下文,进一步进入。从用户到系统的指令运行环境的转换。
处理机的两种状态:用户态和系统态。为什么要分为这两个状态呢?
操作系统可以通过这两种处理机的状态,知道哪些进程在使用系统的资源,并与其他的管理策略关联起来。用处理机状态字PSW的一个bit标志当前是用户执行模式还是系统执行模式。
系统态权限最高,可以访问整个内存空间。用户态就开始存储保护,不能让其过度访问系统数据。只需要使用一个bit,就能更好地管理保护操作系统存储。这是最大的优点,开销小,功能强。
下面是系统调用的过程:
过程调用与系统调用
- 系统调用是动态调用,CALL调用是静态调用。
- 在系统调用中,用户程序和系统程序不能融合在一起,并且方便随着操作系统进行升级。程序员不需要关系实际上的地址、内容改变,对程序员没有任何影响。
- 执行状态的不同:过程调用始终在用户态执行。
- 系统调用也可以作为进程调度的一个时机点。返回的时候可能直接返回,也可能先让CPU处理其他任务,再去返回。这就影响了进程调度。
- 系统调用一般不会多层嵌套或递归。防止操作系统混乱。
3. 重点总结
作业就是用户与计算机打交道的完整的一个过程。
为什么要提出这样的概念?
资源管理和调度:任务被封装为作业,以便系统能按照优先级或提交的顺序进行调度。方便系统任务调度
隔离和抽象:每个作业可以被视为一个独立的单位,拥有其自己的输入、执行指令和输出。这为操作系统提供了一个清晰的界定,使得它可以处理作业而不是单独的指令或程序。创建新的独立单元
性能和效率:通过将一系列指令打包为作业并在适当的时间执行,系统可以更有效地使用其资源。方便提高性能效率
怎么使用这样的概念?
提交作业:用户可以提交一个作业到操作系统,这通常包括输入数据、程序或脚本以及其他执行指令。
队列和调度:提交的作业会被放入一个队列中等待执行。操作系统的作业调度程序(job scheduler)会从队列中选择作业进行执行。
资源分配:作业调度程序根据每个作业的需求(如CPU时间、内存等)分配资源。
作业执行:一旦获得所需资源,作业开始执行。
作业完成:执行完成后,作业的输出会返回给用户,同时释放其使用的资源。
