zoukankan      html  css  js  c++  java
  • 操作系统基础

    操作系统基础

    1.为何要有操作系统

    最初的电脑并没有操作系统,人们通过各种按钮控制计算机,后来出现了汇编语言,操作人员可以通过纸带将程序输入电脑进行编译。然而,现代计算机系统是一个复杂的系统,程序员要使用计算机就需要掌握系统的细节,这样会极大增加程序员开发程序的压力,效率大打折扣,而且这种将语言内置的电脑只能由操作人员编写程序运行,不利于设备、程序共用,于是就出现了操作系统,这样就很好实现程序共用,以及对计算机硬件资源的管理。

    总结来说,就是程序员无法将计算机的硬件操作都了解,管理并且加以优化这些是非常繁琐的工作,而且为了更好的共享程序,因此出现了操作系统。它的任务就是为所有用户提供一个更好更简单更清晰的计算机模型,管理所有的设备,将用户从管理硬件的工作解放出来,只需要编写程序并可以直接在操作系统上间接使用硬件。

    2.操作系统的位置

       操作系统位于计算机硬件与应用软件之间,是两者沟通的桥梁。由操作系统的内核(运行于内核态管理硬件资源)以及系统调用(运行于用户态为应用程序提供系统调用接口)组成。

     

    3.操作系统的功能

      操作系统的功能主要体现在两个方面:

    (1)     屏蔽硬件物理特性和操作细节,为用户使用电脑提供便利。用户有了这些简单的接口后,就不用考虑操作硬件繁琐复杂的细节,专心开发并使用自己的程序。

    (2)     有效管理系统资源,提高系统资源使用效率。

    计算机有使用要同时运行多个应用程序,如何有效地管理、合理地分配系统资源,提高系统资源的使用效率是操作系统的主要作用。这也是操作系统讲无序的资源使用变得有序(多路复用)

    4.操作系统的发展

       自1946年诞生第一台电子计算机以来,它的每一代进化都以减少成本、缩小体积、降低功耗、增大容量和提高性能为目的,这同时也加速了操作系统的形成和发展。

    最开始,有些机器是使用二进制,有些使用真空管,有的是可编程,这时候还没有操作系统的概念,所有程序都是由纯粹的机器语言编写。程序员使用计算机需要预约,使用时可以独享资源,调试程序处理BUG,但也极大浪费了资源的使用。

    第二代计算机(1955-1965)使用晶体管和批处理系统技术,多个程序攒成一大波共同进行运作,中间由人进行转移控制。这虽然节省了机时,但是计算过程仍然是顺序计算,并且程序被统一规划到一批作业后,程序员需等待同批次所有程序运作完成,这就造成无法及时调试程序,影响开发效率。

    第三代计算机(1965-1980):集成电路芯片和多道程序设计

    20世纪60世纪初大多数厂商都有两条完全不同的生产线,一条用于科学计算和工程计算,一条用于银行和保险公司从事磁带归档和打印服务。IBM公司试图引入360系列低档机同时满足科学计算和商业使用,于是第一个采用了集成芯片电路,此乃现在服务器的前身。
    而第三代计算机使用了SPOOLING(同时的外部设备联机操作)技术,解决了第二代计算机需要人将磁带搬来搬去处理的问题,又广泛和应用了第二代计算机操作系统没有的关键技术:多道技术。这种技术实现了空间上的复用与时间上的复用,同一时间内存中可以有多道程序,当一个程序在等待I/O,另一个程序便可使用CPU,这使得CPU的利用率可以接近100%。

    第三代计算机的操作系统仍然是批处理,为了满足程序员即时调试程序的愿望,很快便出现了分时操作系统。(多个联机终端+多道技术)第三代计算机广泛采用必须的保护硬件(程序之间的内存彼此隔离)后,分时系统开始流行。在贝尔实验室和通用电气开发同时支持上百终端的MULTICS失败后,科学家Ken Thompson开发了一个简易单用户版本的MULTICS,这就是后来的UNIX系统。它衍生了许多其他的版本,为了使程序在任何版本都能运行,IEEE提出了一个UNIX标准,即posix(可移植的操作系统接口)。

    第四代计算机(1980-至今):个人计算机

    操作系统百花齐放的时代。

    5.多道技术

    多道技术是指在内存同时放若干道程序,使它们在系统中并发执行,共享系统中的各种资源。当一道程序暂停执行时,CPU立即转去执行另一道程序。多道技术有两种实现方式。

    (1)    时间上的复用

    一个资源在时间上复用时,不同的程序或用户轮流使用它,第一个程序使用结束后,轮到后续程序。

    (2)    空间上的复用

    多个程序同时进入内存,内存分割开来,每个程序获取大资源中的小部分资源,由操作系统控制。

  • 相关阅读:
    http协议学习系列
    git常用命令大全
    git常用命令与常见面试题总结
    MyBatis框架及原理分析
    Mybatis常见面试题总结
    java实现克隆的三种(很最全面)
    java中equals和==之间的区别?clone方法的作用,及其为什么要使用clone方法?如何使用clone复制对象?以及深克隆浅克隆
    ThreadLocal的简单使用及实现的原理
    Java 最常见的 208 道面试题
    TCP流量控制
  • 原文地址:https://www.cnblogs.com/mitsui/p/6543710.html
Copyright © 2011-2022 走看看