zoukankan      html  css  js  c++  java
  • 操作系统--总体概述

    1.操作系统是什么?

      OS是用户、用户程序与底层硬件的媒介;属于是一种特殊软件

      主要目标:就是为用户提供一个方便的安全的操作环境(提供对底层硬件的抽象);为用户提供所有可能的服务,确保用户程序的正常运行以及错误处理。

                            注意:实现这些目标操作系统需要底层硬件提供支持。

           OS具体的功能:管理计算机资源(硬件、软件、抽象的资源),负责资源分配管理

               为用户提供各种复杂的、危险的服务,确保程序的正常执行以及处理各种异常状况。

    2.操作系统的优点

      去除了底层硬件对应用程序的控制;使得应用程序的编写更加简单

      实现共享,公平和安全,实现更好的整体绩效

      提出抽象模型:进程、线程模型

    3.操作系统的发展历史

      3.1 串行处理:手动加载的应用程序;程序员直接在硬件上面操作,并不存在所谓的操作系统。

      3.2 简单批处理系统:

      存在一个监护程序--功能类似于现代的操作系统,操作员将作业成批输入磁盘,

      之后由监护程序负责该作业的内存分配,接着该作业被执行。CPU执行权在监护程序和作业之间切换。

      此时为了更好的管理作业的执行:OS提供了--内存保护,定时器,中断,支持特权指令等功能。

      3.3 多道批处理程序:为了提高CPU利用率,想到在内存中同时加载多个作业,CPU在多个作业之间进行

      切换执行。为了支持多道程序,OS提供了内存管理、IO中断、DMA等功能。

       

      3.4 分时系统:分时系统的提出主要是为了交互性;将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个用户服务。

    4.计算机结构

      计算机在某种意义上是通信系统。数据在CPU,主存,各种外部设备之间传输。

                                            

    5.操作系统如何工作以及基本的硬件支持

      OS工作总结:操作系统的工作其实可以说是围绕着进程开展的,随着进程的执行,进程存储在内存中--产生出内存管理,进程与外部设备进行信息交互

      产生出IO操作,内存存储是暂时性的,需要将必要的数据持久化存储--产生出持久化存储(文件系统和IO设备管理等);多个进程之间执行等

      产生了进程执行管理,维护进程的正常执行--产生异常处理。

      5.1 中断机制:通常是外部发生某些事情后,事件源发出中断请求信号给CPU,CPU响应这些事件并处理。

      5.2  中断基本分类

        程序中断:程序执行过程中产生的严重的错误情况,自身无法处理,需要借助操作系统的中断服务程序处理。eg:除0操作。

        时钟中断:由处理器内部的计时器产生,允许操作系统以一定的规律进行某些操作。eg:时间片进程调度。

        IO中断:由IO控制器产生,用来进行数据传输。

        硬件失效中断:硬件运行过程中产生的异常。

        注意:中断最初的提出是为了提高CPU的利用率;但同时也满足CPU能够对于外界的需求给予相应的处理。

      5.2 CPU的执行模式

        用户态:用户程序运行的模式,是有限制的运行,不允许执行有危险的指令。用户程序可以通过系统调用使用系统提供的服务。

        内核态:操作系统内核运行的模式,可以执行任何指令,这样直接对硬件进行操作。

      通过Mode bit--模式位来区分是用户态还是内核态:通常中断、trap、系统调用都可以导致用户态到内核态的切换。

      进程运行在用户态,对于一些复杂、危险的、涉及底层资源的操作可以通过系统调用、中断进入操作系统内核态,由OS进行相应的处理。

      区分用户态和内核态主要是为了系统的安全,稳定性考虑,同时也保证了程序的编写简单,正确执行等。

      5.3 DMA--直接存取方式:使得主存与外设之间IO数据传输过程可以直接进行,不需要CPU的介入,CPU只需在开始和结束的时候进行部分的处理。

    6.操作系统的扩展性

      6.1. 硬件的发展对操作系统的发展会有很大的影响,可能由于硬件的发展,某些原来用软件实现的OS服务,可以直接使用硬件完成。

      6.2 用户提出新的服务,操作系统需要实现这个服务。

      6.3 操作系统在设计时候可能存在错误,需要对错误进行修正。

    7.应用程序的并发设计

      OS提供了并发执行的机制,用户程序如何高效的使用这个机制?大多数的程序可以划分为多个可并发执行的子任务,

    子任务通常以进程或线程的形式实现,开发人员需要对程序的任务进行合理的划分,决定哪些子任务是异步执行,那些

    子任务是同步执行的,只有这样才能实现一个比较好的并发程序。

    8.计算机通电后加载操作系统过程

  • 相关阅读:
    Warning:mailcious javascript detected on this domain来由
    CSS盒模型重新理解篇
    sublime生产力提升利器
    Aptana studio 3前端开发编辑器推荐
    Provides PHP completions for Sublime Text
    关于google电子地图跟卫星地图位置不重合
    无名前端库
    npm 编写cli
    webpack.merge
    ExcelDNA UDF 攻略
  • 原文地址:https://www.cnblogs.com/sun1993/p/7774840.html
Copyright © 2011-2022 走看看