操作系统引论
操作系统的目标和作用
目标
- 方便性
os的产生是因为直接写机器代码和操作底层硬件太过复杂,上手难度太高。 - 有效性
这个的意思是说os是为了提高计算机资源利用率,不能让资源浪费,得有效利用,毕竟那时候的硬件比较贵。 - 可扩充性
可扩充性,或者说叫兼容性。作为一个很牛逼的设计,这个考虑是必不可少的,毕竟不能来一个新需求你就不行了。这个目标推动了os结构的发展。 - 开放性
开放性,然后说了os得按照硬件软件标准来,什么鬼,没有太懂。
作用
书上从用户,资源管理和资源抽象三个方面阐述。(这里的用户不是真正的用户哈)
用户(这里应该是指计算机进程)
给用户提供了操作计算机底层硬件的抽象,系统命令、系统调用(这个我觉得其实是系统服务)、窗口操作。抽象出来这些操作更加安全可靠,快捷方便,毕竟菜鸟一个命令操作硬件就可能让计算机block了哈哈。
资源管理
对一下资源进行管理
- 处理机(CPU,管理计算机计算)
- 存储器(内存,或者叫运存,运行内存)
- IO设备(IO设备分配和计算机读写)
- 文件(计算机存储空间的保护,共享,存取)
资源抽象
对计算机底层的抽象,为了更加安全、方便的调用计算机资源。
分层抽象:
IO抽象:硬件物理调用抽象为write和read两个主要方法
文件管理抽象:通过调用IO抽象出来的方法,提供给一些文件操作命令,复制,移动等
图形界面抽象:利用文件管理抽象和图形界面操作,将文件操作命令更方便让用户使用
操作系统发展
刚开始的时候,硬件贵,所以计算机资源很重要,我们尽可能的在很烂的硬件上提高资源利用效率。
慢慢地,硬件不值钱了,所以用的爽才是王道,开始提高使用方便性。
硬件发展除了性能提高还有新的硬件出来,所以os就得随着这些新东西变动。
硬件发展之外,os结构也在不断总结经验教训发展,单处理系统到多处理系统,网络服务。
生活好了,事也就多了,多种多样的新需求就来了,os也就得跟着变化。
操作系统的发展过程
未配置操作系统
人工操作
人拿着硬盘(当时是纸片),安在机器上,机器的CPU直接处理硬盘上的东西。安装和卸载硬盘的时候,机器不糙理你。
脱机输入输出
有了内存的概念,在机器直接读取硬盘中间加了一个磁带,充当内存。机器直接操作那个磁带,磁带再和硬盘交互,输入输出啥的。
有操作系统
单道批处理系统
就是安排了一组任务,一个任务队列,然后有个监管程序监管这些任务完成和切换。
安排的任务你根本就没法打断,没办法中间做处理。
资源利用率太低,一个任务占有所有的资源。
多道批处理系统
也是一个任务队列,能够根据资源占用情况分配任务。
主要解决是资源利用率的问题,那时候硬件太贵了,利用率是大问题。没有解决人机交互。
他对资源的管理提高了很多,而且为了分配资源,初始的资源调度产生。还抽象了一部分硬件接口。
分时系统
我认为分时操作系统最大的特征就是通过时间片轮转,给多个终端提供服务。它将作业从外存掉入内存,这样可以实现对作业的简单操控。在多道批处理系统中,作业(其实就是你的任务或者程序)放在外存中,cpu都不知道你要执行啥,所以压根没发交互。放入内存,这样cpu直接和内存交互,提前知道你要执行的全部作业,这样就可以让你在中间进行简单的交互。
特征:多路行 独立性 及时性 交互性
实时系统
简单的来说就是及时响应的系统,这类操作系统对时间比较敏感。要求对请求有较快的响应速度。比如说工业控制系统、信息查询、多媒体、嵌入式系统。
说起实时操作系统,就不得不提它的几个概念:
- 任务调度
- 中断
- 进程间通信
- 切换上下文
- 优先级
- 共享/互斥
不过我们最常使用的系统还是从分时系统发展过来的,例如linux、windows、unix。它还是可靠性比较强的,额 ,不知道咋总结了,看传送门吧,写得挺好。
微机操作系统的发展
简单的来说,就是:
- 单用户单任务-》单用户多任务-》多用户多任务
- 8位-》16位-》32位-》64位
- CP/M(8位)-》MS-DOS(16位)-》windows系列系统(不得不说微软真变态)-》UNIX系统(还是熟linux系统,不过Mac OS也是在他的基础上搭建)
操作系统的基本特性
-
并发
这个并发要和并行的概念区分开。前者是说在一段时间内发生了多个事件,后者是在同一时间发生多个事件。操作系统并发的特性是说利用时间片轮转,实现任务并发。再通过给多个可并发任务分配一个不同处理机(多核cpu我猜),实现多任务的同时进行。
这里还引入了进程的概念,计算机中能独立运行并作为资源分配的基本单位。由指令、数据、堆栈组成。实现多进程并发。 -
共享
这个就不用特别说明了,计算机资源的共享。任务的并发执行导致资源共享更加的复杂。主要的共享方式分为以下两种:
- 互斥共享方式
没办法同一时间占用的资源,比如说打印机啥的 - 同时访问方式
感觉是真正意义上的共享,允许多个任务同时进行访问,比如说磁盘。
-
虚拟
虚拟分为时分复用和空分复用。时分复用就是将时间切为时间片,不同任务时间片轮转占用。空分复用就是一部分空间,不停的换执行的数据程序,达到空间的复用。其实都是一种不停切换达到宏观上的一种复用。像是电影一样,不停切换形成影像。 -
异步
这里的异步是说因为任务分配,资源分配,所以任务完成时间是不定的。他是一种异步向前的方式,而不是同步的前进。不过如果有良好的同步机制,异步也是可以多次运行得到相同的结果。
操作系统的主要功能
传送门
分时操作系统百度百科
实时操作系统和分时操作系统的区别
分时操作系统和实时操作系统
多道批处理系统,分时系统,实时系统的特点
分时操作系统和实时操作系统