操作系统基本概念

来源:互联网 发布:淘宝电话人工服务400 编辑:程序博客网 时间:2024/04/28 18:52

操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

操作系统是管理计算机硬件的程序,它还为应用程序提供基础,并且充当计算机硬件和计算机用户的中介。操作系统完成这些任务的方式多种多样。大型机的操作系统设计的主要目的是为了充分优化硬件的使用率,个人计算机的操作系统是为了能支持从复杂游戏到商业应用的各种事物,手持计算机的操作系统是为了给用户提供一个可以与计算机方便交互并执行程序的环境。因此,有的操作系统设计是为了方便,有的设计是为了高效,而有的设计目标则是兼而有之。

1、操作系统做什么

注:计算机系统结构作为从程序设计者角度所看到的计算机属性,在计算机系统的层次结构中处于机器语言级;而计算机组织作为计算机系统结构的逻辑实现和物理实现,其任务就是围绕提高性能价格比的目标,实现计算机在机器指令级的功能和特性。研究和建立各功能部件间的相互连接和相互作用,完成各个功能部件内部的逻辑设计等是逻辑实现的内容;把逻辑设计深化到元件、器件级,则是物理实现的内容。

计算机系统可以大致分为四个组成部分:计算机硬件、操作系统、系统程序与应用程序和用户

硬件为系统提供基本的计算资源,应用程序规定了用户按何种方式使用这些资源,操作系统控制和协调各用户的应用程序对硬件的使用。

从两个视角探索操作系统:用户视角和系统视角。

A、用户视角:

对于PC用户,系统设计是为了让单个用户单独使用其资源,其目的是优化用户所进行的工作。对于这种情况,操作系统的设计目的是为了用户使用方便,性能是次要的,而且不在乎资源使用率。

对于大型机用户,操作系统设计为资源使用做了优化:确保所有的CPU时间、内存和I/O都得到充分使用,并且确保没有用户使用超出其权限以外的资源。

对于工作站用户,操作系统的设计目的是个人使用性能和资源使用率的折中。

对于手持计算机用户,方便个人使用,最大化利用电池能源是操作系统设计的要点。

B、系统视角:

从系统视角,操作系统相当于资源分配器。操作系统管理CPU时间、内存空间等系统资源,在面对许多甚至冲突的资源请求,操作系统必须决定如何为每个程序和用户分配资源,以便计算机系统能有效而公平的运行。

2、计算机系统组织

计算机通过运算器、存储器、控制器、输入输出子系统等主要功能部件的相互连接和相互作用,借以实现机器指令级的各种功能和特性。从最基本的功能和作用原理来说,计算机是在控制器的全面控制下,接收经数字化编码的输入信息(程序和数据),把它存放在存储器中,根据程序的要求对数据进行快速运算,产生结果数据输出。因此,可以把运算器、存储器、控制器、输入输出子系统看成是一台计算机的逻辑组成中最基本的功能部件。

存储设备层次(按总线速率由高到低):

寄存器——高速缓存(Cache)——主存——磁盘——光盘——磁带

3、计算机系统体系结构

通过采用的通用处理器的数量来分类。

A、单处理器系统

在单处理器系统中,有一个主CPU能够执行一个通用指令集,包括来自用户进程的指令。

B、多处理器系统

多处理器系统的优点:

增加吞吐量;规模经济;增加可靠性。

分类:

非对称多处理器(asymmetric multiprocessing)系统——主从关系;

对称多处理器(symmetric multiprocessing)系统——对等关系。

C、集群系统

集群计算机共享存储并通过局域网连接或更快的内部连接。

分类:

非对称集群:一部分机器处于热备份模式,其余的机器运行应用程序。

对称集群:两台或多个主机都运行程序,互相监视。

4、操作系统结构

操作系统理论研究者有时把操作系统分成四大部分:

驱动程序:最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。

内核:操作系统内核部分,通常运行在最高特权级,负责提供基础性、结构性的功能。

接口库:是一系列特殊的程序库,它们职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。例如,GNU C运行期库就属于此类,它把各种操作系统的内部编程接口包装成ANSI C和POSIX编程接口的形式。

外围:是指操作系统中除以上三类以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中,大部分系统服务,以及UNIX/Linux中各种守护进程都通常被划归此列。

在这里,需要介绍一些关于内核的知识。

内核是操作系统最核心最基础的构件,内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。

内核的结构可以分为单内核、微内核、混合内核、外内核等。

单内核(Monolithic kernel),又称为宏内核。此架构的特性是整个核心程序都是以核心空间(Kernel Space)的身份及监管者模式(Supervisor Mode)来运行(宏内核被实现为运行在单一地址空间的单一的进程,核心提供的所有服务,都以特权模式,在这个大型的核心地址空间中运作,这个地址空间被称为核心空间(kernel space))。相对于其他类型的操作系统架构,如微核心架构或混核心架构等,这些核心会定义出一个高级的虚拟接口,由该接口来涵盖描述整个电脑硬件,这些描述会集合成一组硬件描述用词,有时还会附加一些系统调用,如此可以用一个或多个模块来实现各种操作系统服务,如进程管理、共时(Concurrency)控制、存储器管理等。

微内核(Microkernel),又称为微核心。微内核结构是1980年代产生出来的较新的内核结构,强调结构性部件与功能性部件的分离。微核心的设计理念,是将系统服务的实现,与系统的基本操作规则区分开来。它实现的方式,是将核心功能模块化,划分成几个独立的进程,各自运行,这些进程被称为服务器(service)。所有的服务器进程,都运行在不同的地址空间。只有需要绝对特权的进程,才能在具特权的运行模式下运行,其余的进程则在用户 空间运行。

混合内核(Hybrid kernel)像微内核结构,只不过它的组件更多的在核心态中运行,以获得更快的执行速度。混合内核,一种操作系统内核架构,结合整块性核心与单核心两种设计方法。它的架构实作方式接近于整块性核心。最有名的混合核心为Windows NT核心与XNU。

外内核(Exokernel)的设计理念是尽可能的减少软件的抽象化,这使得开发者可以专注于硬件的抽象化。外核心的设计极为简化,它的目标是在于同时简化传统微内核的讯息传递机制,以及整块性核心的软件抽象层。外核的目标就是让应用程序直接请求一块特定的物理空间,一块特定的磁盘块等等。系统本身只保证被请求的资源当前是空闲的,应用程序就允许直接存取它。

在众多常用操作系统之中,除了QNX和基于Mach的UNIX等个别系统外,几乎全部采用单内核结构,例如大部分的Unix、Linux,以及Windows(微软声称Windows NT是基于改良的微内核架构的,尽管理论界对此存有异议。

5、操作系统操作

*双重模式操作*

为了确保操作系统地正常执行,必须区分操作系统代码和用户定义代码的执行。许多操作系统所采取的方法是提供硬件支持以允许区分各种执行模式。

至少需要两种独立的操作模式:用户模式(user mode)和监督程序模式(monitor mode)(也称为管理模式(supervisor mode)、系统模式(system mode)或特权模式(privileged mode))。在计算机硬件中增加一个称为模式位(mode bit)的位以表示当前模式:监督程序模式(0)和用户模式(1)。有了模式位,就可以区分操作系统所执行的任务和用户所执行的任务。

系统引导时,硬件开始处于内核模式。接着,装入操作系统,开始在用户模式下执行用户进程。一旦出现陷阱或中断,硬件会从用户模式切换到内核模式。因此,只要操作系统获得了对计算机的控制,它就处于内核模式。系统在将控制交还给用户程序时会切换到用户模式。

双重模式操作提高了保护操作系统和用户程序不受错误用户程序影响的手段。其实现为:将能引起损害的机器指令作为特权指令。如果在用户模式下试图执行特权指令,那么硬件并不执行该指令,而是认为该指令非法,并将其以陷阱的形式通知操作系统。

系统调用为用户程序请求操作系统代表用户程序完成预留给操作系统的任务提供了方法。系统调用通常采用陷阱到中断向量中的一个指定位置的方式。当系统调用被执行时,硬件会将它作为软件中断。控制权会通过中断向量转交到操作系统的中断处理程序,模式位设置成内核模式。系统调用服务程序是操作系统的一部分。内核检查中断指令以确定发生了什么系统调用;参数表示用户程序请求什么类型的服务。请求所需要的其他信息可通过寄存器、堆栈或内存来传递。内核检验参数是否正确和合法,再执行请求,然后将控制返回到系统调用之后的指令。

6、进程管理

进程是系统工作的单元。系统由多个进程组成,其中一些是操作系统进程(执行系统代码),其余的是用户进程(执行用户代码)。所有这些进程可以潜在地并发执行,如通过在单CPU上采用CPU复用来实现。

操作系统负责下述与进程管理相关的活动:

*创建和删除用户进程和系统进程;

*挂起和重启进程;

*提供进程同步机制;

*提供进程通信机制;

*提供死锁处理机制。

7、内存管理

内存是现代计算机系统操作的中心。内存通常是CPU所能直接寻址和访问的唯一大容量存储器。

操作系统负责下列有关内存管理的活动:

*记录内存的哪部分正在被使用及被谁使用;

*当有内存空间是,决定哪些进程可以装入内存;

*根据需要分配和释放内存空间。

8、存储管理

操作系统对存储设备上的物理属性进行了抽象,定义了逻辑存储单元,即文件。操作系统将文件映射到物理介质上,并通过这些物理介质来访问这些文件。

A、文件系统管理

文件管理是操作系统最为常见的组成部分。文件是由其创建者定义的一组相关信息的集合。通常,文件表示程序(源程序和目标程序)和数据。

操作系统负责下列有关文件管理的活动:

*创建和删除文件;

*创建和删除目录来组织文件;

*提供操作文件和目录的原语;

*将文件映射到二级存储上;

*在稳定介质上备份文件。

B、大容量存储器管理

绝大多数现代计算机系统都采用硬盘作为主要非易失存储介质来存储程序和数据。许多程序都存储在硬盘上,要执行时才调入内存,在执行时将硬盘作为处理的来源地和目的地。因此,硬盘的适当管理对计算机系统尤为重要。

操作系统负责下列有关硬盘管理的活动:

*空闲空间管理;

*存储空间分配;

*硬盘调度。

C、高速缓存

高速缓冲存储器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。硬件高速缓存基于著名的局部性原理,该原理既适用于程序结构也适用于数据结构。在有高速缓冲存储器的计算机系统中,中央处理器存取主存储器的地址划分为行号、列号和组内地址三个字段。于是,主存储器就在逻辑上划分为若干行;每行划分 为若干的存储单元组;每组包含几个或几十个字。高速存储器也相应地划分为行和列的存储单元组。二者的列数相同,组的大小也相同,但高速存储器的行数却比主 存储器的行数少得多。

高速缓存主要由三大部分组成:

*Cache存储体:存放由主存调入的指令与数据块。

*地址转换部件:建立目录表以实现主存地址到缓存地址的转换。

*替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。

操作系统执行高速缓存管理,对高速缓存大小和置换策略的仔细选择可以极大提高性能。

D、I/O子系统

I/O子系统包括如下几个部分:

*一个包括缓冲、高速缓存和假脱机的内存管理部分;

*通用设备驱动器接口;

*特定硬件设备的驱动程序。

9、保护和安全

保护是一种控制进程或用户对计算机资源的访问的机制。这个机制必须为强加控制提供一种规格说明方法和一种强制执行方法。

安全的主要工作是防止系统不受外部或内部攻击。这些攻击范围很广,包括病毒和蠕虫、拒绝服务攻击、身份偷窃、服务偷窃。

10、分布式系统

分布式系统是将一组物理上分开来的、各种可能的异构的计算机系统通过网络连接在一起,为用户提供系统所维护的各种资源的计算机的集合。

分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。

网络操作系统(Network Operating System)提供跨网络的文件共享、包括允许不同计算机上的进程进行消息交换的通信方法等功能。

11、专用系统

*实时嵌入式系统

*多媒体系统

*手持系统

12、计算环境

*传统计算

*客户机-服务器计算

*对等计算

*基于Web的计算

 

0 0
原创粉丝点击