赞
踩
写在最前:
写文章的初衷只是为了复习与记录自己的成长,笔者本人也还是学生,文章中难免会出现许多问题与错误,文章内容仅供参考,有不足的地方还请大家多多包涵并指正,谢谢~
第一章 操作系统概述
1.1 操作系统的概念
计算机系统是由硬件和软件两部分构成的,软件又分成系统软件和应用软件两类,操作系统(operating system,OS)是一个最基本也是最重要的系统软件。从虚拟机的观点来看,软件是分层次的。系统软件位于低层,应用软件位于高层。如果对系统软件进一步分层,可以发现操作系统位于系统软件层次中的最底层。从高层到低层依次为:应用软件层--其他系统软件层--操作系统--硬件。
由上述可知:操作系统是与计算机硬件关系最为密切的一个系统软件,是对硬件部件的第一次扩充。且上述层次关系具有穿透性:高层软件可以调用所有低层的软件,并与硬件直接打交道。如下图所示:
操作系统有以下两个重要的作用:1.管理系统中的各种资源。2.为用户提供友好的界面
操作系统的非形式化定义:操作系统是位于硬件层之上、所有其他系统软件层之下的一个系统软件,通过它管理系统中的各种软件和硬件资源,使它们能被充分利用,方便用户使用计算机系统。
1.2 操作系统的发展历程:
手动操作阶段--批处理阶段(联机批处理/脱机批处理)--执行系统阶段(操作系统的初级阶段,为操作系统的最终形成奠定了基础)--多道批处理系统(追求效率)--分时系统(追求交互性)--(多道批处理系统和分时系统的出现标志着操作系统走向成熟)--实时处理系统--通用操作系统
补充:通道又称I/O处理器,它具有自己的指令系统和运算控制部件,与处理器共享内存资源。
1.3 操作系统的特性
操作系统也是一个程序,具有四个非常重要的特性:程序的并发性(concurrency)、资源的共享性(sharing)、异步性(asynchronous)和虚拟性(virtuality)。
1.并发性:所谓程序并发,是指在计算机系统中同时存在多个程序。体现在以下三个方面:用户程序与用户程序之间并发执行,用户程序与操作系统之间并发执行,操作系统与操作系统之间并发执行。
这里需要区别两个相关但不完全相同的概念:程序并发和程序并行。程序并行要求微观上的同时,即在绝对的同一时刻有多个程序同时向前推进;而程序并发并不要求微观上的同时,只需从宏观上看多个程序都在向前推进(并发执行的程序按照某种次序交替地获得处理器并运行,由于处理器的速度很快,宏观上仿佛每个程序都拥有一个属于自己的处理器,即所谓的虚处理器)。即:
并行:在有多个CPU的系统上执行多个程序,任务数量约等于CPU数量
并发:在有一个或多个CPU的系统上执行多个程序,任务数量远大于CPU数量
2.共享性:指操作系统与多个用户程序共用系统中的各种资源,这种共享是在操作系统的协调和控制下实现的。
3.异步性:在操作系统之上,宏观上同时运行的程序有多个(包括操作系统程序),它们是交替执行的。交替的切换点是中断,中断使用户程序切换到操作系统程序,嵌套中断使一段操作系统程序切换到另一段操作系统程序,而中断的发生时刻却是不确定的,因而操作系统的运行轨迹是异步的、不可预知的
注意:异步性是由并发派生出来的一个特性,即,并发性必然导致随机性和异步性,因而并发性与异步性不是两个正交的特性。
4.虚拟性:所谓虚拟,是利用某种技术把一个物理实体变为若干个逻辑实体。
1.4 操作系统的分类:
①多道批处理操作系统(batch processing operating system):以脱机操作为标志,特别适合用于处理运行时间比较长的程序。其有两个特性:
a.多道:内存中同时存在多个正在处理的作业,而且外存储器输入井中还有多个尚待处理的作业
b.成批:作业逐批地进入系统,逐批地处理,逐批地离开系统。作业与作业之间的过渡由操作系统控制,无须用户干预。
②分时操作系统(time-sharing operating system):以联机操作为标志,特别适合于程序的动态调试和修改。其有三个特性:
a.多路性:又称多路调制性,即一个主机可以同时与多个终端相连。根据硬件配置情况,同一个主机可以与几个、十几个以至数十个,甚至上百个终端连接在一起。
b.交互性:又称交往性,即系统以对话的方式为各个终端用户服务。用户在终端上可以方便的录入、调试、修改、运行其程序。
c.独占性:操作系统将时间划分为若干个片段,称为时间片,并以时间片为单位轮流地为各个交互终端用户服务,由于计算机的运行速度很快,相比之下手动操作的速度较慢,因而每个用户感觉仿佛独占整个计算机系统,而不知道其他用户的存在,即每个终端用户实际上都拥有一台完全属于自己的虚拟机。
③实时操作系统(real-time operating system):所谓实时,是指系统能够对外部请求做出及时的响应。实时操作系统按其应用范围可以分为实时控制和实时信息处理两大类别。
实时控制包括工业控制、宇航控制、医疗控制、铁路运输控制等。
实时信息处理包括联机情报检索、图书管理、航班订票等。
实时操作系统具有两个基本特性:
a.及时性:即能够对外部请求做出及时的响应和处理。
b.可靠性:与其他类型的系统相比,实时操作系统更加注重其稳定性和可靠性。例如对于航天控制系统来说,实时控制系统的故障带来的后果是无法估量的。
④通用操作系统(general purpose operating system):同时具有分时、实时和批处理功能的操作系统称为通用操作系统。在通用操作系统中,可能同时存在3类任务,即实时任务、分时任务、批处理任务。通常按其紧迫程度加以分级:实时任务级别最高,分时任务级别次之,批处理任务级别最低。
注意:在实际应用中,同时具有实时、分时、批处理3种功能的操作系统并不常见(万能系统其实并不存在),现实生活中通常将实时与批处理结合起来,或者将分时与批处理结合起来,构成所谓的前后台系统。一般实时任务和分时任务为前台,批处理任务为后台,前台任务优先于后台任务。
⑤单用户操作系统(single-user operating system):是为个人计算机所配置的操作系统。这些操作系统最主要的特点是单用户,即系统在同一段时间内仅为一个用户提供服务。
⑥网络操作系统(network operating system,NOS):用于实现网络通信和网络资源管理的操作系统称为网络操作系统。建造网络操作系统的主要目的是:相互通信、资源共享、提供网络服务。
⑦分布式操作系统(distributed operating system,DOS):分为两类,一类建立在多机系统的基础之上,称为紧耦合(closely coupled)分布式系统;另一类建立在计算机网络的基础之上,称为松散耦合(loosely coupled)分布式系统。
补充:分布式操作系统是网络操作系统的更高级形式,它保持网络操作系统所拥有的全部功能,同时具备如下特征:
a.统一的操作系统:对于网络操作系统来说,不同HOST上所配置的NOS其界面形式可能是不同的,而在分布式操作系统中,所有HOST的DOS统一,其界面相同。
b.资源的进一步共享:在网络操作系统中,由于各HOST上的操作系统不统一,因而一个计算任务不能由一台HOST任意迁移到另一台HOST上运行,而在分布式操作系统中,所有HOST的操作系统界面一致,作业可以由一台HOST任意迁移到另一台HOST上处理,即可实现处理器资源的共享,从而达到整个系统的负载平衡。
c.可靠性:构成分布式系统的不同HOST处于等同的地位,即没有主从关系,任何一个HOST失效都不会影响整个系统。
d.透明性:网络用户能够感觉到本地HOST与非本地HOST在地理位置上的差异,而在分布式系统中,所有HOST构成一个完整的、功能更加强大的计算机系统,操作系统掩盖了不同HOST在地理位置上的差异。
⑧多处理器操作系统(multiprocessor operating system):具有公共内存和公共时钟的多CPU系统称为多处理器操作系统,也称为紧耦合系统。建立在多处理器上的操作系统也称为并行操作系统。多CPU系统中的多个CPU若型号和地位相同,没有主从关系,则称之为对称多处理(symmetric multiprocessing,SMP)的。对称多处理是多处理操作系统的主要形式。
⑨集群操作系统(cluster operating system):建立在局域网络基础上,是指一种由多台计算机通过软件互相连接组成的并行或分布式系统,可以作为单独、统一的计算资源来使用。
集群的关键技术分为网络层、结点机及操作系统层、集群系统管理层、应用层4个层次。
分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。分布式结构中的每一个结点都可以做集群,而集群并不一定就是分布式的。
⑩云计算操作系统(cloud computing operating system):又称云操作系统、云计算中心操作系统,是以云计算、云存储技术作为支撑的操作系统,是云计算后台数据中心的整体管理运营系统,它是指架构于服务器、存储、网络等基础硬件资源和单机操作系统、中间件、数据库等基础软件之上的,管理海量的基础硬件、软件资源的云平台综合管理系统。云的思想是把互联网中计算能力比较弱的各个结点统一管理起来,构成一个功能强大的计算机系统。
⑪嵌入式操作系统(embedded operating system):多用于控制,因而具有实时特性。与其他操作系统相比存在以下几个明显的差别:
a.可裁剪性(适应性)
b.可移植性:
c.可扩展性:要求在进行嵌入式系统设计时,充分考虑功能之间的独立性,并为将来的扩展预留接口。
补充:嵌入式操作系统一般采用微内核(micro kernel)结构。目前微内核尚无统一的规范,但一般认为应当包括如下功能:处理器调度、基本内存管理、通信机制、电源管理。而虚拟存储管理、文件系统、设备驱动程序等则处于核心之外,以目态形式运行。
微内核结构的明显优点是:可靠性高、可移植性好。缺点是:系统效率低。
嵌入式操作系统的优点有:微小、实时、专业、可靠、易裁剪等。
⑫多媒体操作系统:指除具有一般操作系统的功能外,还具有多媒体低层扩充模块,支持高层多媒体信息的采集、编辑、播放和传输等处理功能的系统。多媒体操作系统大致可分为3类:具有编辑和播放双重功能的开发系统,以具备交互播放功能为主的教育/培训系统,用于家庭娱乐和学习的家用多媒体系统。
⑬智能卡操作系统(smart card operating system):最小的操作系统。
1.5 操作系统的硬件环境
定时装置(实时时钟):通常分为绝对时钟和间隔时钟。
绝对时钟类似于电子表,其时间表示形式为年:月:日:时:分:秒。值保存在于硬件寄存器中,开机时可由电源供电计时,关机时可由机内电池供电计时,其值可由程序设定和修改,但是一般通过特权指令完成,程序也可以读取绝对时钟的值。绝对时钟是必要的,操作系统需要根据绝对时钟的值记录作业进入系统和处理的时间、文件的修改和存取时间、资源占用时间、日志记录时间等。
间隔时钟也称闹钟,每隔固定的时间发生一次中断。时钟中断发生后,操作系统获得系统的控制权,以便运行系统管理和实现程序并发。间隔时钟是现代操作系统的基础。
补充:中断是系统并发的必要条件,即只有通过中断才能实现多道程序设计。
堆与栈:每个运行程序都有一个堆和两个栈(一个用户栈,一个系统栈)
堆属于用户空间,用于保存程序中的动态变量。
用户栈属于用户空间,用于保存用户函数调用时的返回点、参数、局部变量、返回值,还用于传送调用操作系统时传给操作系统的参数。(补充:用户程序调用操作系统时,有两个载体可用于传递参数,一个是寄存器,用于较小的数据,如一个字符、一个整数;另一个是用户栈,用于较长的参数,如文件名、字符串)
系统栈也称为核心栈,系统栈在逻辑上属于操作系统空间,主要用于保存操作系统子程序间相互调用的返回点、参数、局部变量、返回值(当然长度较小的返回值也可以通过寄存器传递),另外系统栈用于中断响应时保存中断现场,包括PSW和PC,以及中断处理过程中用到的寄存器值。对于嵌套中断,被中断程序的现场信息一次压入系统栈,中断返回时逆序弹出。
注:程序切换的同时伴随着堆、用户栈和系统栈的切换,但硬件的栈指针是多个进程共享的。
寄存器:硬件系统提供一套寄存器,由运行进程使用。程序切换时,一般需要把寄存器的当前值保存起来,再次运行前再恢复。简介如下:
①程序状态字(program status word,PSW):IBM 360/370程序状态字由16B组成,表示当前程序的运行环境,其中每个“X"表示1B(4b)。其中,前8位为系统屏蔽位,第0~6位分别对应7个通道,第7位对应外中断;第12~15位为CMWP,第13位为开关中断位M,第15位为系统状态位P;第16~31位为中断码,用于保存中断字(详细中断信息);第36~38位为程序屏蔽位,分别对应定点溢出、十进溢出、阶下溢;第39位备用。可以看出,有些中断是不可屏蔽的,如时钟、地址越界、缺页、非法指令。
如图为程序状态字组成:
②指令计数器(PC):记载运行程序下一条指令的地址
③栈指针SP:管态和目态各一个,分别保存系统栈和用户栈的栈顶位置
④通用寄存器(regs):若干个,用于存数和计算,还可用来保存系统调用时传给操作系统的参数,以及由操作系统传给用户的返回值。
⑤浮点寄存器(fregs):若干个,用于存数和计算,也可用来保存系统调用时传给操作系统的参数,以及由操作系统传给用户的返回值。
⑥地址映射寄存器:一般有一对,分别记录内存区域的起始地址和长度,分别称为基址寄存器(base)和限长寄存器(limit)
`
特权指令与非特权指令:现代计算机的指令系统由特权指令和非特权指令两个部分组成,它们的使用与系统状态有关
特权指令(privileged instruction):只能在管态下才能执行的指令,如开关中断、修改地址映射寄存器、置程序状态字、停机等。这些指令的执行不仅影响运行程序本身,也会影响其他程序,甚至整个系统。这些指令一般只有操作系统才能执行,而一般用户程序不可执行。
非特权指令(non-privileged instruction):在管态和目态下均可执行的指令,这些指令的执行只与运行程序本身有关,不会影响其他程序和操作系统,如数据传送指令、算术运算指令等。
处理器状态及状态转换:
处理器状态:分为管态和目态,由一位触发器标识,通常属于程序状态字的一部分。
管态(supervisor mode):也称为系统态(system mode)、核心态(kernel mode),是操作系统运行时所处的状态。计算机处于管态时可以执行硬件所提供的全部指令,包括特权指令和非特权指令。由于利用特权指令可以修改程序状态字,而机器状态是程序状态字的一部分,因而在管态下可以改变机器状态,从而可以由管态转换为目态。
目态(object mode):也称为用户态(user mode),是一般用户程序运行时所处的状态。处理器在处于目态时只能执行硬件机器指令的一个子集,即非特权指令。一旦用户程序在目态下执行特权指令,硬件将产生中断,进入操作系统,特权指令的执行将被制止。由于“置程序状态字”为特权指令,目态程序不能将其运行状态转换为管态,这样就可以防止用户有意或无意地侵入系统,从而起到保护系统的作用。
从目态到管态的转换:由于修改处理器状态字指令属于特权指令,只能在管态下执行,因而目态程序无法直接控制处理器状态的转换。处理器状态由目态转换为管态的唯一途径是中断。中断发生时,中断向量中的处理器状态字应标识处于管态,这个标识一般是由操作系统初始化程序来设置的。
从管态到目态的转换:管态到目态的转换可以通过修改程序状态字(置PSW)来实现。由于操作系统运行于管态,用户程序运行于目态,因而这种状态转换伴随着由操作系统到用户程序的转换。
补充:目态和管态的区别:
当CPU处于目态时,不允许执行特权指令;当CPU处于管态时,可执行包括特权指令在内的一切机器指令。当CPU处理系统程序的时候,CPU会转为管态,CPU在管态下可以执行指令系统的全集(包括特权指令与非特权指令)。
当CUP处理一般用户程序的时候,CPU的状态又由原来的管态转为目态,这个时候程序只能执行非特权指令。CPU就是通过这样的机理保护操作系统的安全性。
地址映射机构:多道程序系统中,硬件需要提供地址映射机构,负责将运行程序所产生的逻辑地址(虚地址,程序内产生的地址)转换为内存物理地址(实地址,物理存储器地址)
存储保护设施:多道程序系统中,硬件必须提供存储保护设施,发生错误时及时发现并触发中断进入管态加以制止,防止应用程序侵犯操作系统的空间和其他应用程序的的空间。地址检查:(1)越界检查,只去该去的地方(2)越权检查(对共享区域),只做该做的事
中断装置:发现并响应中断的硬件机构。
发现中断:中断发生时能够识别,有多个中断同时发生时,按优先级别响应最高者。
响应中断:将目前运行进程中的中断向量PSW和PC压入系统栈,然后根据中断原因到指定的内存单元将新的中断向量取出并送到寄存器中,从而控制转到响应的中断处理程序。
通道与DMA控制器
通道:专门负责I/O操作的处理器,具有自己的指令系统,可以执行通道程序,完成CPU委托的输入输出操作任务。
DMA(direct memory access):直接存储器存取,是与通道相似的输入输出方式,DMA控制器接受CPU的委托完成数据在内存与块型设备之间的传输。与通道相比,DMA控制器相对简单,没有专门的指令系统,一般一次只能传输一个数据块。
1.6 操作系统的界面形式:
交互终端命令:又称命令行(command line),是分时造作系统所具有的界面形式
图形用户界面(GUI)
触屏用户界面
作业控制语言(job control language,JCL):是批处理系统所具有的界面形式
系统调用命令(system call):也称应用程序接口(application program interface,API),这是在用户程序级别上与操作系统打交道的方式。
1.7研究操作系统的几种观点:
进程观点:将操作系统看成由若干个可以独立运行的程序和一个对这些程序进行协调管理的核心组成,这些运行的程序成为进程。每个进程完成某一特定任务。同时运行的进程之间可能会发生相互作用,表现为互斥、同步、通信、死锁、饥饿等,这些都是操作系统乃至并发程序设计中的核心问题。操作系统必须协调进程之间的相互作用,以使各个进程正常结束并得到正确的执行结果。
资源管理观点:操作系统是一个资源管理程序,所管理的资源包括硬件资源(处理器、内存、设备等)和软件资源(文件、数据等),用户在使用资源前需要向操作系统提出申请,用完后将资源归还给操作系统
虚拟机观点:操作系统是一个虚拟机,操作系统是硬件上运行的第一层系统软件,它对硬件功能进行第一次扩充,扩充之后的计算机系统具有功能强大、使用方便等特点。
写在最后,
因本系列文章主要为复习,故重点关注操作系统概念知识与理论知识,涉及操作系统的界面形式详细介绍、操作系统的运行机理详细过程、操作系统举例等内容就不再赘述,若读者需要学习操作系统完整知识请另参阅教材及相关线上课程,笔记仅作为参考,若读者发现内容有误请联系QQ:3549546727指正,谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。