该模型由5部分组成,其中主机部分由运算器、存储器控制器组成,外设部分由输入设备和输出设备组成。
没有配置软件的计算机称为裸机。裸机仅仅构成了计算机系统的硬件基础。而实际呈现在用户面前的计算机系统是经过若干层的软件改造之后的计算机。
计算机的硬件、软件以及软件的各部分之间是一种层次结构的关系,其上层是操作系统,通过操作系统提供的资源管理功能和方便用户使用的各种服务功能,将裸机改造成功能更强大、使用更方便的机器(通常称为虚拟机或扩展机)。而各种实用程序和应用程序在操作系统之上,这些程序均以操作系统为支撑,并向用户提供完成工作所需的各种服务。
操作系统是裸机上的第一层软件,是对硬件功能的首次扩充。引入操作系统的目的是:提供一个计算机用户与计算机硬件系统之间的接口,使计算机系统更易于使用;有效地控制和管理计算机系统中的各种硬件和软件资源,使之得到更有效的利用;合理地组织计算机系统的工作流程,以改善系统性能。
从功能分解的角度出发,考虑操作系统的结构,可将操作系统分为若干个层次,每一层次完成特定的功能,从而构成一个虚拟机,并为上一层提供支持,构成它的运行环境。通过逐层的功能扩充,最终完成操作系统虚拟机,从而为用户提供全套的服务,满足用户的要求。
并发和共享是操作系统的两个最基本的特征,二者之间互为存在条件。一方面,资源的共享是以程序的并发执行为条件的,若系统不允许程序的并发执行,自然不存在资源的共享问题;另一方面,若系统不能对资源共享实施有效的管理,也必将影响程序的并发执行,甚至根本无法并发执行。
操作系统的职能是负责系统中软硬件资源的管理,合理地组织计算机的工作流程,并为用户提供一个良好的工作环境和友好的使用界面。
操作系统的五大基本功能:处理器管理、存储器管理、设备管理、文件管理和用户接口。
处理器管理的主要任务是对处理器的分配和运行实施有效的管理。在多道程序环境下处理器的分配和运行是以进程为基本单位的,因此对处理器的管理可归结为对进程的管理。
存储器管理的主要任务是对内存进行分配、保护和扩充。
计算机外设的管理是操作系统中最庞杂、琐碎的部分。设备管理的主要任务是对计算机系统内的所有设备实施有效管理。
操作系统中负责信息管理的部分称为文件系统,因此称为文件管理。文件管理的主要任务是有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题。
为方便用户使用操作系统,操作系统还提供了用户接口。
操作系统的发展过程其实和早期人们遇到的问题有很大关系,例如,为解决处理器和设备的速度矛盾而提出了脱机输入/输出技术,为减少人为干预而产生了批处理技术等,由此可见,操作系统的发展是对早期计算机系统问题非常自然的解决方式。
操作系统经历了如下发展历程
手工操作(无操作系统)
脱机输入/输出技术是为了解决 CPU 和 I/O 设备之间速度不匹配的矛盾而提出的,此技术减少了 CPU的空闲等待时间,提高了 IO 速度。
批处理系统(操作系统开始出现)
先把磁带上的第一个作业传送到内存,并把运行的控制权交给第一个作业,当第一个作业处理完后又把控制权交还给监督程序,由监督程序再把第二个作业调入内存。计算机系统按这种方式对磁带上的作业自动地一个接一个进行处理,直至将磁带上的所有作业全部处理完毕,这样便形成了早期的批处理系统。
特点:自动性,顺序性,单道性。
缺点:I/O操作时,CPU无事可做。
多道批处理操作系统
特点:多道性,宏观上多任务并行,微观上多任务分片串行。
优点:由于提高了CPU,内存和I/O设备的利用率,因此系统吞吐量得到提高。
需要解决的问题
分时系统
实时系统
微机操作系统
嵌入式操作系统
嵌入式操作系统是运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作和控制的各种部件装置等资源进行统一协调、调度、指挥和控制的软件系统。
集群系统
集群系统(Clustered System)将两个或多个独立的系统耦合起来共同完成一项任务。集群的定义尚未定性,通常被大家接受的定义是集群计算机共享存储并通过LAN 网络紧密连接。集群通常有若干个节点计算机和一个或多个监视计算机,其中监视计算机用于对节点进行管理控制、发布工作指令等。
网络操作系统
网络操作系统是通过通信设施将物理上分散的、具有自治功能的多个计算机系统互连起来,实现信息交换、资源共享、可互操作和协作处理的系统。其目标是实现相互通信及资源共享。
分布式操作系统
分布式系统是指多个分散的处理单元经互联网络连接而成的系统,其中每个处理单元既具有高度自治性,又相互协同,能在系统范围内实现资源管理、动态分配任务,还能并行地运行分布式程序。
特点:统一性、共享性、透明性、自治性。
为了避免操作系统及其关键数据(如 PCB 等)受到用户程序有意或无意的破坏,通常将处理器的执行状态分为两种:核心态与用户态。
用户态程序不能直接调用核心态程序,而是通过执行访问核心态的命令,引起中断,由中断系统转入操作系统内的相应程序,例如,在系统调用时,将由用户态转换到核心态。
特权指令:只能由操作系统内核部分使用,不允许用户直接使用的指令,如I/0 指设置中断屏蔽指令、清内存指令、存储保护指令和设置时钟指令。
操作系统中一些与硬件关联较紧密的模块(如时钟管理、中断处理、设备驱动等)以及运行频率较高的程序(如进程管理、存储器管理、设备管理等)构成了操作系统的内核。内核的指令操作工作在核心态。
中断,也称外中断,是系统正常功能的一部分,例如,因进程调度使系统停止当前运行的进程转而执行其他进程,或者因缺少所需资源而中断当前操作,等待资源的到达,在系统处理完其他事情之后会继续执行中断前的进程。
异常,也称内中断,是由错误引起的,如文件损坏、进程越界等
通常异常会引起中断,而中断未必是由异常引起的。
系统调用是操作系统提供的用户接口之一,是由操作系统实现的所有系统调用所构成的集合,即程序接口或应用编程接口(Application ProgrammingInterface,API),是应用程序同系统之间的接口。
操作系统的主要功能是为应用程序的运行创建良好的环境。为了达到这个目的,内核提供了一系列具备预定功能的内核函数,通过一组称为系统调用(System Call)的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,并将处理结果返回给应用程序。如果没有系统调用和内核函数,用户将不能编写大型应用程序。操作系统提供的系统调用通常包括进程控制、文件系统控制(文件读写操作和文件系统操作)系统控制、内存管理、网络管理、socket 控制用户管理以及进程间通信(信号、消息、管道、信号量和共享内存)。
当用户需要执行系统调用时,首先准备并传递系统调用所需的参数,通过陷入(trap)指令进入操作系统的系统内核,此时将从用户态进入内核态;之后执行相应的系统调用函数,使用特定的系统内核功能;最后将处理结果返回给用户进程,此时将从内核态返回用户态。
操作系统的体系结构就是操作系统的组成结构。操作系统的体系结构主要包括模块组合结构、层次结构和微内核结构。
模块组合结构是软件工程出现以前的早期操作系统以及目前一些小型操作系统的体系结构。操作系统是一个有多种功能的系统程序,可以看作一个整体模块,也可以看作由若干个模块按一定的结构方式组成的系统。系统中的每一个模块都是根据它们要完成的功能来划分的,这些功能模块按照一定的结构方式组合起来,协同完成整个系统的功能。
若要弥补模块组合结构中模块间调用存在的不足,就必须改善模块间毫无规则的相互调用、相互依赖的关系,尤其要清除模块间的循环调用。层次结构的设计就是从这一点出发,力求使模块之间调用的无序性变为有序,减少了模块调用的无规则性。按层次结构来设计操作系统,就是将操作系统的所有功能模块按功能的调用次序排列成若干层,使得功能模块之间只存在单向调用和单向依赖。
随着网络技术的普遍应用和发展,很有必要为用户提供一个符合处理分布式信息的分布式系统环境。因此,操作系统可以采用微内核结构。微内核的主要思想是:在操作系统内核中只留下一些最基本的功能,而将其他服务尽可能地从内核中分离出去,由若干个运行在用户态下的进程(即服务器进程)来实现,形成所谓的“客户/服务器”模式,即C/S 模式。普通用户进程(即客户进程)可通过内核向服务器进程发送请求,以取得操作系统的服务。从微内核结构的主要思想可以看出,它非常适用于分布式系统。
优点:首先,每个服务进程运行在独立的用户进程中,即便某个服务器失败或产生问题,也不会引起系统其他服务器和其他组成部分的崩溃,可靠性好;其次,系统具有很好的灵活性,只要接口规范,操作系统可以方便地增删服务功能;再次,便于维护,即修改服务器的代码不会影响系统其他部分;最后,这种结构的操作系统适合分布式处理的计算环境。
户进程)可通过内核向服务器进程发送请求,以取得操作系统的服务。从微内核结构的主要思想可以看出,它非常适用于分布式系统。
优点:首先,每个服务进程运行在独立的用户进程中,即便某个服务器失败或产生问题,也不会引起系统其他服务器和其他组成部分的崩溃,可靠性好;其次,系统具有很好的灵活性,只要接口规范,操作系统可以方便地增删服务功能;再次,便于维护,即修改服务器的代码不会影响系统其他部分;最后,这种结构的操作系统适合分布式处理的计算环境。
缺点:这种结构的操作系统效率不高,因为所有的用户进程都要通过微内核相互通信,所以微内核本身就成了系统的“瓶颈”,尤其是通信频繁的系统。