操作系统介绍
一、操作系统的发展史
操作系统大概分为这几个发展阶段:
手工操作 —— 穿孔卡片
批处理 —— 磁带存储和批处理系统
多道程序系统
分时系统
实时系统
通用操作系统
操作系统的进一步发展
第一代计算机(1940-1955):手工操作 ———— 真空管和穿孔卡片
1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念,所有的程序设计都是直接操控硬件。
程序员将自己的插件板接到计算机里,这个段时间内他独享整个计算机资源,后面的一批人都得等着(两万多个真空管经常会有被烧坏的情况出现)。后来出现了穿孔卡片,可以将程序写在卡片上,然后读入机而不用插件板
第二代计算机(1955-1965):批处理 ———— 磁带存储
批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)
脱机批处理系统
为克服与缓解:高速主机与慢速外设的矛盾,提高CPU的利用率,又引入了脱机批处理系统,即输入/输出脱离主机控制。
优点:批处理,节省时间
缺点:
1.整个流程需要人参与控制
2.计算的过程仍然是顺序计算---串行
3.程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,
等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以(这极大的影响了程序的开发效率,无法及时调试程序)
第三代计算机(1965~1980):多道程序设计
所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源,
它的解决方式是多路复用,多路复用分为时间上的复用和空间上的复用。
空间上的复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序。
例如:多个运行的程序同时进入内存,硬件层面提供保护机制来确保各自的内存是分割开的,且由操作系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。
时间上的复用:当一个程序在等待I/O或者这个程序运行足够长的时间后,另一个程序可以使用cpu。
例如:只有一个cpu,多个程序需要在该cpu上运行,操作系统先把cpu分给第一个程序,在这个程序运行的足够长的时间(时间长短由操作系统的算法说了算)或者遇到了I/O阻塞,
操作系统则把cpu分配给下一个程序,以此类推,直到第一个程序重新被分配到了cpu然后再次运行,由于cpu的切换速度很快,给用户的感觉就是这些程序是同时运行的,或者说是并发的,
或者说是伪并行的。至于资源如何实现时间复用,或者说谁应该是下一个要运行的程序,以及一个任务需要运行多长时间,这些都是操作系统的工作。
空间上的复用最大的问题是:程序之间的内存必须分割,这种分割需要在硬件层面实现,由操作系统控制。如果内存彼此不分割,则一个程序可以访问另外一个程序的内存,首先丧失的是安全性,比如你的qq程序可以访问操作系统的内存,这意味着你的qq可以拿到操作系统的所有权限。其次丧失的是稳定性,某个程序崩溃时有可能把别的程序的内存也给回收了,比方说把操作系统的内存给回收了,则操作系统崩溃。
基于多道程序设计产生的系统:
1、多道批处理系统
引入多道程序设计技术后形成多道批处理系统:当一个程序遇到IO操作的时候就把CPU让出来给其他程序用
2、分时操作系统
分时技术:把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。不是遇到IO的时候才让出CPU,而是时间到了就将CPU让出来
通用操作系统
第四代计算机(1980~至今)
个人计算机操作系统
网络操作系统
分布式操作系统
二、操作系统的作用
1、隐藏丑陋复杂的硬件接口,提供良好的抽象接口
例如:操作系统提供了文件这个抽象概念,对文件的操作就是对磁盘的操作,有了文件我们无需再去考虑关于磁盘的读写控制(比如控制磁盘转动,移动磁头读写数据等细节),
2、管理、调度进程,并且将多个进程对硬件的竞争变得有序
例如:很多应用软件其实是共享一套计算机硬件,比方说有可能有三个应用程序同时需要申请打印机来输出内容,那么a程序竞争到了打印机资源就打印,然后可能是b竞争到打印机资源,也可能是c,这就导致了无序,打印机可能打印一段a的内容然后又去打印c...,操作系统的一个功能就是将这种无序变得有序。
总的来说就是:
操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。
一、操作系统的发展史
操作系统大概分为这几个发展阶段:
手工操作 —— 穿孔卡片
批处理 —— 磁带存储和批处理系统
多道程序系统
分时系统
实时系统
通用操作系统
操作系统的进一步发展
第一代计算机(1940-1955):手工操作 ———— 真空管和穿孔卡片
1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念,所有的程序设计都是直接操控硬件。
程序员将自己的插件板接到计算机里,这个段时间内他独享整个计算机资源,后面的一批人都得等着(两万多个真空管经常会有被烧坏的情况出现)。后来出现了穿孔卡片,可以将程序写在卡片上,然后读入机而不用插件板
第二代计算机(1955-1965):批处理 ———— 磁带存储
批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)
脱机批处理系统
为克服与缓解:高速主机与慢速外设的矛盾,提高CPU的利用率,又引入了脱机批处理系统,即输入/输出脱离主机控制。
优点:批处理,节省时间
缺点:
1.整个流程需要人参与控制
2.计算的过程仍然是顺序计算---串行
3.程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,
等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以(这极大的影响了程序的开发效率,无法及时调试程序)
第三代计算机(1965~1980):多道程序设计
所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源,
它的解决方式是多路复用,多路复用分为时间上的复用和空间上的复用。
空间上的复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序。
例如:多个运行的程序同时进入内存,硬件层面提供保护机制来确保各自的内存是分割开的,且由操作系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。
时间上的复用:当一个程序在等待I/O或者这个程序运行足够长的时间后,另一个程序可以使用cpu。
例如:只有一个cpu,多个程序需要在该cpu上运行,操作系统先把cpu分给第一个程序,在这个程序运行的足够长的时间(时间长短由操作系统的算法说了算)或者遇到了I/O阻塞,
操作系统则把cpu分配给下一个程序,以此类推,直到第一个程序重新被分配到了cpu然后再次运行,由于cpu的切换速度很快,给用户的感觉就是这些程序是同时运行的,或者说是并发的,
或者说是伪并行的。至于资源如何实现时间复用,或者说谁应该是下一个要运行的程序,以及一个任务需要运行多长时间,这些都是操作系统的工作。
空间上的复用最大的问题是:程序之间的内存必须分割,这种分割需要在硬件层面实现,由操作系统控制。如果内存彼此不分割,则一个程序可以访问另外一个程序的内存,首先丧失的是安全性,比如你的qq程序可以访问操作系统的内存,这意味着你的qq可以拿到操作系统的所有权限。其次丧失的是稳定性,某个程序崩溃时有可能把别的程序的内存也给回收了,比方说把操作系统的内存给回收了,则操作系统崩溃。
基于多道程序设计产生的系统:
1、多道批处理系统
引入多道程序设计技术后形成多道批处理系统:当一个程序遇到IO操作的时候就把CPU让出来给其他程序用
2、分时操作系统
分时技术:把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。不是遇到IO的时候才让出CPU,而是时间到了就将CPU让出来
通用操作系统
第四代计算机(1980~至今)
个人计算机操作系统
网络操作系统
分布式操作系统
二、操作系统的作用
1、隐藏丑陋复杂的硬件接口,提供良好的抽象接口
例如:操作系统提供了文件这个抽象概念,对文件的操作就是对磁盘的操作,有了文件我们无需再去考虑关于磁盘的读写控制(比如控制磁盘转动,移动磁头读写数据等细节),
2、管理、调度进程,并且将多个进程对硬件的竞争变得有序
例如:很多应用软件其实是共享一套计算机硬件,比方说有可能有三个应用程序同时需要申请打印机来输出内容,那么a程序竞争到了打印机资源就打印,然后可能是b竞争到打印机资源,也可能是c,这就导致了无序,打印机可能打印一段a的内容然后又去打印c...,操作系统的一个功能就是将这种无序变得有序。
总的来说就是:
操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。