操作系统原理
操作系统原理
随着计算机技术的日益发展,用户直接使用大型机器并独占机器,无论是对机器的效率来说还是对方便用户来说都不适宜。人们创造出一类依靠计算机来管理自己和管理用户的程序,叫做操作系统。操作系统是随着硬件和软件的不断发展而逐渐形成的一套软件系统,用来管理计算机资源(如处理器、内存、外部设备和各种编译、应用程序)和自动调度用户的作业程序,而使多个用户能有效地共用一套计算机系统。
操作系统是一个大型的程序系统,它负责计算机系统软、硬件资源的分配和管理;控制和协调并发活动;提供用户接口,使用户获得良好的工作环境。
以多道程序设计为基础的操作系统具备的主要特征是并发与共享。另外。由于操作系统要随时处理各种事件,所以它也具备不确定性。
操作系统具有的资源管理功能包括:处理机分配、存储管理、设备管理、软件资源管理。操作系统资源管理的目标是提高系统资源的利用率和方便用户使用。
操作系统的核心任务是系统资源分配、控制和协调并发活动。
批量操作系统的主要特征是“批量”,优点是系统的吞吐率高,缺点是对用户的响应时间较长,用户不能及时了解自己程序的运行情况并加以控制。
分时操作系统一般采用时间片轮转的办法,使一台计算机同时为多个终端用户服务,该系统对每个用户都能保证足够快的响应时间,并提供交互会话功能。分时系统与批量系统的主要差别在于,所有用户界面都是通过像电传打字机或CRT联机终端那样的设备产生的。每个用户通过各自的终端使用计算机。分时系统具有的特点:并行性:共享一台计算机的众多联机用户可以在各自的终端上同时处理自己的程序;独占性:分时操作系统采用时间片轮转的方法使一台计算机同时为许多终端用户服务;交互性:用户与计算机之间可以进行“对话”,用户可以根据运算结果提出下一步要求,直到全部工作完成。
(批量操作系统、分时操作系统的出现标志着操作系统的初步形成。)
实时操作系统能够对外部输入的信息在规定的时间内(截止期限deadline)处理完毕并作出反应。其另一个重要的特征是可预测性分析。操作系统功能应该具有有限的、已知的执行时间。对实时应用进程的CPU调度应该是基于时间约束的,以满足截止期限的要求。主存管理,即使有虚拟主存,也不能采用异步和无法预测的页面或段的换进换出。而文件在磁盘上的物理结构一般应采用连续分配方式,以避免耗时的、不可确定的文件操作,如动态确定磁盘柱面的搜寻操作。实时系统按其使用方式分为实时控制和实时信息处理。实时系统要求有高可靠性和安全性,系统的效率(灵活性)则放在第二位,系统通常是采用双工方式工作的。实时操作系统没有分时操作系统那样强的交互会话功能,通常不允许用户通过实时终端设备去编写新的程序或修改已有的程序。
在个人计算机和工作站领域有两种主流操作系统:一个是微软公司的磁盘操作系统(MS-DOS)和具有图形用户界面的视窗操作系统(Windows);另一个是UNIX系统和Linux系统。微软公司用各种类型的Windows系统替代了MS-DOS操作系统,IBM公司也将MS-DOS升级为多任务系统OS/2。UNIX系统是一个多用户的、人机交互的分时操作系统,自问世以来十分流行,它运行在从高档个人计算机到大型机等各种不同处理能力的机器上,提供了良好的工作环境;它所有的实用程序层和核心层的90%代码是用C语言写成的,具有可移植性、安全性,提供了很好的网络支持功能,大量用于网络服务器。而目前十分受欢迎的、开放源码的操作系统Linux,则是用于个人计算机的、类似于UNIX的操作系统。
网络操作系统除了具备一般操作系统应具有的功能模块之外(如系统核心、设备管理、存储管理、文件系统等),还要增加一个网络通信模块,该模块由通信接口中断处理程序、通信控制程序以及各级网络协议等软件组成。网络操作系统提供的功能包括:允许用户访问网络主机中的各种资源;对用户访问进行控制,仅允许授权用户访问特定的资源;对远程资源的利用如同本地资源一样;提供全网统一的记账办法;联机地提供最近的网络说明资料;提供比单机更可靠的操作。
分布式系统又称为分布式计算机系统或分布式数据处理系统,是由多个相互连接的处理单元组成的计算机系统,分布式系统是一个一体化的系统。在整个系统中有一个全局的操作系统称为分布式操作系统,它负责全系统的资源分配和调度、任务划分、信息传输、控制协调等工作,并为用户提供一个统一的界面、标准的接口。
UNIX是多用户交互式分时操作系统,在结构上分成核心层和实用层。其中,核心层小巧,设计得非常精干简洁,包括进程管理、存储管理、设备管理、文件系统几个部分,主要算法经过反复推敲,对其中包含的数据结构和程序进行了精心设计,只需占用很小的存储空间,并能常驻内存,保证了系统较高的工作效率;实用层丰富,是那些能从核心层分离出来的部分,包含丰富的语言处理程序和其他操作系统常见的实用程序(如编辑程序、调试程序、有关系统状态监控和文件管理的实用程序等),它们以核外程序形式出现并在用户环境下运行。
UNIX使用灵活的命令语言shell。shell属于核外程序,同时作为一种程序设计语言,它具有许多高级语言所拥有的控制流能力,如if、for、while、until、case语句,以及对字符串变量的.赋值、替换、传递参数、命令替换等能力。用户可以根据这些功能用shell语言写出“shell”程序存入文件,以后用户只要打入相应的文件名就能执行它,这种方法易于系统的扩充。
UNIX系统采用树型目录结构来组织各种文件及文件的目录,这样的组织方式有利于辅存空间分配及快速查找文件,也可以为不同用户的文件提供文件共享和存取控制的能力,且保证用户之间安全高效的合作。
UNIX系统中的文件是无结构的字节序列。在缺省情况下,文件都是顺序存取的,但用户如果需要的话,也可为文件建立自己需要的结构,用户可以通过改变读/写指针对文件进行随机存取。UNIX将外部设备与文件一样看待,外部设备如同磁盘上的普通文件一样被访问、共享和保护。
UNIX系统所有的实用程序层和核心层的90%代码是用C语言写成的,这使得UNIX成为一个可移植的操作系统。操作系统的课移植性带来了应用程序的可移植性,因而用户的应用程序既可用于小型机,又可用于其他的微型机或大型机,从而大大提高了用户的工作效率。UNIX也鼓励用户用UNIX的工具开发自己适合需要的环境,造成UNIX系统版本太多,应用程序的可移植性不能完全实现;UNIX的核心是无序模块结构,不是层次式的,故显得十分复杂,不易修改和扩充;UNIX也缺少诸如实时控制、分布式处理、网络处理等能力,这一缺点也在不断改进中。
进程是指一个具有独立功能的程序关于某个数据集合的一次运行活动。进程是一个能独立运行的单位,能与其他进程并行的活动。进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。
进程是程序在处理机上的一次执行过程,它是一动态概念;程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态概念。进程是有一定生命期的,它能够动态地产生和消亡,即进程可由“创建”而产生,由调度而执行,因得不到资源而暂停,以致最后由“撤销”而消亡;程序可以作为一种软件资料而长期保存。
在支持多任务运行的操作系统中,活动的最小单位是进程。进程一定包含一个程序,因为程序是进程完成功能的逻辑描述;而一个程序可以对应多个进程。如果同一程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程。或者说,若干不同的进程可以包含相同的程序,即用同一程序对不同数据先后或同时加以处理,就对应于好几个进程。
文件的逻辑结构可分为两种形式:无结构的流式文件、有结构的记录式文件。
其中,无结构的流式文件是相关的有序字符的集合,文件长度即为所含字符数。流式文件不分成记录,而是直接由一连串信息组成。对流式文件而言,它是按信息的个数或以特殊字符为界进行存取的。流式文件对操作系统而言,管理比较方便;对用户而言,适于进行字符流的正文处理,也可以不受约束地灵活组织其文件内部的逻辑结构。UNIX系统中的文件采用流式结构,但为了使用方便,UNIX将流式文件按512 B 的大小划分为若干个逻辑记录,从而将流式文件结构转换为记录式文件。
有结构的记录式文件在逻辑上总是被看成一组连续顺序的记录的集合。每个记录由彼此相关的域构成。定长记录文件的长度可由记录个数决定,变长记录文件的长度为各记录长度之和。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 yyfangchan@163.com (举报时请带上具体的网址) 举报,一经查实,本站将立刻删除