为何要有操作系统
现代的计算机系统包括处理器、多种硬件以及各种输入输出设备,管理该系统是极为繁琐的事情,严重影响了程序员的开发效率,为了简化工作管理硬件,操作系统应运而生。
操作系统的位置
操作系统是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。操作系统介于应用程序和计算机硬件之间,本质是一个软件,由系统调用(运行于用户态,为应用程序员编写的应用程序提供系统调用接口)和内核(运行于内核态管理硬件资源)组成。
操作系统的功能
将应用程序对硬件资源的使用占用请求变得有序,不会因为多程序的运行而导致硬件资源的紊乱。
操作系统为程序员提供接口,由操作系统来控制管理硬件系统,程序员不再担心硬件系统的管理,专注程序开发,提高工作效率。
操作系统的发展
第一代计算机(1940~1955)真空管和穿孔卡片
特点:操作系统的概念不存在;所有的程序设计都是由纯粹的机器语言编写的;CPU一个时刻里只能处理一个程序,并且程序的执行是串行的。
工作过程:程序员预约机房一段时间,将其插件板接入计算机。
优点:在预约的时间内程序员独享计算机资源,即时调试程序,处理BUG。
缺点:对于计算机提供者来说造成资源浪费,一个程序员的使用会造成其他程序员的搁置。
第二代计算机(1955~1965)晶体管和批处理系统
特点:设计人员、操作人员、生产人员、程序人员和维护人员有了明确的分工;有了操作系统的概念,由人力和计算里组成;有了程序设计语言FORTRAN语言和汇编语言
工作过程:操作人员在收集多人的程序之后,将程序卡片放入读卡机,载入磁带并装到磁带机上,操作人员装入一个特殊的程序现在操作系统的前身,它从次带上读入第一个作业并运行,并输出到第二盘磁带上,一个程序运行完成后,系统会自动进入下一个程序直到第一盘磁带被读取完。操作人员将第二盘磁带放入打印机,将结果进行打印。
优点:批处理程序作业,节省了时间。
缺点:整个过程需要人力参与;程序的运行仍然是顺序串行;程序员不能即时处理错误,影响开发效率。
第三代计算机(1965~1980)集成电路芯片和多道程序
一种是面向字主要运用于科学计算和工程计算的大型科学计算机
另一种是面向字符主要运用于银行和保险公司从事磁带归档和打印服务
IBM制造出SYSTEM360系列同时运用于科学计算和商业计算,采用了小规模芯片集成电路,是现在服务器的前身。
工作过程:与第二代计算机运行类似,但是第三代计算机具备外部设备联机操作SPOOLING用于同时输出。第三代计算机与第二代计算机更大的不同在于使用了多道技术,可以同时运行多个程序。多道技术包括空间上的复用(将内存分为多个部分用以运行操作系统和其他一个或多个程序,最重要的是内存分割由操作系统实现,否则一个程序会访问到其他程序的内存从而丧失安全性和稳定性)和时间上的复用(当一个程序在等待I/O时,另一个程序可以使用CPU)
特点:分时操作系统 ;多个联机终端+多到技术
第四代计算机(1980~至今)个人计算机
多道技术
多道技术由时间上的复用和空间上的复用结合而来。
时间上的复用:多个程序运行时,每个程序都会被CPU运行一段时间,这段时间由操作系统决定,周而复始循环,由于CPU运行速度快,用户则感受为同时运行。
空间上的复用:每个客户都会获取资源中的一部分。
每个程序运行都会获得内存中的一块资源,由操作系统来提供硬件层面的保护机制确保内存分割。