第一节 操作系统的基本概念
一, 计算机系统的定义
- 计算机系统是一种可以按用户的要求接收和存储信息,自动进行数据处理并输出结果信息的系统。
- 广义的计算机系统包含机械式系统和电子式系统。在电子式系统中,还可以划分为模拟式和数字式两种计算机系统。主要讨论数字式计算机系统。
- 计算机系统包括硬件系统和软件系统。硬件系统是计算机系统赖以工作的实体。软件系统是能够使得计算机系统按用户指定的要求协调地工作的操作命令的集合。这两个部分构成了计算机系统的资源。因此,计算机系统的资源包括两大类:硬件资源和软件资源。
- 计算机系统必须有识别用户要求的能力,还必须具有对不同用户进行不同控制执行的能力。
二 ,操作系统的定义
- 在计算机系统中,集中了资源管理功能和控制程序执行功能的一种复杂的软件,称为操作系统。
- 操作系统是计算机系统中的一个系统软件,它是这样一些程序模块的集合—它们能有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活,方便,有效地使用计算机,并使整个计算机系统能高效地运行。
- 操作系统是一个大型软件程序,是具有各种功能的,大量程序模块的集合。
- 操作系统的任务之一是组织和管理计算机系统中的硬件及软件资源。在操作系统内部,为了掌握整个计算机系统的硬件和软件资源,设计了各种不同类型的表格或数据结构,将所有的硬件和软件资源一一登记,资源的名称,类型,数量,用途,完好状态以及目前使用状态等所有信息,均在有关数据结构中保存,并动态地,实时地不断更新着这些数据。记录数据地目的是:让操作系统根据用户对各种资源地需求情况,资源地当前分配和使用情况以及有关的资源调度策略,对资源进行有效的组织和管理。
- 操作系统另一项重要任务,是向用户提供各种服务功能。
- 一方面,向软件开发人员和设计人员提供高效的设计接口。
- 另一方面,向使用计算机系统的用户提供操作接口,使用户能够灵活,方便,有效地使用计算机。
三,操作系统的特征
1. 并发性
- 并发性是指在计算机系统中同时存在若干个运行着的程序。
- 计算机程序的并发性体现在具体两个方面
- 用户程序与用户程序之间的并发执行。
- 用户程序与操作系统程序之间的并发执行。
2. 共享性
-
共享性指操作系统程序与多个用户程序共用系统中的各种资源。这种共享性是在操作系统控制下实现的。
-
资源共享主要是指计算机系统中的如下几项重要资源。
- 处理器
- 主存储器(内存)
- 辅助存储器(硬盘)
- 输入/输出设备
-
在计算机中,对资源的共享一般有两种形式:
-
互斥共享:在一段特定的时间内只能由某一个用户程序使用。如:打印机
当这个资源正在被使用的时候,其他请求该资源的程序必须等待,并且在这个资源被使用完了以后才由操作系统根据一定的策略再选择一个用户程序占用该资源。通常把这样的资源称为临界资源
-
同时共享:同一段时间内可以被多个程序同时访问。如:硬盘
-
3. 随机性
- 操作系统的运行是在一种随机的环境下进行的。这种随机环境的含义是,操作系统不能对所运行的程序的行为以及硬件设备的情况做出任何事先的假定。
第二节 操作系统的分类
一,批处理操作系统
- 批处理操作系统的基本工作方式是:用户将需要计算的一组任务请求交给系统操作员,系统操作员在收到后,并不立即将其输入计算机,而是在收到一定数量的用户作业后,组成一批作业,再把这批作业输入到计算机中。
- 批处理操作系统又可以分为单道批处理和多道批处理系统。
- 单道批处理系统每次只将一个作业调入内存运行,不管中间发生什么事,该作业一直占用处理器,直到运行结束或出错退出。
- 多道批处理系统将多个作业调入内存,允许多个程序同时存在于主存之中,由处理器以切换方式为止服务,使得多个程序可以同时执行。可以同时为几个用户共享。
二,分时操作系统
- 分时系统(Time Sharing System)是指多个用户通过终端设备与计算机交互来运行自己的作业,并且共享一个计算机系统而互不干扰,每个终端可由一个用户使用,每个用户就好像自己拥有了一台计算机。
三,实时操作系统
- 实时操作系统(Real Time Operating System,RTOS)是指,使计算机能在规定的时间内,及时响应外部事件的请求,同时完成对该事件的处理,并能够控制所有实时设备和实时任务协调一致的工作的操作系统。
- 实时操作系统具备:及时性,实时性,高可靠性,高过载防护性。
四,桌面操作系统
- 如windows,Linux。
五,嵌入式操作系统
- 嵌入式操作系统(Embedded Operation System)是一种用途广泛的系统软件,广泛应用在电子,电器和智能机械设备上。
- 嵌入式操作系统负责嵌入式系统中的全部软,硬件资源的分配,处理器调度,控制,协调并发活动。
六,网络操作系统
- 网络操作系统(Network Operating System)是基于计算机网络的,在各种计算机操作系统之上按网络体系结构协议标准设计开发的软件,包括网络管理,通信,安全,资源共享和各种网络应用。
- 网络操作系统的目标是相互通信及资源共享。通过网络操作系统,用户可以使用网络中其他计算机的资源,实现计算机间的相互信息交换,从而扩大了计算机的应用范围。
七,分布式操作系统
- 将大量的计算机通过网络连接在一起,可以获得极高的运算能力及广泛的数据共享。这样一种系统称为分布式系统(Distributed System)。
- 为分布式系统配置的操作系统称为分布式操作系统(Distributed Operating System)。
- 在分布式模式中,网络环境中的计算机不仅能共享数据,资源及服务,还能够共享运算处理能力。
第三节 操作系统的基本功能
一,进程(线程)管理
- “进程”简单地讲是指一个正在运行着的程序。
1. 进程控制
- 进程控制的主要任务就是创建进程,撤销结束的进程以及控制进程运行时候的各种状态转换。
2. 进程同步
- 多个进程的执行是并发的,它们以异步的方式运行,它的执行进度也是不可预知的。为了使多个进程可以有条不紊地运行,操作系统要提供进程同步机制,以协调进程的执行。
- 一般有两种协调方式
- 互斥:指多个进程对临界资源访问时采用互斥的形式。
- 同步:指在相互协作共同完成任务的进程之间,用同步机制协调它们之间的执行顺序。
- 最简单的实现互斥的方法就是给资源加锁,并提供操作锁变量的原语。包括开锁和关锁原语。所谓原语就是指具有某种功能,运行时有“原子性”的小段程序。原子性保证这一段程序要么全部被执行,要么全部不执行,即这一操作不可以被进一步分割或者打断。
3. 进程间通信
- 进程间通信主要发生在相互协作的进程之间。
- 操作系统提供的进程间通信机制是协作的进程间相互交换数据和消息的手段。
二,处理器调度
- 处理器调度又称为进程调度(在引入线程的系统中一般称为线程调度)。进程(线程)调度的任务就是从进程(线程)的就绪队列中按照一定的算法挑选出一个进程(线程)来把处理器资源分配给它,并准备好特定的执行上下文让它执行起来。
三,存储管理
1. 内存的分配与回收
- 操作系统要为每个进程分配内存空间,在分配的过程中还要尽可能提高内存资源的使用效能。对于已经退出运行的进程所占据的内存空间,操作系统还要加以回收,重新使用。
2. 存储保护
- 由于内存供多个程序共享,从理论上讲,每个程序都应该在分配给自己的内存区中运行。但是,从实际上看,必须考虑某个程序可能发生越界的情况。(程序自身可能存在一些错误或隐患,造成程序的突然越界行为)
- 如果发生故障的程序越界到操作系统运行的内存空间,那么受到危害将更加严重,整个计算机系统有可能崩溃。
- 如果某个程序具有恶意,如病毒程序,或者是外界的入侵程序,那么就更加有必要防止它们危害其他用户和整个计算机系统。
- 在现代的计算机系统中,通常提供有硬件实现的存储保护机制,操作系统则利用这一机制实现进程的地址保护。
3. 内存扩充
- 内存扩充就是借助于虚拟存储技术在逻辑上增加进程运行空间的大小,这个大小比实际的物理内存要大得多。
- 在虚拟存储技术中,操作系统通常将空间划分为固定大小的页面,并且以页面为单位进行存储空间的调度。进程所需的总页面数所对应的空间可以超出实际物理空间。
- 系统要实现这一机制,必须提供请求页面调入的功能和页面置换的功能。
四,文件管理
- 文件管理的任务是有效地支持文件地存储,检索和修改等操作,解决文件的共享,保密和保护问题,以使用户方便,安全地访问文件。
1. 文件存储空间地管理
- 文件系统设置专门的数据结构记录文件存储空间的使用情况。
- 为了提高空间利用率,存储空间的分配通常采用离散分配方式,以512B或者几KB的块为基本单位进行分配。
2. 目录管理
- 目录管理的主要任务就是给出组织文件的方法,它以每个文件建立目录项,并对众多的目录项加以有效的组织,以便为用户提供方便的按名存取。
3. 文件系统的安全性
- 安全性包括文件的读写权限管理以及存储控制,用以防止未经核准的用户存取文件,防止越权访问文件,防止使用不正确的方式访问文件。
五,输出/输入管理
- 输入/输出管理的功能是按照输入/输出子系统的结构和设备类型指定分配和使用设备的策略,为输入/输出操作的进程分配一条传输信息的通路,合理地控制输入/输出操作,最大程度地实现并行操作。
第四节 网络操作系统的基本概念
一,网络操作系统的结构
1. 整体式结构
- 早期操作系统设计中采用的方法,首先确定操作系统的总体功能,然后将总功能分解为若干个子功能,实现每个子功能的程序称为模块。再按照功能将每个大模块分为若干个小模块,直至每个模块仅包含单一功能或紧密联系的小功能为止,即分解为最基本的模块为止。最后通过接口将所有模块连接起来形成一个整体。将操作系统的这种结构称为模块化组合结构。此时,操作系统是一个有多种功能的系统程序,既可以看成是一个整体模块,也可看成是由若干个模块按一定的结构方式组成的。
- 优点是:结构紧密,用户使用的界面简单直接,系统效率较高。
- 模块组合法(无序模块法,模块接口法等)中,系统的模块不是根据程序和数据本身的特性而是根据它们完成的功能来划分的,数据基本上作为全程量使用。在系统内部,不同模块的程序之间可以不加控制地互相调用和转移,信息的传递方式也可以根据需要随意约定,因而可能造成模块间的循环调用。
- 模块组合法的缺点
- 模块间转接随便,各模块互相牵连,独立性差,系统结构不清晰。
- 数据基本上作为全程量处理,系统内所有模块的任意程序均可对其进行存取和修改,从而造成了各模块间有着更为隐蔽的关系。
- 模块组合结构常以大型表格为中心,为保证数据完整性,采用关闭全局中断的方法,从而限制了系统的并发性。
2. 层次式结构
- 使模块间调用的无序性变为有序性。
- 层次式结构就是把操作系统的所有功能模块,按功能图的调用次序,分别将这些模块排列成若干层,各层之间的模块只能是单向依赖或单向调用关系。这样不但操作系统的结构清晰,而且调用关系明确。
- 层次式结构的操作系统中,各层之间是单向调用的,而且每一层中的同层模块之间不存在互相调用的关系,则称这种层次式结构关系为全序的层次关系。
- 优点是:易于调试,易于修改,易于扩充,易于维护,易于保证正确性等优点。
- 分层原则
- 为了增加系统的可适用性,并且方便于将操作系统移植到其他机器上,必须把与机器特点紧密相关的软件,如中断处理,输入输出管理等放在紧靠硬件的最底层,而把与硬件有关的BIOS放在最内层。
- 对于计算机系统来说,通常把多种操作方式共同要使用的基本部分放在内层,而把随操作方式而改变的部分放在外层。如批作业调度程序和联机作业调度程序,键盘命令解释程序和作业控制语言解释程序等,这样操作方式改变时仅需改变外层,内层部分保持不变。
- 当前操作系统的设计都是基于进程的概念,进程是操作系统的基本成分,为了给进程的活动提供必要的环境和条件,因此必须要有一部分软件来为进程提供服务,通常这些功能模块构成操作系统内核,放在系统的内层。内层又分为多个层次,通常将各内层均要调用的那些功能放在更内层。
3. 微内核(客户/服务器)结构
- 特点
- 微内核提供一组“最基本”的服务(如进程调度,进程间通信,存储管理,I/O处理)和其他服务(文件管理,网络支持等)通过接口连到微内核。
- 具有良好的扩展性,并简化应用程序开发。
- 用户只运行它们需要的服务,有利于减少磁盘空间和存储器要求。
- 微内核和硬件部件有接口,并向可安装模块提供一个结构。
二,网络操作系统的特点
- 运行在核心态的内核。
- 内核提供所有操作系统基本都具有的那些操作,如线程调度,虚拟存储,消息传递,设备驱动以及内核的原语操作集和中断处理等。
- 这些部分通常采用层次结构并构成了基本操作系统。
- 运行在用户态的并以客户/服务器方式运行的进程层。
- 可靠
- 灵活
- 适宜于分布式处理的计算环境
三,网络操作系统的功能要求
1. 网络操作系统的基本功能
- 网络资源的集中管理,文件共享,访问打印机,读写存储设备,使用计算服务等。
- 通过权限管理严格控制网络访问从而保证安全。
- 远程访问功能使得地理上分离的用户能无缝地链接到本地地服务和获得本地地资源。
- 备份和数据恢复
- 访问其他局域网或互联网
- 监控服务器和其他网络设备的性能及其运行效率。
- 提供软件更新和补丁。
2. 网络操作系统的特别功能
- 安全
- 防火墙
- 加密
- 数字签名
- 网络服务
- 异构平台的支持
- 路由和远程访问
- 监控,维护和恢复
- 对内存,CPU等监控
- 备份数据
- 软件补丁或操作系统升级
- 整理磁盘碎片
- 自动备份
- 自动恢复
- 系统状态恢复
- 自动诊断故障
- 自愈