zoukankan      html  css  js  c++  java
  • 操作系统简介

    一、为什么需要操作系统

    我们的电脑由非常非常多的设备组成,如键盘,鼠标,硬盘,cpu等等,是一个非常复杂的系统!

    因此带来两个问题

    1.如何能够使得这些设备能够完成我们指定的任务,这需要对各个硬件都有一定的了解

    2.如何管理这么多设备 让它们能够协调工作;是一个非常有挑战性的工作

    总结:我们无法掌握所有的硬件细节,也无法管理如此多的组件并协调他们的工作,所以需要一个更加直观,清晰,简单的解决方案!使得我们的可

    以从繁琐的硬件操作中解放出来,这就是操作系统出现的原因!说白了就是降低使用难度。

     

     二、操作系统是什么?

    简单的说操作系统就是协调,管理和控制计算机硬件资源和软件资源的控制程序

    下图是操作系统在整个计算机中所在的位置:

    位于应用软件和硬件设备之间,本质上也是一个软件,

    由系统内核(管理所有硬件资源)与系统接口(提供给程序员使用的接口)组成

    操作系统详解:

    操作系统是为方便用户操作计算机而提供的一个运行在硬件之上的软件

    主要完成了两个任务

    1.为用户屏蔽了复杂繁琐的硬件接口,为应用程序提供了,清晰易用的系统接口,有了这些接口以后程序员不用再直接与硬件打交道了

    例子:有了操作系统后我们就可以使用资源管理器来操作硬盘上的数据,而不用操心,磁头的移动啊,数据的读写等等

    2.操作系统将应用程序对硬件资源的竞争变成有序的使用

    例子:所有软件 qq啊 微信啊 吃鸡啊都共用一套硬件设备 假设现有三个程序都在使用打印机,如果不能妥善管理竞争问题,可能一个程序打印了一半图片后,另一个程序抢到了打印机执行权于是打印了一半文本,导致两个程序的任务都没能完成,操作系统的任务就是将这些无序的操作变得有序

     

    疑惑:

    操作系统与一般软件有什么区别

    二者的区别不在再出的地位,操作系统可以看做一款特殊的软件

    1.操作系统是是受保护的:无法被用户修改(应用软件如qq不属于操作系统可以随便卸载)

    2.大型:linux或widows源代码都在五百万行以上,这仅仅是内核,不包括用户程序,如GUI,库以及基本应用软件(如windows Explorer等),很容易就能达到这个数量的10倍或者20倍之多 

    3.长寿:由于操作系统源码量巨大,编写是非常耗时耗力的,一旦完成,操作系统所有者便不会轻易的放弃重写,二是在原有基础上改进,基本上可以把windows95/98/Me看出一个操作系统

    三、第一代计算机:真空管和穿孔卡片

    第一代计算机采用的是真空管,类似灯泡一样的电子器件来设计运算电路,所以整个计算机体积非常庞大,当时还没有设计语言这个概念更没有操作系统一说,运算电路的执行过程完全通过硬件操作来完成

    特点:没有操作系统,直接操作硬件,程序在插件板或是,打孔卡上进行设计

    缺点:程序是串行的同一时间段只能有一个程序被执行造成了资源的浪费

    四、第二代计算机:晶体管和批处理系统

    由于当时的计算机非常昂贵,自然要想办法较少机时的浪费。通常采用的方法就是批处理系统。

    并且由于晶体管的出现 计算机的体积也得到了缩小

    特点:有了操作系统有了汇编语言和FORTRAN语言 需要人工辅助完成输入与输出操作        

    优点:降低了机时的浪费,程序员将自己的卡交给操作员,操作员收集所有的卡片后送到磁带机上,计算机依次执行卡片上的程序,这样一次性可以处理一批程序

    缺点:

    1.需要人工参与

    2.执行过程依然是串行的

    3.无法及时调试程序

    五、第三代计算机:集成电路与多道程序设计

    第二代计算机问题的解决方案

    1.需要人工参与

    第三代计算机引入了SPOOLING(同时外部设备连接操作),从而可以让输如输出设备直接连接到计算机来执行任务,彻底解放了人工劳动

    2.程序串行

    串行如何到导致资源浪费?

    例如在程序需要写入一个大文件通常比较耗时,这个过程cpu需要等到写入完成才能执行下一个任务,这就导致了CPU的资源浪费

    多道技术:

    空间复用:将内存分为几个单独部分,每个部分存入一个程序,这样同一时间内存中就有了多个程序

    时间复用:当一个程序在等待I/O时,CPU切换执另一个程序,如果程序足够多,CPU利用率可达百分百

    3.调试效率低

    分时操作系统 = 多个联机终端 + 多道技术

    CTTS:麻省理工(MIT)在一台改装过的7094机上开发成功的,CTSS兼容分时系统,第三代计算机广泛采用了必须的保护硬件(程序之间的内存彼此隔离)之后,分时系统才开始流行
    
    贝尔实验室和通用电气在CTTS成功研制后决定开发能够同时支持上百终端的MULTICS(其设计者着眼于建造满足波士顿地区所有用户计算需求的一台机器),很明显真是要上天,最后摔死了。
    
    后来一位参加过MULTICS研制的贝尔实验室计算机科学家Ken Thompson开发了一个简易的,单用户版本的MULTICS,这就是后来的UNIX系统。基于它衍生了很多其他的Unix版本,在1987年,出现了一个UNIX的小型克隆,即minix,用于教学使用。芬兰学生Linus Torvalds基于它编写了Linux
    第三代操作系统简要 

    六、第四代操作系统:

    第四代也就是我们常见的操作系统,大多是具备图形化界面的,例如:Windows,macOS ,CentOS等

    由于采用了IC设计,计算机的体积下降,性能增长,并且成本以及可以被普通消费者接受,而第三代操作系统大都需要进行专业的学习才能使用,于是各个大佬公司开始开发那种不需要专业学习也可以快速上手的操作系统,即上述操作系统!

    它们都是用了GUI 图形化用户接口,用户只需要通过鼠标点击拖拽界面上的元素即可完成大部分操作

     

     

  • 相关阅读:
    241. Different Ways to Add Parentheses java solutions
    89. Gray Code java solutions
    367. Valid Perfect Square java solutions
    46. Permutations java solutions
    116. Populating Next Right Pointers in Each Node java solutions
    153. Find Minimum in Rotated Sorted Array java solutions
    判断两颗树是否相同
    求二叉树叶子节点的个数
    求二叉树第k层的结点个数
    将二叉排序树转换成排序的双向链表
  • 原文地址:https://www.cnblogs.com/wanlei/p/9941385.html
Copyright © 2011-2022 走看看