操作系统引论——操作系统的作用、目标、发展过程、特性和主要功能

操作系统引论

操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的第一次扩充。其主要功能为管理计算机设备,提高他们的利用率和系统吞吐量,并为用户和应用程序提供简单的接口,便于用户使用。OS是现代计算机系统中最重要的和最基本的系统软件。

操作系统的目标和作用

操作系统的目标

在计算机系统上配置的操作系统,其主要目的是:方便性、有效性、可扩充性和开放性;

  1. 方便性

    未配置操作系统的计算机系统难以直接使用,因为此时对计算机系统的操作需要使用机器语言来完成;通过操作系统提供的各种命令来操作计算机极大方便了用户,似的计算机系统易学易用;

  2. 有效性

    操作系统的有效性有两层含义:

    第一层含义是提高系统资源的利用率。在未配置操作系统的计算机系统中,处理机和IO设备经常处于空闲状态,系统资源利用率地下;

    第二层含义是提高系统的吞吐量。操作系统通过合理组织计算机的工作流程,加速程序的运行,缩短程序的运行周期以实现系统吞吐量的提高;

    可以说,提高系统资源的利用率是推动OS发展的最重要动力;

    方便性和有效性是设计OS时最重要的两个目标。由于以前计算机系统比较昂贵,有效性显得更为重要;现在随着硬件的高速发展,方便性越来越突出,比如微机操作系统中的图形用户界面以及为程序员提供的大量系统调用接口方便了计算机系统的使用者和开发者;

  3. 可扩充性

    为了适应计算机硬件、计算机体系结构以及应用程序的发展,操作系统需要有很好的可扩充性。而可扩充性主要受操作系统结构的影响,因此提高操作系统的可扩充性在一定程度上促进了OS结构的不断发展:从早期的无结构到发展成模块化结构进而发展到层次化结构,现在OS广泛采用微内核结构。

    微内核结构可以方便地添加、修改相应的功能和模块,具有良好的可扩充性。

  4. 开放性

    计算机应用的日益普及,使得计算机软、硬件的兼容变得重要起来;随着操作系统的应用环境由单机环境转向网络环境,其开放性变得尤为重要;

    所谓的开放性是指,系统遵守世界标准规范,特别是开放系统互联OSI国际标准,遵守国际标准开发软、硬件都可以彼此兼用,方便实现互联;

    开放性是20世纪90年代后计算机技术的一个核心问题,也是衡量一个新系统能否被广泛应用的关键;

操作系统的作用

操作系统在计算机系统中所起的作用可以从用户、资源管理以及资源抽象等不同角度考虑;

  1. OS是用户和计算机硬件系统之间的结构

    OS位于用户和计算机硬件系统之间,使用户可以快速、准确、可靠地操作计算机硬件以及运行自己的程序。用户有三种方式使用计算机:命令(直接使用操作系统提供的命令来使用计算机硬件)、系统调用(编写一段C程序,通过操作系统提供的系统调用来使用计算机)、图标-窗口(如在Windows系统中通过双击图标等方式使用计算机);

  2. OS是计算机系统资源的管理者

    计算机系统中存在多种硬件和软件资源,总体来说这些资源可以分为:处理机、存储器、IO设备以及文件(包括程序和数据),OS的作用就是管理这些系统资源;

    1. 处理机管理:分配和管理;

    2. 存储器管理:内存分配和回收;

    3. IO设备管理:分配与操作;

    4. 文件管理:存取、共享、保护

      由于多用户同时使用一台计算机时,会发生系统中共享资源需求的冲突。操作系统需要对使用资源的请求作出授权以协调多用户的使用;

  3. OS实现了对计算机资源的抽象

    OS是铺设在计算机硬件上的多层软件的集合;它们不但增强了系统的功能,还隐藏了对硬件操作的细节,实现了对计算机硬件操作的多个层次的抽象模型;随着抽象层次的提高,抽象接口所提供的功能就越强,用户使用起来就越方便;

    这里需要注意的是,操作系统将具体的硬件抽象为一组数据结构来实现对硬件的隐藏,并向上提供一组针对这一数据结构的方法来隐藏对硬件的操作。

操作系统的发展过程

未配置操作系统的计算机系统

  1. 人工方式

    存在两方面缺点,一是用户独占全机;二是CPU等待用户操作;人工操作使得计算机效率低下,这也被称为人机矛盾,主要体现在CPU速度和IO设备速度的不匹配上面。

  2. 脱机输入/输出方式

    用户首先将记录有程序和数据的纸带在外围机的控制下输入磁带上,然后当CPU需要这些数据的时候便直接从磁带上获取;当CPU输出时,也是先将数据从高速内存送到磁带,然后再通过另外的外围机将磁带上的结果通过相应输出设备进行输出;因为系统的输入和输出都是在外围机的控制下完成,即在脱离主机的情况下完成,这种方法称为脱机输入/输出方式。这种方式有两个好处:

    一是减少了CPU等待时间。因为装带、卸带、数据从低速IO设备到高速磁带(或者相反)的操作是在外围机上进行的,并不占用主机时间。但是,这是从一道作业执行的角度来看,当有多道作业需要处理时,作业切换时间仍旧存在,即磁带上还是只有一道作业的数据。

    二是提高了IO速度。CPU从磁带上获取数据的速度要高于从纸带上直接获取的速度。IO速度虽然提高,但和CPU的处理速度还是不匹配的。

这个时期的计算机属于第一代计算机。

单道批处理系统

  1. 为实现对作业的连续处理,将一批作业以脱机输入/输出的方式输入到磁带上,并为系统添加监控程序,计算机系统在监控程序的控制下,连续处理这一批作业;

    虽然系统对作业的处理是成批进行的,但是内存中始终还是只有一道作业,故称为单道批处理系统。单道批处理系统旨在解决人机矛盾和CPU与IO设备速度不匹配的问题。这和操作系统的目的是一致的,但是单道批处理系统仍然不能充分利用系统资源,最终被淘汰。

  2. 单道批处理系统的缺点主要体现在当程序发出IO请求后,CPU便处于等待状态,必须在IO处理结束后才能继续处理,而IO设备的速度又不是很高(和CPU的处理速度相比),所以CPU的空闲时间仍旧很多。

    从这里可以看出,单道批处理系统减小了作业切换时间,即减少了CPU在系统执行某一作业之前以及之后的空闲时间,但是并没有减少CPU在处理作业过程中产生的空闲时间。即磁带上存有多道作业,但是内存中仍然只有一道作业。

这个时期的计算机多属于第二代晶体管计算机

多道批处理系统

  1. 为了进一步提高计算机系统的吞吐量和资源利用效率,出现了多道批处理系统。多道批处理系统将用户提交的作业视为一个队列,然后由作业调度程序按照一定的算法从该队列中选出若干作业调入内存,使它们共享计算机系统资源。由于内存中存在多道作业,当一道作业发出IO请求时,CPU可以执行其他作业,从而减少了CPU空闲时间。
  2. 多道批处理系统的优缺点:
    1. 资源利用效率高:该方式减少了CPU在处理作业中产生的空闲时间,同时内存中存有多道作业,也提高了内存的利用效率,IO设备的利用率也得到了提高;
    2. 系统吞吐量大:这是因为CPU等系统资源一直处于“忙碌”状态,并且只有当作业完成以及无法继续执行时才发生调度切换,系统的开销也相对较小。(即没有频繁的切换)
    3. 平均的周转周期长,因为作业要排队被处理。
    4. 作业和用户之间没有交互能力。一旦作业被送入系统,直到作业完成,用户都不能和作业进行交互,这为程序调试带来不便;
  3. 多道批处理系统需要处理的问题:
    1. 处理机分配问题:既要满足各道作业的运行需求,又要提高处理机的利用率;
    2. 内存分配和保护问题:系统需要为每道作业分配必要的内存空间,同时要保证该空间不被其他作业打扰;
    3. IO设备分配问题:同处理机有相同的要求;
    4. 文件组织和管理问题:系统既要有效组织存放在系统中的大量的程序和数据又要便于用户使用,保证数据的安全性;
    5. 作业管理问题:系统中存在各种作业,需要对它们进行管理;
    6. 用户和系统的接口问题:用户和计算机系统的交互方式,计算机系统应该对用户友好。

从这里可以看出,随着系统功能和性能的提高,所涉及的管理管理越来越多:从没有管理程序到为系统添加监督程序,再到增加调度程序等。而这些软件正是操作系统的重要组成部分。

分时系统

  1. 由于多道批处理系统中用户没有办法同作业进行交互,为满足用户同作业的交互,一种新型的操作系统出现了,即分时系统。分时系统的出现是为了满足用户对人-机交互的需求,此时计算机系统不再单纯的执行计算任务,具有了人-机交互能力的计算机系统,功能上将更加丰富。同时由于计算机系统当时比较昂贵,一台计算机要同时供很多用户共享使用,用户希望共享的过程更加友好即共享状态下的使用就像是独占使用。
  2. 分时系统需要解决的问题:
    1. 及时接受:为解决该问题,分时系统中配有多路卡。多路卡的作用就是分时多路复用,即主机以很快的速度周期性扫各个终端,接收数据。比如,有64个终端共享一台计算机主机,那么只需配置一个64多路卡。同时还需要为每一个终端分配相应的缓冲区进行暂存用户的命令。
    2. 及时处理:人机-交互的关键是用户可以对其程序进行实时控制,这要求用户的程序需要在用户发出控制指令的时候位于内存当中并且频繁获得处理机进行运行;否则就无法实现用户控制;因此,分时系统彻底改变了批处理系统的运行方式:
      1. 作业直接入内存。
      2. 采用轮转运行的方式,引入时间片的概念,每一个程序每次只能运行一个时间片的时间,从而避免一个作业长期占用处理机的现象;
  3. 分时系统的特点:
    1. 多路性:多台终端(显示器和键盘,即输入和输出设备)同时连接到一台主机,按分时原则共享系统资源;
    2. 独立性:各个终端独立运行,互不干扰;
    3. 及时性:用户的请求通常在很短时间里就能得到响应。
    4. 交互性:用户通过终端可以同系统进行广泛的交互。即请求系统提供多方面的服务。

促进多道批处理系统形成和发展的主要动力是提高系统吞吐量和资源利用率,而促进分时系统形成和发展的主要动力则是用户关于人机交互以及共享主机的需求;

实时系统

实时系统是这样的一个系统:系统的正确性不仅通过运算结果确定还取决于产生这些结果的时间,它必须对所接受的信号及时或者实时做出响应。即实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调统一地运行;实时任务可以分为周期性实时任务和非周期性任务,它们都有一个Deadline,包括开始截止时间以及完成截止时间。也可以分为硬实时任务以及软实时任务。硬实时任务要求高实时性;软实时任务则要求比较松。

实时系统常用于工业控制系统、信息查询系统、多媒体系统、嵌入式系统;

推动操作系统发展的主要动力

  1. 不断提高计算机资源的利用率(操作系统的目标之一:有效性);
  2. 方便用户,提供良好的人机交互环境(操作系统的目标之一:方便性);
  3. 计算机硬件的不断发展;
  4. 计算机体系结构的不断完善和发展;
  5. 不断出现的新的应用需求;

操作系统的基本特性

并发

正是由于系统中的程序可以并发执行,才使得OS能有效提高系统中的资源利用率,增加系统的吞吐量。

  1. 并发与并行:并行和并发既相似又有区别。并行性是指额两个或者多个事件在同一时刻发生。并发性是指两个或者多个时间在同一时间间隔内发生;

    在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,某一时刻仅有一道程序在执行,即微观上是交替执行,宏观上并发执行。

    倘若在计算机系统中有多个处理机,那么并发执行的程序便可以被分配到多个处理机上,实现并行执行。

  2. 引入进程:进程是指在系统中能独立运行并作为资源分配的基本单位, 它由指令、数据结构和堆栈等组成,是一个能独立运行的活动实体。

共享

OS环境下的资源共享或者称为资源复用是指系统中资源可以供多个并发执行的进程共同使用。既限定了使用的时间(进程在内存期间)也限定了使用空间(内存)。因为系统内的资源远远小于各个进程的需求总和,所以操作系统需要对共享资源进行管理。由于资源的属性不同,对资源复用的方式也不同,总体上分为两种:互斥共享和同时访问。

  1. 互斥共享

    在一定时间段内,只允许一个进程访问该资源;这种资源也称为临界资源,对临界资源的访问称为互斥式访问。系统中的许多资源都属于临界资源。

  2. 同时访问

    系统中有些资源允许在一段时间内有多个进程同时访问。这里所谓的同时是指,在单处理机环境下是宏观意义,即一段时间内多个进程访问了该资源(也许某个进程对该资源的使用尚未完毕,该资源就被其他进程夺取,这在互斥访问中是不行的),微观意义上来说各个进程对该资源的访问是交替进行的。

共享和并发是多用户多任务系统的两个最基本特征。没有并发,就谈不上共享;没有互斥,共享就的没有意义(对资源的访问可能出错);

虚拟

OS中,将一个物理实体映射为多个逻辑实体的技术成为虚拟。OS中常见的虚拟手段有时分复用技术和空分复用技术

  1. 时分复用技术

    时分复用技术能提高资源利用率的根本原因是,它利用设备为某一任务服务的空闲时间,转而为其他任务服务,设备得到充分利用。

    如虚拟处理机技术,利用进程,让多道程序并发执行,虽然只有一台处理机,但是却有多道程序在运行,逻辑上增加了处理机的数量,提高了处理机的利用率。分时系统就利用了时分复用技术来实现良好的人机交互性。除了虚拟处理机技术,还有虚拟设备的技术。比如虚拟存储器技术,通过分时使用内存空间,使得对内存空间有着较大需求的程序在较小的内存中即可运行。

  2. 空分复用技术

    空分复用技术的例子就是在内存方面,利用存储器的空闲空间分区域存放和运行其他多道程序,以此提高内存的利用效率;

异步

在多道程序环境中,由于进程的并发执行以及对资源的互斥访问等原因,进程的执行并不是一气呵成的,进程何时能够获得处理机得以运行,何时因为访问的资源无法使用而停止都是未知的,即进程的推进方式是人们不可预知的,这就是进程的异步性。

操作系统的主要功能

这部分大体上和操作系统的作用这部分内容相同,但是细节上更为具体~

处理机管理

  1. 进程控制:进程的生(创建进程、分配需要的资源)和死(撤销进程、回收分配的资源)以及进程状态的转换。
  2. 进程同步和互斥:为使多个进程有条不紊地执行,需要一定的机制来协调各个进程的运行。常见的协调方式有:进程互斥,主要发生在对临界资源的访问时;进程同步,主要发生在需要控制进程的执行次序时。最简单的互斥机制就是为临界资源加锁;而实现同步则可以使用信号量机制。
  3. 进程通信:进程通信常发生在需要多个进程相互合作去实现某一目标的时候,进程通信的本质是进程之间的信息交换。当相互合作的进程在同一计算机系统时,发送进程可以使用发送命令直接将信息放入目标进程的消息队列中,当需要通信的进程不在同一计算机系统中时就需要另外一些策略。
  4. 调度:包括作业调度和进程调度。作业调度是通过一定的算法策略从外存上将作业放入内存,分别为它们创建进程,分配资源,使之处于就绪状态;进程调度是从就绪状态的进程队列中选择一定的进程为之分配处理机,使它可以运行。

存储器管理

  1. 内存分配:为每道进程分配内存空间,需要考虑如何分配才能提高存储器的利用效率,减少不必要的空间碎片,如何处理进程在运行时提出的内存申请的问题;分配策略上包括静态分配和动态分配。静态分配是指作业可使用的空间大小在作业装入的时候就已经确定,不允许运行时申请以及移动。动态分配则相反。
  2. 内存保护:存在两种保护,一是各个用户进程只能在自己的内存空间中运行,不得使用其他非共享用户进程的内存空间;二是用户进程不得访问操作系统的程序和数据。常见的内存保护机制是设置两个界限寄存器,标志可使用空间的上界和下界,系统对每条指令所要访问的地址进行越界检查。
  3. 地址映射:编译和链接所得到的可执行文件,其程序地址是从0开始的,需要操作系统将从0开始的逻辑地址转换为物理地址,需要硬件的支持。
  4. 内存扩充:指通过虚拟存储技术,从逻辑上扩充存储器的大小,使更多的用户进程可以并发执行。常见的机制包括:请求调入和置换功能。请求调入允许在仅装入部分程序和数据的情况下就启动该程序的执行,当所需要的指令或者数据不在内存空间的时候,通过向OS发出请求,由OS将所需要的部分调入内存。置换则是指,允许将内存中暂时不用的程序和数据移至硬盘,以腾出内存空间。

设备管理

总体来说,设备管理内容包括,响应进程的IO请求、为进程分配IO设备,完成IO操作;提高IO速度,提高CPU和IO设备的利用率。

  1. 缓冲管理:通过在CPU和IO设备之间设置缓冲,有效解决IO设备和CPU的速度不匹配问题,提高CPU的利用率,提高系统的吞吐量。常见策略包括单缓冲、双缓冲以及缓冲池等。
  2. 设备分配:根据用户IO请求、系统现有资源状况以及设备分配策略来分配设备。同时还需要考虑,设备分配完后,系统是否安全等问题。
  3. 设备处理:检查IO请求是否合理,了解设备状态,读取有关的参数和设置设备的工作方式,然后项设备控制器发出IO命令,启动IO设备完成相应IO操作,响应中断请求并调用相应中断处理程序进行处理。

文件管理

  1. 文件存储空间的管理:由文件系统统一管理文件以及文件的存储空间以提高外存的利用率和读取速度,为此系统需要设置相应的数据结构,用于记录文件存储空间的使用情况。
  2. 目录管理:为每个文件建立一个目录项,以记录文件的详细情况。并通过对目录项的管理提供文件的共享以及快速的目录查询等功能,提高文件检索速度。
  3. 文件的读写管理和保护:文件的读写管理主要体现在对文件读写指针的管理;文件的保护主要是防止未经核准的用户存取文件以及防止用户以错误方式使用文件。

提供操作系统与用户之间的接口

用户接口包括三类:联机用户接口、脱口用户接口和程序用户接口;

  1. 联机用户接口:由一组键盘操作命令及命令解释程序组成。通过在终端或者控制台输入一条命令然后通过命令解释程序解释执行来实现对用户作业的控制;
  2. 脱机用户接口:为批处理作业用户提供,用户首先将对作业进行的控制和干预命令实现写到作业说明书上,然后将其同作业一起提交给系统,系统处理作业的时候会通过命令解释程序对作业控制说明书上的命令解释执行,以此实现用户对其作业的控制;
  3. 图形用户接口:就是通过图形化的操作界面,用容易识别的各种图标来将系统的各项功能、各种应用程序和文件直观表现出来。以鼠标取代命令的键入等。
  4. 程序接口:主要为用户的程序使用操作系统的服务提供、访问系统资源提供便利。它由一组系统调用组成。是用户程序取得系统服务的唯一途径。

猜你喜欢

转载自blog.csdn.net/slx3320612540/article/details/80708178