操作系统的主要功能有哪些

操作系统的主要功能有哪些

  操作系统是计算机系统中最基本的系统软件,它用于有效地管理系统资源,并为用户使用计算机提供了便利的环境。下面小编为大家介绍操作系统的主要功能有哪些吧!

  主要功能

  操作系统的主要功能是资源管理,程序控制和人机交互等。计算机系统的资源可分为设备资源和信息资源两大类。设备资源指的是组成计算机的硬件设备,如中央处理器,主存储器,磁盘存储器,打印机,磁带存储器,显示器,键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各种数据,如文件,程序库,知识库,系统软件和应用软件等。  操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。以现代观点而言,一个标准个人电脑的OS应该提供以下的功能:

  进程管理(Processing management)

  内存管理(Memory management)

  文件系统(File system)

  网络通讯(Networking)

  安全机制(Security)

  用户界面(User interface)

  驱动程序(Device drivers)

  资源管理

  系统的设备资源和信息资源都是操作系统根据用户需求按一定的策略来进行分配和调度的。操作系统的存储管理就负责把内存单元分配给需要内存的程序以便让它执行,在程序执行结束后将它占用的内存单元收回以便再使用。对于提供虚拟存储的计算机系统,操作系统还要与硬件配合做好页面调度工作,根据执行程序的要求分配页面,在执行中将页面调入和调出内存以及回收页面等。

  处理器管理或称处理器调度,是操作系统资源管理功能的另一个重要内容。在一个允许多道程序同时执行的系统里,操作系统会根据一定的策略将处理器交替地分配给系统内等待运行的程序。一道等待运行的程序只有在获得了处理器后才能运行。一道程序在运行中若遇到某个事件,例如启动外部设备而暂时不能继续运行下去,或一个外部事件的发生等等,操作系统就要来处理相应的事件,然后将处理器重新分配。

  操作系统的设备管理功能主要是分配和回收外部设备以及控制外部设备按用户程序的要求进行操作等。对于非存储型外部设备,如打印机、显示器等,它们可以直接作为一个设备分配给一个用户程序,在使用完毕后回收以便给另一个需求的用户使用。对于存储型的外部设备,如磁盘、磁带等,则是提供存储空间给用户,用来存放文件和数据。存储性外部设备的管理与信息管理是密切结合的。

  信息管理是操作系统的一个重要的功能,主要是向用户提供一个文件系统。一般说,一个文件系统向用户提供创建文件,撤销文件,读写文件,打开和关闭文件等功能。有了文件系统后,用户可按文件名存取数据而无需知道这些数据存放在哪里。这种做法不仅便于用户使用而且还有利于用户共享公共数据。此外,由于文件建立时允许创建者规定使用权限,这就可以保证数据的安全性。

  程序控制

  一个用户程序的执行自始至终是在操作系统控制下进行的。一个用户将他要解决的问题用某一种程序设计语言编写了一个程序后就将该程序连同对它执行的要求输入到计算机内,操作系统就根据要求控制这个用户程序的执行直到结束。操作系统控制用户的执行主要有以下一些内容:调入相应的编译程序,将用某种程序设计语言编写的源程序编译成计算机可执行的目标程序,分配内存储等资源将程序调入内存并启动,按用户指定的要求处理执行中出现的各种事件以及与操作员联系请示有关意外事件的处理等。

  人机交互

  操作系统的人机交互功能是决定计算机系统“友善性”的一个重要因素。人机交互功能主要靠可输入输出的外部设备和相应的软件来完成。可供人机交互使用的设备主要有键盘显示、鼠标、各种模式识别设备等。与这些设备相应的软件就是操作系统提供人机交互功能的部分。人机交互部分的主要作用是控制有关设备的运行和理解并执行通过人机交互设备传来的有关的各种命令和要求。

  虚拟内存

  虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

  用户接口

  用户接口包括作业一级接口和程序一级接口。作业一级接口为了便于用户直接或间接地控制自己的作业而设置。它通常包括联机用户接口与脱机用户接口。程序一级接口是为用户程序在执行中访问系统资源而设置的,通常由一组系统调用组成。

  在早期的单用户单任务操作系统(如DOS)中,每台计算机只有一个用户,每次运行一个程序,且次序不是很大,单个程序完全可以存放在实际内存中。这时虚拟内存并没有太大的用处。但随着程序占用存储器容量的增长和多用户多任务操作系统的出现,在程序设计时,在程序所需要的存储量与计算机系统实际配备的主存储器的容量之间往往存在着矛盾。例如,在某些低档的计算机中,物理内存的容量较小,而某些程序却需要很大的内存才能运行;而在多用户多任务系统中,多个用户或多个任务更新全部主存,要求同时执行独断程序。这些同时运行的程序到底占用实际内存中的哪一部分,在编写程序时是无法确定的,必须等到程序运行时才动态分配。

  用户界面

  用户界面(User Interface,简称 UI,亦称使用者界面[1])是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。

  用户界面是介于用户与硬件而设计彼此之间交互沟通相关软件,目的在使得用户能够方便有效率地去操作硬件以达成双向之交互,完成所希望借助硬件完成之工作,用户界面定义广泛,包含了人机交互与图形用户接口,凡参与人类与机械的信息交流的领域都存在着用户界面。用户和系统之间一般用面向问题的受限自然语言进行交互。目前有系统开始利用多媒体技术开发新一代的用户界面。

  操作系统原理

  什么是进程?

  进程的出现,是为了是操作系统可以以一种有序的方式管理应用的执行,以达到以下目的:

  资源对多个应用程序是可用的;

  物理处理器在多个应用程序之间切换以保证所有程序都在执行中;

  处理器和I/O设备能得到充分利用;

  所有现在操作系统采用的方法都是依据一个或者多个进程存在的应用程序执行的一种模型。 到底什么是进程呢?

  进程是一组元素组成的实体,它可以是一个正在执行中的程序,也可以是一个能分配给处理器并由处理器执行的实体。

  进程的两个基本元素是:程序代码(program code)和代码相关联的数据集(set of data)。

  在进程执行时,任意给定一个时间,进程都可以唯一地表征为以下元素:

  标识符:进程的唯一标识符,用来区别其他进程

  状态:进程在不同的生命周期有着不同的状态

  优先级:相对于其他进程的优先级

  程序计数器:程序中即将被执行的下一条指令的地址

  内存指针:包含程序代码和进程相关数据的指针,还有和其他进程共享内存块的指针

  I/O状态信息:包括显示的I/O请求、分配给进程的I/O设备和被进程使用的文件列表等

  记账信息:可能包括处理器时间总和、使用的时钟数总和、时间限制、记账号等

  上述的列表信息被存放在一个称为进程控制块的数据结构中,该控制块由操作系统创建 和管理。

  进程状态

  在任何时刻,进程可以处于以下两种状态之一:运行态和未运行态,这是最简单的两状态模型。在这个模型中,会有一个调度器(dispatcher),使处理器从一个进程切换到另外一个进程。

  内存状态转换'

  由于存在着一些处于非运行状态但已经就绪等待执行的进程,而同时存在另外一些处于堵塞状态等待I/O操作结束的进程。

  因此,解决这一问题比较自然的方法是使用五状态模型: 运行态、就绪态、堵塞/等待态、新建态和退出态。

  五状态模型'

  (1)被挂起的进程

  上述的基本状态提供了一种为进程建立系统模型的方法,并指导系统的实现。但是,往这个模型中添加其他状态也是合理的。

  由于处理器的运行速度远大于I/O,以至于内存中所有的进程都在等待I/O的情况也是很常见的。因此,即使是多道程序设计,大多数处理器仍然可能处于空闲状态。

  一种解决方案是增大内存,使得内存中可以存在更多的进程。然而这种方案显然是治标不治本的。

  另外一种解决方案是交换(swapping)。当内存中没有处于就绪状态的进程时,操作系统就把被阻塞的进程换出到磁盘中的挂起队列(suspend queue)。操作系统在此之后取出挂起队列中的另一个进程,或者接受一个新进程,将其加载到内存中运行。这时,在进程状态模型中添加了另外一个状态:挂起态。

  当操作系统从挂起队列中取出一个依然阻塞的进程是毫无意义的,因为它仍然没有准备好执行。所以为了区分被挂起的进程哪些是可以取出的,需要设计另外一种挂起模型:

  为了区分,需要四个状态:

  就绪态:进程在内存中并可以执行

  阻塞态:进程在进程中并等待一个事件

  阻塞/挂起态:进程在外存中并等待一个事件

  就绪/挂起态:进程在外存中,但是只要被载入内存就可以执行

  总结一下挂起的进程的概念:

  进程不能被立即执行。

  进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的 的发生不会使进程立即执行。

  为组织进程的执行,可以通过代理把这个进程置于挂起状态,代理可以是进程自己,也 可以是父进程或者操作系统。

  除非代理显示的命令操作系统进行状态转换,否则进程无法从这个状态中转移。

  除了因为提供更多的`内存空间,进程还会因为什么原因被挂起呢?

  在所有这些导致进程挂起的情况中,挂起进程的活动都是由最初请求挂起的代理请求的。

  进程描述

  操作系统控制计算机系统内部的事件,它为处理器执行进程而进行调度「schedule」和分派 「dispatch」,给进程分配资源,并响应用户程序的基本服务请求。因此,操作系统可以被视为管理系统资源的实体。

  操作系统为了控制进程和管理资源需要哪些信息呢?

  >>(1)操作系统的控制结构

  为了管理进程和资源,操作系统构造并维护它所管理的每个实体的信息表。

  操作系统维护四种不同类型的表:内存、I/O、文件和进程。

  内存表「memory tables」用于跟踪内存和外存。内存表必须包括一下信息:

  分配给进程的内存

  分配给进程的外存

  内存块或者虚拟内存块的保护属性

  管理虚拟内存所需要的任何信息

  I/O表「I/O tables」用于管理计算机系统中的I/O设备和通道。在任何给定的时刻,一个I/O 设备或者是可用的,或者是已分配给某个特定的进程。如果正在进行I/O操作,则操作系统需 要知道I/O操作的状态和作为I/O传送的源与目标的内存单元。

  文件表「file tables」用于提供关于文件是否存在、文件在外存中的位置、当前状态和属性 的信息。

  进程表「process tables」为了管理和操作进程所必须使用的表。

  (2)进程控制结构

  操作系统在管理和控制进程时,首先必须知道进程的位置,然后,它必须知道在管理时所必需的进程的属性(如进程ID、进程状态)。

  进程位置

  想一个最基本的问题:进程的物理表示是什么?

  回想之前关于进程的定义,进程至少包括一个或者一组被执行的程序,与这些程序相关联的 局部变量、全局变量和任何已定义常量的数据单元。因此,一个进程至少包括足够的内存空 间,以保存该进程的程序和数据;此外,程序的执行通常设计用于跟踪过程调用和过程间参 数传递的栈。最后,与每个进程相关联的还有操作系统用于控制进程的许多属性,也就是进 程控制块。程序、数据、栈和属性的集合称为进程映像「process image」。

  在最简单的情况下,进程映像保存在邻近的活连续的存储块中。因此,操作系统必须知道每 个进程在磁盘中的位置;对于在内存中的进程,需要知道其在内存中的位置。

  现代操作系统嘉定分页硬件允许用不连续的物理内存来支持部分常驻内存的程序。在任何给 定的时刻,进程映像的一部分可以在内存中,剩余部分可以在外存中。因此,操作系统维护 的进程表必须表明每个进程映像中每页的位置。

  进程属性

  操作系统所需要的每个进程信息的简单分类:

  进程标识信息

  进程状态信息

  进程控制信息

  所有的操作系统中,每个进程都分配了唯一的一个数字来表示进程标识符。除此之外, 还分配一个用户标识符,用于表明拥有该进程的用户。

  处理器状态信息包括处理器寄存器的内容。当进程被中断时,所有寄存器中的信息必须 被保存起来,使得进程恢复执行时,这些信息可以被恢复。

  进程控制块中的第三类主要信息是进程控制信息,用于操作系统控制和协调各种活动进 程所需要的额外信息。

  进程控制块中可能还包含构造信息,包括将进程控制块链接起来的指针。

  进程控制块的作用

  进程控制块是操作系统中最重要的数据结构。操作系统中的每个模块,包括那些设计调度、 资源分配、中断处理、性能检测和分析的模块,都可能读取或者修改进程控制块。

  进程控制

  >>(1)执行模式

  为了保护操作系统和重要的操作系统表不受用户程序的干涉,操作系统通常使用两种模式管理进程:特权模式『也称为系统模式(system mode)、控制模式(control mode)或者内核模式 (kernel mode)』,和用户模式。

  在内核模式下,软件具有对处理器及所有指令、寄存器和内存的控制能力,这一级的控制对用户程序不是必需的,并且为了安全也不是用户程序可以访问的。

  >>(2)进程创建

  操作系统一般安装以下步骤创建进程:

  给进程分配一个唯一的进程标识符。此时,主进程表中增加一条新表项,其对应该进程。

  给进程分配空间。包括进程映像中的所有元素。

  初始化进程控制块。进程控制信息部分的初始化基于标准默认值和为该进程所请求的属 性。

  设置正确的连接。

  创建或者扩充其他数据结构。

  >>(3)进程切换

  关于进程切换,有着一些问题。

  进程什么时候进程切换?

  执行模式切换和进程切换之间有什么区别?

  进程切换时,操作系统必须对它控制的各种数据结构做什么?

  何时切换进程

  通常,下列原因可能造成进程切换。

  模式切换

  如果存在一个未处理的中断,处理器会做以下工作:

  把程序计数器置成中断处理程序的开始地址。

  从用户模式切换到特权模式,使得中断处理代码可以包含有特权的指令。

  进程的状态变化

  如果当前正在运行的进程被转换到另外一个状态(就绪、挂起等),则操作系统必须使其环境发生实质性的变化:

  保存处理器的上下文环境,包括程序计数器和其他寄存器。

  更新当前处于运行态进程的进程控制块,包括将进程状态改变到另外一个状态。

  将进程的进程控制块移 到相应的队列。

  选择另一个进程执行。

  更新所算则进程的进程控制块。

  更新内存管理的数据结构。

  恢复处理器在被选择的进程最近一次切换出运行状态时的上下文环境。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 yyfangchan@163.com (举报时请带上具体的网址) 举报,一经查实,本站将立刻删除