位于应用软件和硬件设备之间,本质是一个软件程序员
核心做用:1.为用户屏蔽了复杂繁琐的硬件接口;为应用程序提供了清晰易用的系统接口安全
2.将用用程序对硬件资源的竞争变得有序性能
操做系统与应用程序的区别:学习
1.操做系统是受保护的,没法被用户修改操作系统
2.大型:仅内核代码量达上百万行插件
3.长寿,一旦完成,不会重写,只会有所改进设计
第一代计算机(1940-1945):真空管和穿孔卡片调试
特色:
没有操做系统的概念
全部的程序设计都是直接操控硬件blog
工做过程:
程序员在墙上的机时表预定一段时间,而后程序员拿着他的插件版到机房里,将本身的插件板街道计算机里,这几个小时内他独享整个计算机资源,后面的一批人都得等着(两万多个真空管常常会有被烧坏的状况出现)。接口
后来出现了穿孔卡片,能够将程序写在卡片上,而后读入机而不用插件板
优势:
程序员在申请的时间段内独享整个资源,能够即时地调试本身的程序(有bug能够马上处理)
缺点:
浪费计算机资源,一个时间段内只有一我的用。
第二代计算机(1955-1965):晶体管和批处理系统
第二代如何解决第一代的问题/缺点:
1.把一堆人的输入攒成一大波输入,
2.而后顺序计算(这是有问题的,可是第二代计算也没有解决)
3.把一堆人的输出攒成一大波输出
现代操做系统的前身:(见图)
优势:批处理,节省了机时
缺点:1.整个流程须要人参与控制,将磁带搬来搬去(中间俩小人)
2.计算的过程仍然是顺序计算-》串行
3.程序员原来独享一段时间的计算机,如今必须被统一规划到一批做业中,等待结果和从新调试的过程都须要等同批次的其余程序都运做完才能够(这极大的影响了程序的开发效率,没法及时调试程序)
第三代计算机(1965-1980):集成电路芯片和多道程序设计
第三代计算机的操做系统普遍应用了第二代计算机的操做系统没有的关键技术:多道技术
cpu在执行一个任务的过程当中,若须要操做硬盘,则发送操做硬盘的指令,指令一旦发出,硬盘上的机械手臂滑动读取数据到内存中,这一段时间,cpu须要等待,时间可能很短,但对于cpu来讲已经很长很长,长到可让cpu作不少其余的任务,若是咱们让cpu在这段时间内切换到去作其余的任务,这样cpu不就充分利用了吗。这正是多道技术产生的技术背景
多道技术:
多道技术中的多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(好比cpu)的有序调度问题,解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。
空间上的复用:将内存分为几部分,每一个部分放入一个程序,这样,同一时间内存中就有了多道程序。
时间上的复用:当一个程序在等待I/O时,另外一个程序可使用cpu,若是内存中能够同时存放足够多的做业,则cpu的利用率能够接近100%,相似于咱们小学数学所学的统筹方法。(操做系统采用了多道技术后,能够控制进程的切换,或者说进程之间去争抢cpu的执行权限。这种切换不只会在一个进程遇到io时进行,一个进程占用cpu时间过长也会切换,或者说被操做系统夺走cpu的执行权限)
空间上的复用最大的问题是:程序之间的内存必须分割,这种分割须要在硬件层面实现,由操做系统控制。若是内存彼此不分割,则一个程序能够访问另一个程序的内存.
弊端:
1.安全性差,好比你的qq程序能够访问操做系统的内存,这意味着你的qq能够拿到操做系统的全部权限。
2.稳定性差,某个程序崩溃时有可能把别的程序的内存也给回收了,比方说把操做系统的内存给回收了,则操做系统崩溃。
第四代计算机(1980-至今:我的计算机
第四代也就是咱们常见的操做系统,大可能是具有图形化界面的,例如:Windows,macOS ,CentOS等
因为采用了IC设计,计算机的体积降低,性能增加,而且成本以及能够被普通消费者接受,而第三代操做系统大都须要进行专业的学习才能使用,因而各个大佬公司开始开发那种不须要专业学习也能够快速上手的操做系统,即上述操做系统!
它们都是用了GUI 图形化用户接口,用户只须要经过鼠标点击拖拽界面上的元素便可完成大部分操做