操作系统

作者: KevinCool | 来源:发表于2016-07-21 17:59 被阅读131次

    操作系统基本概念

    计算机系统分为硬件,操作系统,应用程序,用户。操作系统管理各种计算机硬件,为应用程序提供基础,充当计算机硬件与用户之间的中介。
    操作系统控制和协调各用户的应用程序对硬件的分配和使用。是计算机系统中最基本的系统软件。

    1. 操作系统的特征
    • 并发
      并发是多个事件在同一时间间隔内发生,计算机系统中同时存在多个运行着的程序,具有处理和调度多个程序同时执行的能力。引入进程的目的就是为了使的程序能够并发执行。
      微观上并发程序还是在交替的分时执行,操作系统的并发性是通过分时来实现的。
      但是并行性是指系统具有可以同时进行运算或者操作的特性,在同一时刻完成两种或者两种以上的工作,需要有相关硬件的支持。
      可以联想自己写的并行程序是要在多个计算机上运行的,而如果在一台计算机上,它也只能是分时运行的。

    • 共享
      资源共享,指系统中的资源可以供内存中多个并发执行的进程共同使用。

      • 互斥共享方式
        一段时间内只允许一个进程访问该资源,一段时间内只允许一个进程访问的资源称为临界资源或者独占资源。
      • 同时访问方式
        同时只是宏观上的,微观上,进程还是交替的对资源进行访问,即分时共享。同时访问的共享,一个请求分几个时间片段间隔完成的效果,与连续完成的效果相同。

      并发和共享是操作系统两个最基本的特征。

    • 虚拟
      将物理实体变成逻辑上的对应物,虚拟处理器,虚拟内存,虚拟外部设备。
      利用多道程序设计技术,把一个物理上的CPU虚拟成多个逻辑上的CPU,称为虚拟处理器。
      将一台计算机的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量。
      虚拟设备技术,将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许用户占用一台逻辑上的I/O设备,这样便可以使原来仅允许在一段时间内由一个用户访问的设备,临界资源,变成在一段时间内允许多个用户同时访问的共享设备。

    • 异步
      多道程序环境下,允许多个程序并发执行,但是资源有限,进程的执行并不是一贯到底,而是以不可知的速度向前推进,这就是进程的异步性。

    1. 操作系统的特征和目标
      处理机管理,存储器管理,设备管理,文件管理。
    • 处理机管理
      处理机的分配和运行以进程为基本单位,因此处理机管理可以归结为进程管理。进程控制,进程同步,进程通信,死锁处理,处理机调度。
    • 存储器管理
      方便用户使用以及提高内存使用率,内存分配,地址映射,内存保护与共享,内存扩充。
    • 文件管理
      文件存储空间的管理,目录管理,文件读写管理和保护。
    • 设备管理
      提高设备利用率,完成用户的I/O请求,缓冲管理,设备分配,设备处理,虚拟设备。
    1. 操作系统为用户与计算机硬件系统间提供了接口
      用户接口分为两类:
    • 命令接口
      用操作命令来组织和控制作业执行
      • 联机控制
        交互式命令接口,分时或者实时系统
      • 脱机控制
        批处理命令接口,适用于批处理系统,一组作业控制命令。
    • 程序接口
      程序接口由一组系统调用命令组成,用户在程序中使用这些系统调用命令来请求操作系统为其服务,程序中用户可以直接使用这组系统调用命令。
      图形用户界面,图形接口,也是调用程序接口实现的。

    Tips:

    1. 系统软件包括,操作系统,数据库管理软件,语言处理程序,服务性程序,标准库程序
    2. 系统调用是操作系统提供给应用程序使用内核功能的一个接口。
    3. 库函数是高级语言提供的与系统调用对应的函数,但是有些库函数与系统调用无关。
    4. 文件I/O需要在内核态运行。
    5. 操作系统不提供管理系统缓存的系统调用。
    6. 多道程序设计失去了封闭性和顺序性,顺序性是单道程序设计的基本特征。
    7. 不使用系统调用的库函数,效率高,因为不存在上下文的转换以及状态转换,用户态转换成核心态。
    8. 通道是独立于CPU的控制输入输出的设备,与CPU可以并行。

    操作系统的发展

    1. 手工操作
    2. 批处理阶段
    • 单道批处理系统
      顺序性,每次主机内存中存放一道作业,运行期间发出输入输出请求的时候,高速CPU就处于等待低速I/O完成状态。
    • 多道批处理系统
      多道,宏观上并行,微观上串行,内存中的多道程序轮流占有CPU,交替执行。响应时间长,不能人机交互。
    1. 分时操作系统
      分时操作系统是多个用户通过终端同时共享一台主机,多道批处理是实现作业自动控制而无需人工干预的系统,分时系统是实现人机交互的系统。
    2. 实时操作系统
    • 硬实时系统
      动作必须绝对的在某个时刻发生
    • 软实时系统
      某个特定的动作在规定的时间完成,如果偶尔违反也不会产生永久性损害。

    严格的时间限制内完成处理时间,主要特定是及时性和可靠性。

    1. 网络操作系统和分布式计算机系统
      网络中各种资源的共享以及各台计算机之间的通信
      分布式系统主要特点是分布性和并行性,若干台计算机相互协同完成一个任务。

    Tips:

    1. 虚拟和交换技术以多道程序设计技术为前提
    2. 实时系统普遍用高优先级,并且用可抢占来确保实时处理。
    3. 要求快速响应用户是导致分时系统出现的原因。

    操作系统的运行环境

    特权指令:计算机中不允许用户直接使用的指令,I/O指令,置中断指令,存取用于内存保护的寄存器,送程序状态字到程序状态字寄存器等指令。操作系统在具体实现上分了用户态(目态)和核心态(管态)。
    操作系统采用了层次式的设计结构,与硬件关联紧密的模块,时钟管理,中断处理,设备驱动等处于最底层,其次是运行频率较高的程序,进程管理,存储器管理,设备管理。这两部分构成了操作系统的内核。

    1. 操作系统的运行
      内核是计算机上配置的底层软件。
    • 时钟管理
      第一功能是计时,另外通过时钟中断管理,可以实现进程的切换。
    • 中断机制
      初衷是提高多道程序运行环境中的CPU利用率,主要针对外部设备。键盘鼠标的输入,进程管理和调度,系统功能调用,设备驱动,文件访问。现代操作系统是靠中断驱动的软件。
      中断机制中,小部分功能属于内核,负责保护和恢复中断现场的信息,转移控制权到相应的处理程序,减少中断的处理时间,提高系统的并行处理能力。
    • 原语
      底层是一些可以被调用的公用小程序,各自完成一个规定的操作。
      最接近硬件的部分,程序运行具有原子性,运行时间短,调用频繁。
      具有这些特点的程序称为原语,定义原语的直接方法是关闭中断,让它所有动作不可分割的进行完再打开中断。系统中设备驱动,CPU切换,进程通信等功能部分操作定义为原语,使他们称为内核的组成部分。
    • 系统控制的数据结构及处理
      进程管理,存储器管理,设备管理

    核心态指令实际上包括系统调用类指令和一些针对时钟,中断和原语的操作指令。

    1. 中断和异常
      用户态和核心态的切换,从用户态进入核心态需要进行中断或者异常,中断或者异常发生时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的。
      提高资源利用率需要在程序没有使用某种资源的时候,把它对那种资源的占有权释放,这个行为,就需要中断实现。
    • 中断
      外中断,来自CPU执行指令之外的事件发生,设备发出的I/O结束中断,时钟中断,表示一个固定的时间片已到,让处理机处理计时,启动定时运行任务等。这一类中断是与当前程序运行无关的事件。
    • 异常
      内中断,例外,陷入,源自CPU执行指令内部的事件,程序非法操作,地址越界,算术溢出,异常处理一般要依赖于当前程序的运行现场,异常不能被屏蔽,一旦出现应立即处理。
    1. 系统调用
      操作系统作为用户与计算机硬件系统之间的接口,命令接口和程序接口,程序接口就是系统调用。
      用户在程序中调用操作系统提供的子功能,特殊的公共子程序。
      在用户程序中,凡是与资源有关的操作,存储分配,进行I/O传输,以及管理文件,都必须通过系统调用方式向操作系统提出服务请求。
      系统调用运行在系统的核心态,系统调用命令是由操作系统提供的一个或者多个子程序模块实现的。
      用户通过操作系统运行上层程序,这个上层程序依赖于操作系统的底层管理程序提供服务支持,需要管理程序服务时候,系统通过硬件中断机制进入核心态,运行管理程序。也可能是程序运行出现异常,被动需要管理程序的服务,通过异常处理进入核心态,管理程序运行结束的时候,通过相应的保存程序现场退出中断处理程序或者异常处理程序,返回断点继续执行。
      关心的是系统核心态和用户态的软件实现和切换。
      从核心态转向用户态由一条指令实现,也是特权指令,一般是中断返回指令。
      用户态进入核心态,不仅状态需要切换,堆栈也需要从用户堆栈切换为系统堆栈,系统堆栈是属于该进程的。
      程序运行从用户态转到核心态,用到访管指令,访管指令是在用户态使用的,所以不可能是特权指令。

    Tips:

    1. 用户程序在用户态下要使用特权指令引起的中断属于访管中断。
    2. 只能在核心态下运行的指令是置时钟指令。
    3. 广义指令就是系统调用命令,只能在核心态下执行。

    相关文章

      网友评论

        本文标题:操作系统

        本文链接:https://www.haomeiwen.com/subject/eqsvjttx.html