-
1 视频
-
2 作业
什么是操作系统
操作系统(OperatingSystem,OS)是控制和管理计算机硬件资源和软件资源,并为用户提供交互操作界面的程序集合。操作系统是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。计算机系统可以粗分为硬件、操作系统、应用软件和用户四个部分,操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。计算机系统层次结构如图所示:
操作系统的基本功能
计算机系统的资源可分为设备资源和信息资源两大类。设备资源指的是组成计算机的硬件设备,如CPU、存储器、打印机、显示器、键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各种数据,如文件、程序库、数据库、系统软件和应用软件等。从资源管理的角度看,操作系统对计算机进行控制和管理的功能主要分为CPU管理、存储管理、设备管理和文件管理四部分。
CPU管理
CPU是计算机系统中最重要的硬件资源,任何程序只有占有了CPU才能运行。计算机系统中程序分为系统类程序和应用类程序两种类型,系统类程序随系统启动并常驻内存中,应用类程序通常存放在外存中,需要时再调入内存运行。驻留内存的程序需要资源分配、运行调度、相互协调和通信等管理。存放在外存中的程序除了需要和常驻内存程序类似管理之外,还需要调入、调出、启动和撤销等管理。这些管理都以进程为标准执行单位,所以CPU管理通常也称为进程管理。
进程这个概念是20世纪60年代初由麻省理工学院的MULTICS系统和IBM公司的CTSS/360系统引入的。进程可以简单看作是程序的一次执行活动,在这一过程中,进程被创建、运行,直到被撤销完成任务为止。进程完成其任务需要一定的资源,包括CPU时间、内存、文件和I/O设备等。这些资源在创建进程或执行进程时分配给进程,当进程终止时,操作系统会收回所有可再利用的资源。
程序和进程是两个既有联系又有区别的概念,它们主要区别有下列4点:
首先,进程是一个活动主体,描述程序启动后的动态行为,强调其执行过程,进程由程序执行而产生,随执行过程结束而消亡,所以进程是有生命周期的。而程序是静态的概念,它描述的是静态的指令集合及相关的数据结构;
其次,进程具有并发特征,而程序没有,进程在并发执行时,由于需要使用CPU、存储器、I/O设备等资源,会受到其他进程的影响和制约;
第三,进程与程序不是一一对应的。一个程序的多次执行可产生多个不同的进程,一个进程也可对应多个程序;
最后,程序可以长期保存在外存中。而进程则是正在执行的程序,当程序执行完毕,进程也就不复存在,进程的生命是暂时的。
存储管理
操作系统中的存储管理是指对内存空间的控制和管理。计算机存储系统分为内存储器和外存储器。CPU可以直接访问内存,但不能直接访问外存,外存中的数据和程序必须调入内存,才能被CPU访问和处理。
存储管理主要有下列4个功能:
· 存储分配 主要考虑如何提高存储空间利用率,常用存储分配方式有直接分配、静态分配和动态分配3种方式;
· 虚拟存储 虚拟内存是计算机系统内存管理的一种技术。由于物理内存容量有限,虚拟存储器通过交换功能,在逻辑上对内存空间加以扩充,为用户提供比实际内存空间大得多的地址空间;
· 地址变换 将外存空间中的逻辑地址转换为内存空间中的物理地址。如果一个程序要执行,那么它必须先映射成绝对地址并装入内存。随着程序的执行,进程可以通过产生绝对地址来访问内存中的程序。程序执行完毕后,其内存空间得以释放,下一个程序可以装入内存并执行;
· 存储保护 保护各类程序及数据区免遭破坏。为确保正确操作,必须保护操作系统不被用户程序所访问,并保护用户程序不为彼此所访问。如果程序出现某种失败,操作系统必须对这个程序进行异常终止。
设备管理设备管理是对硬件资源中除CPU、存储器之外的所有设备进行管理。设备管理的主要任务是负责控制和操纵各类外部设备,提供每种设备的驱动程序和中断处理程序,实现不同的I/O设备之间、I/O设备与CPU之间、I/O设备与通道以及I/O设备与控制器之间的数据传输和交换,屏蔽硬件细节,为用户提供一个透明、高效、便捷的I/O操作服务。设备管理的功能包括监视系统中所有设备的状态、设备分配和设备控制等。设备控制包括设备驱动和设备中断处理。
文件管理
文件是存放在外部介质上的具有唯一名称的一组相关信息的集合。文件管理的主要任务是对计算机系统中各种系统文件、应用文件以及用户文件等软件资料进行管理,实现按名存取,保证文件安全,并提供使用文件的操作和命令。在计算机中,对文件的操作主要有创建、删除、打开、关闭、修改、复制、移动、保存、更名、共享和传递等。操作系统通过管理大容量存储介质(如磁盘、光盘等)及控制它们的设备,来实现文件的管理。文件通常组合成文件夹的形式来存放,以方便组织和管理。最后,多个用户访问文件时,需要控制由什么人按什么方式(例如,读、写或附加)来访问文件。
操作系统分类
根据操作系统的用户界面的使用和对作业处理方式的不同,可分为批处理操作系统、分时操作系统、实时操作系统;从用户使用计算机的角度,操作系统又分为个人计算机操作系统、网络操作系统、分布式操作系统和嵌入式操作系统;根据源码开放程度,可分为开源操作系统和闭源操作系统。
批处理操作系统
批处理操作系统(BatchProcessing Operating System)是一种早期用在大型计算机上的操作系统,其特点是:用户脱机使用计算机、作业成批处理和多道程序运行。
批处理操作系统的工作方式是:用户事先把上机的作业准备好,该作业包括程序、数据和一些有关作业性质的控制信息,然后提交给计算机操作员。作业通常是用穿孔卡片来写的。计算机操作员将许多用户的作业按类似需求组成一批作业,输入到计算机中,在系统中形成一个自动转接的连续的作业流,系统自动、依次执行每个作业。最后由操作员将作业结果交给用户。在这种执行环境下,因为机械I/O设备速度比电子设备的速度要慢很多,CPU经常空闲。目前,批处理操作系统已经不多见了。
分时操作系统
分时操作系统(TimeSharing Operating System,TSOS)允许多个终端用户同时共享一台计算机资源,彼此独立互不干扰,用户感到好像一台计算机全为他所用。分时操作系统的工作方式是:一台主机连接若干个终端,每个终端有一个用户在使用,终端机可以没有CPU与内存。用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。
分时操作系统将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。分时是指若干道程序对CPU运行时间的分享。分时系统具有多路性、交互性、独占性和及时性等特点。常见的通用操作系统是分时系统与批处理系统的结合。其原则是:分时优先,批处理在后,UNIX是其典型的代表。
实时操作系统
实时操作系统(Real TimeOperating System,RTOS)是指使计算机能及时响应外部事件的请求,在严格规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致地工作的操作系统。实时系统的主要特点是资源的分配和调度首先要考虑实时性,然后才是效率。
实时操作系统有明确的时间约束,处理必须在确定的时间约束内完成,否则系统会失败,通常用在工业过程控制和信息实时处理中。例如:控制飞行器、导弹发射、数控机床、飞机票(火车票)预定等。实时操作系统除具有分时操作系统的多路性、交互性、独占性和及时性等特性之外,还必须具有可靠性。在实时系统中,一般都要采取多级容错技术和措施用以保证系统的安全性和可靠性。
个人计算机操作系统
个人计算机操作系统(PersonalComputer Operating System)是随着微型计算机的发展而产生的,用来对一台计算机的软件资源和硬件资源进行管理,通常分为单用户单任务操作系统(典型代表是DOS)和单用户多任务操作系统(典型代表是Windows 98)两种类型。个人计算机操作系统的最终目标不再是最大化CPU和外设的利用率,而是最大化用户方便性和响应速度。
分布式操作系统
分布式操作系统(DistributedOperating Systems)是通过网络将大量的计算机连接在一起,以获取极高的运算能力、广泛的数据共享以及实现分散资源管理等功能为目的的操作系统。分布式操作系统主要具有资源共享、加速计算、可靠性和通信等优点。
资源共享可以实现分散资源的深度共享,如分布式数据库的信息处理、远程站点文件的打印等;还可以加快计算速度,即将一个特定的大型计算分解成能够并发运行的子运算,并且分布式系统允许将这些子运算分到不同的站点,那么这些子运算就可以并发地运行,加快了计算速度;提高可靠性,由于在整个系统中有多个CPU系统,如果一个CPU系统发生故障,其他站点可以继续工作;具有通信功能,当许多站点通过通信网络连接在一起时,不同站点的用户可以交换信息。
嵌入式操作系统
嵌入式操作系统(EmbeddedOperating System)是用于嵌入式系统环境中,对各种装置等资源进行统一调度、指挥和控制的操作系统。嵌入式操作系统具有如下特点:
· 系统内核小 由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多;
· 专用性强 嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改;
· 高实时性 高实时性是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性;
· 系统精简 嵌入式系统一般没有针对系统软件和应用软件进行区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。