操作系统概述
操作系统的一些概念
操作系统的目标
方便些 有效性 可扩充性
操作系统的作用
提供用户与计算机硬件系统之间的接口、资源管理、资源抽象。
操作系统特征
- 并发
- 共享
- 虚拟
- 异步
操作系统的发展与分类
无操作系统计算机系统
- 真·人工 智能。
- 用户独占全机
- CPU需要等待人工操作
- 脱机输入输出 也就是把输入磁带的工作交给了外围机,多了一个速度稍快一点的中间商,CPU无意义的等待时间稍有减少。
批处理系统
-
单道批处理系统 也就是内存中只有一个作业,但系统对作业的处理是成批的。这样就不用人工也不用中间商去处理作业,解决了这两哥们速度都比较慢的问题。
- 自动性。也就是处理完一个之后自动处理磁带后面的作业。
- 顺序性。磁带里的作业是按顺序进入CPU,也就是FIFO。
- 单道性。内存只有一个程序运行,完成这个程序后才换别的(while(1)大成功!) 虽然但是,单道批处理系统还是很沙雕的,比如在进行IO处理的时候,CPU只能等慢吞吞的IO设备返回数据才能继续,导致CPU利用率并不高。 同时,为了能运行比较大的作业,需要内存足够大,但实际上很多的任务都属于中小型,因此大部分的内存大多时候都是多余的。
-
多道批处理系统 既然IO的时候CPU闲得慌,那就让万恶的
资本主义人类就让IO设备运作时,切换到别的程序运行,这样在提高了资源利用率的同时也能提高系统的吞吐量。同时还能在宏观上形成一种我能同时运行多个程序的错觉,实际在微观上还是串行处理的。 但由于作业是排队处理的,因此作业的周转时间会比较长,而且缺少交互能力,用户一旦把作业提交给系统,就只能做着摸鱼到系统完成作业。不用debug的程序员资本主义是不喜欢滴! 同时多道批处理系统需要解决的问题非常多:- 处理机争用问题
- 内存分配和保护问题
- IO设备分配问题
- 文件组织和管理问题
- 作业管理问题
- 接口问题
分时系统
分时系统将CPU的运行时间分成了许多个时间片,这样就可以让每个程序都公平的享受到计算资源,同时用户交互就有了可能性。分时系统有以下特征:
- 同时性。也就是多路性,多个用户可以同时使用一台电脑。
- 交互性。交互页面天下第一!
- 独立性。进程之间可以不受影响独立操作。
- 及时性。所有用户的请求都能够及时响应(虽然单个任务而言响应时间是变差了的)
实时系统
就是牛逼的高级的 可以设置优先级的,避免了分时系统的无法处理紧急事件的情况。实时操作系统也分为软硬两种。硬一点的是严格要求在规定时刻内需要响应的,软的就是偶尔可以摸摸鱼。
操作系统的运行环境
操作系统的运行机制
- 时钟管理 提供标准时间,并且为时间片轮转等功能提供了可能性
- 中断机制 微机原理,懂的都懂
- 原语
底层可被调用的小程序,有以下特点:
- 处于操作系统底层,最接近硬件的部分
- 具有原子性,一旦执行必须执行到底
- 运行时间较短,且频繁被调用
- 系统控制的数据结构及处理
常见的系统操作有如下
- 进程管理
- 存储器管理
- 设备管理
易错点
- 现代操作系统的最基本两个特征是:并发和共享(没有虚拟)
- 系统调用目的是请求系统服务,而不是申请系统资源。
- 通道是一种硬件设备,独立于CPU工作,使得多道程序概念得以实现
- 用户态到核心态这一步骤是由硬件实现的
- 访管指令只能在用户态实现,作用是切换到核心态
- 中断过程中,PC的值由中断隐指令保存,而操作系统保存通用寄存器的内容
- 用户程序出现错误(除以0、中断等),也会切换为核心态