操作系统深入详解.docx
《操作系统深入详解.docx》由会员分享,可在线阅读,更多相关《操作系统深入详解.docx(14页珍藏版)》请在冰豆网上搜索。
操作系统深入详解
软件设计师:
操作系统深入讲解[1]
作者:
佚名 来源:
考试吧 2010年8月20日 发表评论 进入社区
操作系统知识:
1、基本概述
操作系统是一个大型的软件系统,是为了提高计算机系统资源(硬件和软件资源)的利用效率并方便用户使用的一组程序,这些程序可以用软件实现,也可以用固件(微程序设计)实现。
操作系统的基本特征是并发与共享。
操作系统是运行在计算机硬件上的最基本的系统软件,位于所有的软件的最底层,为计算机使用者提供了一种良好的操作环境,也为各种应用系统提供了基本的支持环境。
它在计算机系统中占据了特殊重要的地位,其它所有的软件如汇编程序、编译程序、数据库管理系统等系统软件以及大量的应用软件,都将依赖于操作系统的支持,取得它的服务。
操作系统通过多任务并行的手段来达到多用户资源共享的目的。
我们通常主要采用几种不同的方法来考察操作系统。
(1)用户观点:
可以把操作系统看作是用户与计算机硬件系统之间的接口(系统调用和联机命令);
(2)资源管理观点:
把操作系统看成计算机系统资源的管理者;
(3)进程角度:
管理核心,对用户进程和系统进程进行控制和协调;
(4)分层角度:
从系统构造的角度出发,将系统分为若干个层,彼此依赖;
操作系统的硬件基础是:
中断和通道,中断处理一般都在核心内完成。
操作系统的类型与功能:
根据使用环境和对用户作业处理方式,操作系统的基本类型可以分为3大类:
◆批处理操作系统:
其特点是先将作业脱机输入到外围输入设备,再由监督程序将作业成批调入系统中进行处理。
在早期的计算机中往往使用这种类型的操作系统。
◆分时操作系统:
多个用户同时以会话方式控制自己程序的运行,每个用户都感到似乎各自有一台独立的、支持自己请求服务的系统。
其特点是将CPU时间轮流分配给内存各道作业使用,直至每个作业结束,这就保证了多个用户能在较短时间内与作业进行交互。
◆实时操作系统:
系统往往是专用,系统与应用很难分离。
其特点是能及时响应外部时间的请求,并迅速完成对事件的处理。
其设计原则是响应时间优先于资源利用率。
实时系统又分成实时过程控制和实时信息处理两类。
除了上述这几类基本系统外,随着计算机体系结构的发展,又出现了多处理机操作系统、分布式操作系统和网络操作系统等等。
操作系统的职能是管理和控制计算机系统中的全部硬件、软件资源,合理组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口,系统资源管理和提供用户界面是操作操作系统的功能模块:
◆处理器(机)管理:
其主要任务,是对处理机进行分配,并对其进行有效的控制和管理。
在多道程序环境下,处理机的分配以线程为基本单位,因此对处理机的管理可归结为对线程的管理。
◆存储管理:
其主要任务,是为程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,以及能从逻辑上来扩充内存。
所以存储管理应具有以下功能:
内存分配、内存保护、地址映射和内存扩充等。
◆设备管理:
其主要任务,是完成用户提出的I/O请求,为用户分配I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;以及方便用户使用I/O设备。
为实现上述任务,设备管理应具有缓冲管理、设备分配和设备处理,以及虚拟设备等功能。
采用通道、控制器和设备三级控制方法管理这些设备;
◆文件管理:
其主要任务,是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。
为此,文件管理应具有文件存储空间的管理,目录管理,文件的读、写管理以及文件的共享与保护等功能。
◆用户接口:
为了方便用户使用操作系统,操作系统向用户提供命令接口和系统调用接口,在较晚出现操作系统中又向用户提供了图形接口。
2、处理机管理
处理器是计算机的心脏,在单用户系统中或单道系统中,处理器为一个用户或一个作业服务,管理简单。
为了提高系统资源的利用率,引入了多道程序技术,即多个程序或作业同时运行,争用处理器,要解决处理器的分配调度的策略。
因此引入了作业、进程和线程的概念,基于操作系统对处理器的管理策略不同,其提供的作业处理方式也不同,又批处理方式、分时处理方式、实时处理方式、多道成批处理方式和网络环境下的处理方式等。
操作系统的核心位于硬件上,核心的目的是提供一种进程赖以生存的环境,其主要任务就是接受中断并做基本的处理,在进程之间切换处理器,处理进程之间的通信。
基本的硬件结构是:
(1)中断结构:
为了使输入输出活动与处理器的活动并行,提出了中断处理程序;
(2)特权指令:
仅供操作系统使用的指令集合;
(3)主存保护:
多道程序系统中,必须对各进程使用的主存加以保护,以防止其他进程的非法操作;
(4)时钟:
硬件时钟以固定的时间间隔产生中断信号,这对于实现处理器的调度以及实现与时间有关的任务不可或缺;
3、进程概念:
进程在操作系统中是一个十分重要的概念。
进程是可并发执行的程序在一个数据集合上的运行过程。
可以说,进程是运行中的程序,是程序的一次运行活动。
相对于程序,进程是一个动态的概念,而程序是静态的概念。
进程具有5个基本特征:
*动态性:
*并发性:
*独立性:
*异步性:
*结构特征:
在操作系统中,进程是进行系统资源分配、调度和管理的最小单位。
另外需要注意的是,现代操作系统中还引入了线程(Thread)概念,它是处理器分配的最小单位。
进程的状态:
进程在运行中不断地改变其运行状态。
通常,具有3种最基本的状态。
*运行:
正占用处理器
*就绪:
只要获得处理器即可运行。
*阻塞:
正等待某个事件(如I/O完成)的发生。
在不少系统中,还增加了两种基本状态:
*新状态:
一个进程刚刚建立,但还未将它送入就绪队列时的状态。
*终止状态:
当一个进程已经正常结束或异常结束,系统已将它从就绪队列中移出,但尚未将它撤消时的状态。
下图显示了具有5种基本状态的进程状态图
另外,现在操作系统中有的还有挂起状态。
进程控制块PCB:
进程由程序、数据和进程控制块组成。
进程控制块PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。
PCB是进程存在的唯一标志,PCB描述了进程的基本情况。
进程控制块的作用,是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
进程控制块随着进程的建立而产生,随着进程的完成而撤消主要包括以下几个方面的内容:
*进程标识符信息
*处理机状态信息
*进程调度信息
*进程控制信息
下图是一个简化的PCB示意图。
进程控制块的组成方式分连接方式和索引方式两种。
进程管理:
进程管理涉及到进程控制、队列管理和进程调度等。
进程的生命过程是从它创建时开始,直至任务终止而撤消,其间会经历各种状态的转换,它们都是在操作系统控制下完成的。
操作系统提供了对进程的基本操作,也成为原语。
这些原语包括创建原语、阻塞原语、终止原语、优先级原语和调度原语。
进程调度即处理器调度,它的主要功能是确定在什么时间将处理器分给哪个进程。
进程调度的方法基本分为两类:
剥夺调度和非剥夺调度。
进程调度的算法是服务于系统目标的策略,对于不同的系统与系统目标,常采用不同的调度算法。
如:
*先来先服务
*优先数调度
*轮转法
死锁问题
进程管理是操作系统的核心,进程管理中的死锁是操作系统中一个比较特殊的问题。
所谓死锁(Deadlock),是指多个进程因竞争资源而造成的一种僵局(Deadly-Embrace),若无外力作用,这些进程都将永远不能再向前推进。
◆死锁的原因主要有两点:
*竞争资源
*进程推进顺序非法
◆产生死锁的4个必要条件是:
*互斥条件
*保持和等待条件
*不剥夺条件
*环路等待条件
◆而针对产生死锁的必要条件,有下列处理死锁的方法:
*预防死锁:
其思想是不让任一产生死锁的必要条件发生。
*避免死锁:
其策略是不对用户进程的推进顺序加以限制,而在进程申请资源时先判断;
◆断资源分配是否安全。
*检测死锁:
采用资源请求分配图的化简方法来判断是否发生了不安全状态。
*解除死锁:
其主要是使用剥夺的方法来释放资源、解除死锁状态。
比较上面4种处理方法,死锁的检测和解除措施,有可能使系统获得较好的资源利用率和系统吞吐量,但在实现上难度也最大。
4、存储管理
现代计算机系统中的存储系统通常是多级存储体系,至少有主存(内存)和辅存(外存)两级,有的系统有更多的级数。
主存是由系统实际提供的存储单元组成的一个连续地址空间,处理器可以直接存取。
它的存储容量受到实际存储单元的限制。
辅存是指软盘、硬盘、光盘和磁带等一些外部存储部件,常用来存放暂不执行的程序和数据,处理器不能直接访问,需启动I/O设备,才能进行内存、外存交换。
系统中主存的使用一般分系统空间和用户空间两个部分。
把相对地址空间的程序转换成绝对地址空间(物理地址)空间上能够执行的过程称为地址重定位,也称为地址映射或地址映像。
地址重定位有两种:
静态重定位和动态重定位。
存储管理应该提高存储资源的利用效率,又方便用户使用,存储管理的任务应具有下列功能。
*分配与回收
*存储扩充
*共享与保护
◆实存管理:
实存的管理一般有三种分配方式。
*单一连续分配:
一个作业占全部空间,静态分配(不对主存保护,引起冲突)
*固定分区分配:
静态,空间分区
*可变分区分配:
动态分配分区
*交换:
较小的空间运行较大的作业,采用的方法
其中,可变分区分配方法是目前的系统采用得较多的。
它将主存空间按用户要求动态地分划成若干个分区。
为了消除分配中的外部碎片,系统还需要合并自由区和进行存储拼接或紧凑。
关于实存的存储分配算法主要有4种。
*最佳适应算法
*首次适应算法
*最差适应算法
*循环首次适应算法
◆虚存管理
虚拟存储(简称虚存)不考虑实际主存的大小和数据存取的实际地址,只考虑相互有关的数据之间的相对位置,其容量由计算机的地址位数决定。
虚拟存储通常涉及存储空间大于计算机系统主存中可利用存储空间时的寻址能力问题。
其特点是运行程序访问的地址不是从主存中可以获得的,即运行进程访问的地址与主存可用的地址分离。
运行进程访问的地址称为虚地址,主存中可用的地址称为实地址。
一个运行进程可以访问的虚地址范围称为进程的虚地址空间,相应的,可使用的实地址范围称为实地址空间。
虚存的组织方式有3种。
◆分段存储组织
一个作业是由若干个具有逻辑意义的段组成。
在分段系统中,允许程序(作业)占据主存中若干分离的分区,每个分区存储一个程序分段。
分段系统中的虚地址是一个有序对(段号、段内位移)。
系统为每个作业建立一个段表,其内容包括段号与主存起始地址的对应关系、段长和状态。
◆页式存储组织
与段式存储组织相似。
主存被划分成若干个定长的页,页式系统中的虚地址是一个有序对(页号、页内位移)。
系统为每个进程建立一个页表,其内容包括进程的逻辑页号与物理页号的对应关系、状态等。
◆段页式存储组织
综合了上述两种存储组织的特点。
主存被划分成定长的页,段页式系统中虚地址形式是(段号、段内页号、页内位移)。
系统为每个进程建立一个段表,再为每个段表建立一个页表。
虚存管理的置换策略有几种算法
*最优(OPT)算法:
选择淘汰不再使用或最远的将来才使用的页。
*随机(RAND)算法:
随机的选择淘汰的页。
*先进先出(FIFO)算法:
选择淘汰主存驻留时间最长的页。
*最近最少使用(LRU)算法:
选择淘汰离当前时刻最近的一段时间使用得最少的页。
虚存管理策略的基础是局部性原理——进程往往不均匀地高度局部化地访问主存。
这种局部性表现为时间局部性和空间局部性两种。
根据局部性原理的特性,提出了工作集理论。
工作集是指进程频繁访问页面的集合。
工作集理论要求,为了使进程能有效的运行,它的页面工作集应驻留在主存中,以防止“颠簸”(又称抖动,即指由于进程频繁的从辅存请求页面而造成的过度的页面调度)现象。
5、设备管理:
其主要任务是:
*实现对外部设备的分配和回收;
*启动外部设备;
*控制输入/输出设备与处理器或主存之间交换数据;
*实现对磁盘的调度;
*处理设备的中断;
*实现虚拟设备等。
根据不同的方面,可以对设备进行分类。
*按数据组织方式:
字符设备(常对应于慢速设备)和块设备(常对应于快速设备)。
*按资源性质:
独占设备(如终端、打印机)、共享设备(如磁盘)和虚拟设备。
外部设备和主存之间常用的传输方式有4种。
*程序控制方式
*中断方式
*直接存储访问(DMA)方式
*通道方式
虚拟设备:
采用假脱机技术,可以将低速的独占设备改造成一种共享设备。
简称为spooling技术,利用多道程序技术,采用一组程序模拟一台I/O处理机
设备分配有两种方法,即静态分配方法和动态分配方法。
其中设备的动态分配算法与进程调度相似,也具有一定的分配策略,如先请求先分配、优先级高者先分配等。
例如,关于磁盘调度的算法就有以下几种。
*先来先服务(FCFS)调度
*最短查找时间优先(SSTF)调度:
离磁头最近的服务被响应
*SCAN调度(电梯算法):
在前进方向寻找最短的查找时间的
*N步SCAN调度
*C-SCAN调度
6、文件和文件系统
文件是信息的一种组织形式,是存储在辅助存储器上的具有标识名的一组信息集合,它可以是有格式的,也可以是无格式的。
与文件相关的概念有:
数据项、记录、文件和数据库。
操作系统的文件系统包括两个方面:
*负责管理文件的一组系统软件;
*管理的对象文件。
文件系统的主要目标是提高存储器的利用率,接受用户的委托实施对文件的操作。
其主要问题是管理辅助存储器,实现文件从名字空间到辅存地址空间的转换,决定文件信息的存放位置、存放形式和存放权限,实现文件和目录的操作,提供文件共享能力和安全设施,提供友好的用户接口。
根据不同方面,可以对文件进行多种分类。
*按文件的用途分:
系统文件、库文件和用户文件等。
*按文件的信息流分:
输入文件、输出文件和输入输出文件等。
*按文件的组织形式分:
普通文件、目录文件和特殊文件等。
*按文件的安全属性分:
只读文件、读写文件、可执行文件和不保护文件等。
文件的结构和组织
文件的结构是指文件的组织形式。
文件的结构分为逻辑结构和物理结构。
从用户的观点所看到的文件组织形式称为文件的逻辑结构,从实现观点考察文件在辅助存储器上的存放方式称为文件的物理结构。
文件的逻辑结构可以分为两种:
无结构的字符流文件和有结构的记录文件(也称为有格式文件)。
其中,记录文件由记录组成,即文件内的信息划分成多个记录,以记录为单位组织和使用信息。
其有几种不同的类型,特别需要注意它们之间的区别。
◆堆文件:
数据按先来后到的顺序组织,是最简单的记录文件;
◆顺序文件
顺序文件的记录定长,记录中的数据项的类型长度与次序固定,记录按键值的约定次序组织。
◆索引顺序文件
基于键的约定次序组织,而且维护键的索引和溢出区域。
键的索引可以是多级索引。
◆索引文件
基于记录的一个键-数据项关系对来组织,依据记录键值可以找到记录存放位置。
◆直接文件(又称哈希文件)
记录以它们在直接访问存储设备上的物理地址直接(随机)访问。
对于一个给定的记录可以直接得出其存储位置。
文件的物理结构侧重于提高存储器的利用效率和降低存取时间。
文件的存储设备通常划分为大小相同的物理块,物理块是分配和传输信息的基本单位。
文件的物理结构是指文件在存储设备上的存储方法,具有不同的文件分配策略,需要特别注意它们的特点和之间的差别。
◆顺序分配(连续分配)
最简单的分配方式。
在文件建立预先分配一个连续的物理块集,然后,按照逻辑文件中的信息(或记录)顺序,依次把信息(或记录)顺序存储到物理块中。
不适宜于需要经常修改的文件。
◆链接分配(串联分配)
这是按单个物理块逐个进行的。
在建立链接文件时,不须指定文件的长度,在文件的说明信息中,只需指出该文件的第一个物理块块号,链接文件的文件长度可以动态的增长,只需调整物理块间的指针就可以插入或删除一个信息块。
一般只适用于顺序访问,不适用于随机存取。
◆索引分配
另一种对文件存储不连续分配的方法。
系统为每个文件建立一张索引表,索引表中的每一表项指出文件信息所在的逻辑块号和与之对应的物理块号。
既适用于顺序存取,也适用于随机存取。
文件控制块:
FCB,和进程相似,文件目录有一级目录、二级目录和多级目录结构;
一级目录:
只有一个目录表,每个表项对应一个文件;
二级目录:
主目录和用户目录;
多级目录:
也称为树型目录结构,从根目录出发的层次结构;
7、作业管理与用户界面
作业是系统为了完成一个用户的计算任务(或一次事务处理)所做的工作总和。
操作系统中用来控制作业的进入、执行和撤消的一组程序成为作业管理程序。
一般操作系统提供两种作业控制方式。
联机作业方式(on-line)
通过直接输入作业控制命令,提交用户作业,运行用户作业。
脱机作业方式(off-line)
通过作业控制语言(JCL,也称为作业控制命令)编写用户作业说明书。
这种方式中,用户不直接干预作业的运行,而是把作业与作业说明书一起提交系统。
作业调度主要是从后备状态的作业中挑选一个(或一些)作业投入运行。
与进程调度相似,也具有若干的调度算法。
*先来先服务(FCFS)
*短作业优先(SJF)
*响应比高者优先(HRN)
*优先级调度
用户界面:
也称为用户接口,是用户与操作系统交互的途径和通道,也是交互环境的控制方式;
操作系统的接口:
可分为命令接口和程序接口。
命令接口:
包含键盘命令和作业控制命令;
程序接口:
程序接口又称为编程接口、系统调用。
程序经编程接口请求系统服务,即通过系统调用,程序与操作系统进行通信。
操作环境:
操作环境支持命令接口和程序接口,提供友好、易用的操作平台。
操作系统的交换界面从早期的命令驱动方式发展道菜单驱动方式、图形符号驱动方式和视窗操作环境。
8、操作系统的结构
1.无序结构法:
整体结构或模块组合结构(以大型表格和队列为中心);
2.层次结构法:
分解成各个单向依赖的层次;
3.面向对象法:
利用对象和对对象的操作加上保护组成操作系统;执行体对象(进程,线程、文件和令牌等)和内核对象(时钟、事件和信号等)
4.微内核结构法:
公共部分抽象形成底层的核心,提供基本的服务;
网络操作系统:
网络操作系统(NOS)是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统。
它在计算机操作系统下工作,使计算机操作系统增加了网络操作所需要的能力。
例如象前面已谈到的当你在LAN上使用字处理程序时,你的PC机操作系统的行为象在没有构成LAN时一样,这正是LAN操作系统软件管理了你对字处理程序的访问。
网络操作系统运行在称为服务器的计算机上,并由连网的计算机用户共享,这类用户称为客户。
NOS与运行在工作站上的单用户操作系统或多用户操作系统由于提供的服务类型不同而有差别。
一般情况下,NOS是以使网络相关特性最佳为目的的。
如共享数据文件、软件应用以及共享硬盘、打印机、调制解调器、扫描仪和传真机等。
一般计算机的操作系统,如DOS和OS/2等,其目的是让用户与系统及在此操作系统上运行的各种应用之间的交互作用最佳。
为防止一次由一个以上的用户对文件进行访问,一般网络操作系统都具有文件加锁功能。
如果没有这种功能,将不会正常工作。
文件加锁功能可跟踪使用中的每个文件,并确保一次只能一个用户对其进行编辑。
文件也可由用户的口令加锁,以维持专用文件的专用性。
NOS还负责管理LAN用户和LAN打印机之间的连接。
NOS总是跟踪每一个可供使用的打印机以及每个用户的打印请求,并对如何满足这些请求进行管理,使每个端用户的操作系统感到所希望的打印机犹如与其计算机直接相连。
NOS还对每个网络设备之间的通信进行管理,这是通过NOS中的媒体访问法来实现的。
NOS的各种安全特性可用来管理每个用户的访问权利,确保关键数据的安全保密。
因此,NOS从根本上说是一种管理器,用来管理连接、资源和通信量的流向。
嵌入式操作系统:
嵌入式系统是以应用为中心,软硬件可裁剪的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用电脑系统;主要由嵌入式CPU、相关硬件、嵌入式OS操作系统及应用软件等组成。
与通用型电脑系统相比,嵌入式系统功耗低、可靠性高;功能强大、性能价格比高;实用性强,支持多任务;占用空间小,效率高;面向特定应用,可根据需要灵活定制。
嵌入式系统应用广泛:
可用于移动电脑平台(PDA、掌上计算机),信息家电(数字电视、机顶盒、网络设备),无线通信设备(智能手机、股票接收设备),工业/商业控制(智能工控设备、POS/ATM机),电子商务平台,甚至军事应用等诸多领域。
对于大多数用户而言,嵌入式系统的应用有一定的难度。
不论是硬件的造型、嵌入式操作系统的选择,以及应用软件的确定都是令人头疼的事情。
为了解决这难题,威达佳科技推出了一系列从嵌入式硬件到操作系统的解决方案。
WindowsCE.net概述
WindowsCE.NET是WindowsCE3.0的后继产品。
WindowsCE.NET为嵌入式市场重新设计,为快速建立下一代智能移动和小内存占用的设备提供了一个健壮的实时操作系统。
WindowsCE.NET具备完整的操作系统特性,集包和端对端开发环境,它包括了创建一个基于定制设备的WindowsCE所需的一切。
WinCE.NET包含大量的新增特性和改进特性,如:
n蓝牙(bluetooth)和802.11零配置设定等无线技术;
n设备仿真特性使你可以对完整的设备环境进行仿真而无需任何额外的硬件投资;
n在平台向导方面,使您可以从众多的预置设备设计中进行选择,以便跳跃式的开始你的开发流程;
丰富的多媒体和Web浏览功能,如MicrosoftInternetExplorer6.0和WindowsMedia编解码器(Codec)和控件原件。
强大的联网能力、强劲的实时性和小内存体积占用以及丰富的多媒体和Web浏览功能使得WindowsCE.NET成为各个不同领域嵌入式操作系统的首选。
WinCE.NET为快速建立下一代智能移动和小内存占用的设备提供了一个健壮的实时操作系统,利用WinCE.NET就有可能创建一个您所需要的与众不同的平台,从而应用到各个领域。
◆移动电话/智能多媒体
◆自定义设备
◆数字成像设备
◆工业自动化设备
◆Internet/媒体设备
◆PDA/移动手持设备
◆住宅门禁
◆