zoukankan      html  css  js  c++  java
  • 计算机基础操作系统发展篇

    为何要有操作系统

    程序猿无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了它,程序猿就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件编写就可以了,应用软件直接使用操作系统提供的接口来间接使用硬件

    操作系统的位置

    操作系统的位置

    操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为应用程序猿写的应用程序提供系统调用接口)两部分组成,所以,单纯的说操作系统运行于内核态是不准确的。

    操作系统的功能

    操作系统应该分成两部分功能:

    一、为应用程序猿提供调用硬件资源的系统调用接口。

    二、将应用程序对硬件资源的静态请求变得有序化。

    操作系统的发展

    • 第一代计算机(1940~1955):真空管和穿孔卡片

    特点:

    没有操作系统的概念

    所有程序设计都是直接操控硬件

    工作原理:

    程序猿在墙上的机时表预约一段时间,然后程序猿拿着他的插件板到机房里,将自己的插件板接到计算机里,这几个小时他独享这个计算机资源,后面的一批人都得等着(两万多真空管经常会有被烧坏的情况出现)。

    后来出现了穿孔卡片,可以将程序写在卡片上,然后读入机而不用插件板。

    优点:

    程序猿在申请的时间段内独享整个资源,可以及时调整自己的程序(有bug可以立刻处理)

    缺点:

    浪费计算机资源,一个时间段内只有一个人用。

    • 第二代计算机(1955~1965):晶体管和批处理系统

    特点:

    设计人员、生产人员、操作人员、程序人员和维护人员直接有了明确的分工,计算机被锁在专用空调房间中,由专业操作人员运行,这便是‘大型机’。

    有了操作系统的概念

    有了程序设计语言:FORTRAN语言或汇编语言,写到纸上,然后穿孔打成卡片,再讲卡片盒带到输入室,交给操作员,然后喝着咖啡等待输出接口

    工作原理:

    第二代机器工作原理

    优点:批处理,节省了机时

    缺点:

    1.整个流程需要人参与控制,将磁带搬来搬去(中间俩小人)

    2.计算的过程仍然是顺序计算-》串行

    3.程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以(这极大的影响了程序的开发效率,无法及时调试程序)

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

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

    操作系统的作用

    作用一:为应用程序提供如何使用硬件资源的抽象

    作用二:管理硬件资源

    多道技术

    多路复用有两种实现方式

    1.时间上的复用

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

    例如:只有一个cpu,多个程序需要在该cpu上运行,操作系统先把cpu分给第一个程序,在这个程序运行的足够长的时间(时间长短由操作系统的算法说了算)或者遇到了I/O阻塞,操作系统则把cpu分配给下一个程序,以此类推,直到第一个程序重新被分配到了cpu然后再次运行,由于cpu的切换速度很快,给用户的感觉就是这些程序是同时运行的,或者说是并发的,或者说是伪并行的。至于资源如何实现时间复用,或者说谁应该是下一个要运行的程序,以及一个任务需要运行多长时间,这些都是操作系统的工作。

    2.空间上的复用

    每个客户都获取了一个大的资源中的一小部分资源,从而减少了排队等待资源的时间。

    例如:多个运行的程序同时进入内存,硬件层面提供保护机制来确保各自的内存是分割开的,且由操作系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。

    有关空间复用的其他资源还有磁盘,在许多系统中,一个磁盘同时为许多用户保存文件。分配磁盘空间并且记录谁正在使用哪个磁盘块是操作系统资源管理的典型任务。

    这两种方式合起来便是多道技术

  • 相关阅读:
    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程
    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介
    001 01 Android 零基础入门 01 Java基础语法 01 Java初识 01 导学
    001 Android Studio 首次编译执行项目过程中遇到的几个常见问题
    Dora.Interception,为.NET Core度身打造的AOP框架 [2]:以约定的方式定义拦截器
    Dora.Interception,为.NET Core度身打造的AOP框架 [1]:更加简练的编程体验
    监视EntityFramework中的sql流转你需要知道的三种方式Log,SqlServerProfile, EFProfile
    轻量级ORM框架——第二篇:Dapper中的一些复杂操作和inner join应该注意的坑
    轻量级ORM框架——第一篇:Dapper快速学习
    CF888G Xor-MST(异或生成树模板)
  • 原文地址:https://www.cnblogs.com/8192bit/p/7158558.html
Copyright © 2011-2022 走看看