Operating System
An operating system is a program which acts as an interface between a user of a computer and the computer hardware. The purpose of an operating system is to provide an environment in which a user may execute programs. The primary goal of an operating system is thus to make the computer system convenient to use. A secondary goal is to use the computer hardware in an efficient manner.
An operating system is an important part of almost every computer system.A computer system can be roughly divided into 4 components:
.The hardware (cpu, memory, I / O devices).
.The operating system.
. The applications programs (compilers, database systems, video games, business programs).
.The users (people, machines or other computers).
The hardware provides the basic computing resources. The applications programs define the ways in which these resources are used to solve the computing problems of the users. There may be many different users trying to solve different problems. Accordingly, there may be many different applications programs. The operating system controls and coordinates the use of the hardware among the various application programs for the various users.
An operating system is similar to a government. The basic resources of a computer system are provided by its hardware, software, and data, the operating system provides the means for the proper use of these resources in the operation of the computer system. Like a government, the operating system performs no useful function by itself. It simply provides an environment within which other programs can do useful work.
We can view an operating system as a resource allocate. A computer system has many resources (hardware and software) which may be required to solve a problem: cpu time, memory space, file storage space, input / output (I / O) devices, and so on. The operating system acts as the manager of these resources and allocates
操作系统
操作系统是在计算机用户与计算机硬件之间起接口作用的程序。操作系统之目的在于提供一种用户可以执行程序的环境。因此,操作系统的主要目标是要使计算机系统方便使用。第二个目标则是能高效地利用计算机硬件。
操作系统几乎是每个计算机系统的重要部分。计算机系统可以大致分成四部分:
.硬件(CPU、存储器、输人/输出设备);
.操作系统;
.应用程序(编译程序、数据库系统、视频游戏、商务程序);
.用户(人、机器或其他计算机)。
硬件提供基本的计算资源。应用程序规定了这些资源以何种方法用于解决用户的计算问题。可能有许多不同的用户在试图解决不同的问题。据此,便可能有许多不同的应用程序。操作系统控制并在各式各样的应用程序之间为不同的用户协调硬件的使用。
操作系统好似一个政府。计算机系统的基本资源是由其硬件、软件和数据提供的。操作系统提供的是计算机系统运行时合理使用这些资源的方法。像政府一样,操作系统本身完不成任何有用的工作。它只是提供一个其他程序能在其中进行有用工作的环境。
我们可以把操作系统看成是一个资源分配器。计算机系统有许多解决问题所需的资源(硬件、软件):CPI时间、存储器空间、文件存储空间、I/O设备等。操作系统起这些资源的管理员的作用,并把这些资源作为特定的程序和用户为完成任务所必需的资源分配给他们。由于可能会有许多可能是相互冲突的资源要求,操作系统必须决定如何分配资源,计算机系统的运作才是合理的、高效的。
用“做什么”,而不用“是什么”来定义操作系统,也许会容易些。操作系统的主要目的是方便用户。操作系统之所以存在是因为用操作系统计算比没有操作系统要容易些。当你观察小型个人机的操作系统时,这一点更为清楚。
操作系统的第二个目的是提高计算机系统的运行效率。对于大的分时多用户系统,这一点特别重要。一般来说,这些系统都相当昂贵,因此希望能使这些系统尽可能高效地运行。方便和高效这两个目标有时是矛盾的。过去,对效率的考虑常常重于方便性。因此,操作系统理论的多数都集中在计算机资源的优化使用方面。
为了解什么是操作系统以及它们是做什么用的,我们来看一下在过去30年里它们是怎样发展的。通过追溯它们的演变过程,可以发现操作系统的共同部分,并且可以看出它们是怎样发展的以及为何这样发展。
操作系统与计算机结构彼此间有很大的影响。为便利硬件的使用,开发了操作系统。由于设计并使用了操作系统,硬件设计的改变能简化操作系统,已成为显而易见的事。从简短的历史回顾中,可以看到新的硬件特性的出现是怎样使得许多操作系统问题得以有实质性解决的。起初,只有计算机硬件。早期计算机是一个靠控制台运行的庞然大物。程序员编写程序,然后直接由操作者的控制台来运行程序。首先,程序需通过手工从前面板上的开关、纸带或穿孔卡片装人存储器。然后,为装人起始地址并开始执行程序,要按合适的按钮。程序运行时,程序员或操作者可以通过控制台上的显示灯监控程序的执行。如果发现错误,程序员可中止程序的运行,检查存储器和寄存器的内容,并直接从控制台调试该程序。将输出打印出来或者在纸带或卡片上穿孔以便以后打印用。
手工交互本质是这种运行环境的重要特点,程序员就是操作者。大多数系统使用签约或预订的办法来分配机时。如果打算用计算机,你得去填签约单,找寻该机以后的空闲时间,并签约预订时间。
可是,这种方法存在一些问题。假设你签约了一个小时来运行你开发的程序。你可能遇到特别难处理的毛病,并且不可能在一小时内完成。如果别人已经预约了下面的一段时间,你就不得不停止工作,尽可能地收拾起你的工作,以后某个时间再回来继续工作。另一方面,如果事情一帆风顺,你可能35分钟内就完成了。但是因为你以为可能需要上机时间长,签约了一小时,因而计算机可能空闲25分钟。
随着时间的推移,又开发了另一些软件和硬件。读卡机、行式打印机和磁带变得普遍了。为简化编程任务,设计了汇编程序、装人程序和链接程序。建立了通用函数库。一些通用的函数可以拷贝到新的程序中去而无需再重新编写。
完成输人/输出任务的程序是特别重要的。每一个新的输人/输出设备都有它自己的特点,要求细心编程。对每一个输人/输出设备要写一个特殊的子程序。这种子程序叫设备驱动程序。设备驱动程序知道对某一特定设备而言应如何使用缓冲器、标志位、寄存器、控制位和状态位。每个不同类型的设备都有自己的驱动程序。像从键盘读人一个字符这样的简单任务,可能涉及到与设备有关的一系列复杂操作。只要简单地从库中使用设备驱动程序即可,而不用每次编写所需的程序。
此后,出现了Fortran, Cobol和其他语言的编译程序,大大简化了编程任务,但计算机的操作更复杂了。例如,为准备执行Fortran程序,首先程序员需要把Fortran的编译程序装人计算机。通常,编译程序存放在软盘上。因此,要把合适的软盘插人它的驱动器。Fortran的编译程序生成汇编语言输出,然后尚需对其进行汇编。需要把汇编程序的输出与它的支持库程序链接起来。最后,形成该程序的二进制目标码,便可执行了。将其装入存储器,并调
操作系统以多种不同的方法提供服务。两种基本的方法是系统调用和系统程序,各有自己的优点。
系统调用
更基础的服务层次是通过使用系统调用来处理的。系统调用提供了运行中的程序与操作系统之间的接口。通常,这些调用是以汇编语言指令形式提供的,一般都在汇编语言程序员所使用的手册中列出。
系统调用可大致分为三类:进程或作业控制、设备和文件操作以及信息维护。在下面的讨论中,我们简要地说明操作系统提供的系统调用的类型。遗憾的是,我们的描述可能看起来有点浅显,因为此刻系统调用的大多数都涉及到以后所要讨论的一些概念和功能或者由那些概念和功能所支持。
进程和作业控制
运行着的程序既要能正常地停止其运行(结束),也要能非正常地停止其运行(异常终止)。如果程序发现在其输人中有错误,并想要非正常地停止程序,它可能也想要定义一个错误级别。较严重的错误可以用较高级别的参数来表明。因此,通过把正常的终止定义成零级的非正常终止,便可将正常与非正常的终止联系起来。
执行某一程序的进程或作业可能需要装人并执行另一个程序。一个有趣的相关问题是,当被装人的程序终止以后,控制应返回何处。这个问题与已有程序是否丢失、保存或是否允许继续与新程序并发地执行有关。
如果新程序结束时,控制返回已有程序,我们就必须把己有程序的存储器映像保存起来,并有效地建立了一种能让一个程序调用另一个程序的机制。如果两个程序能并发地继续,我们便建立了一个多程序的作业或进程。常常设有一个专为此目的的系统调用(创建进程或提供作业)。
如果我们创建一个新作业或进程或者甚至是一组作业或进程,我们应能控制其执行。这种控制要求能决定和重置作业或进程的属性,包括优先权、最大允许的执行时间等等(获得进程属性和设置进程属性)。如果发现它是不正确的或不再需要它了,也许还想停止我们所建立的某个作业或进程(终止进程)。
建立新作业或进程之后,便需要等待它们执行完毕。可能得等待一段时间(等待时间),但更可能的是等待某个特定的事件(等待事件)。当该事件发生时,作业或进程应发出信号(信号事件)。此类协调并发进程的系统调用,以后再作详尽的讨论。
许多系统为程序提供时间剖析器。这表示程序在某一特定处或特定的一组单元执行时所花费的时间。每次定时器中断出现时,都记录下程序计数器的数值。在定时器中断的频率足够高的情况下,便可获得花费在程序各部分上的时间的统计图
文件操作
首先,要能建立或删除文件。这种系统调用要求文件名,还可能要求某些属性。一旦文件建立,需要打开并使用该文件。可能还要读、写和重定位。最后,尚需关闭该文件,表示我们不再使用它了。
如果文件系统是目录结构的,还得为目录准备同样的一套操作。此外,不论是文件还是目录,我们应能够决定各种属性之值,如果有必要,可能还得重置属性。文件属性包括文件名、文件类型、保护代码、记数方面的信息等等。为具备这种功能,要有获取文件属性和设置文件属性这两个系统调用
设备管理
文件可被看成是抽象或虚拟设备。因此,许多文件的系统调用也需要设备。可是,如果系统是多用户的话,首先我们必需申请设备,以确保我们可以独占该设备。如果我们不用此设备,我们必需将其释放。这些功能类似文件的打开或关闭的系统调用
一旦发出对设备的请求(并分配给我们),便可读、写以及重新定位该设备,就像文件一样。事实上,在输人/输出设备与文件之间的相似性是如此之大,以致于许多操作系统把这两者合并成一个组合的文件/设备结构。在这种情况下,输人/输出设备用特殊文件名来鉴别。
信息维护
许多系统调用的存在只是为了在用户程序与操作系统之间传递信息。例如,大多数系统都有返回当前时间和日期的系统调用。另一些系统调用可能返回关于系统的信息,如当前用户数、操作系统的版本号,内存或磁盘空间的剩余容量等等。
此外,操作系统保持着全部关于它的作业及进程的信息,并有访问这些信息的系统调用。一般来说,还有用来使这些信息重置的调用(获得进程属性和建立进程属性)
系统程序
.文件操作:这些程序建立、删除、复制、重新命名、打印、转储、列表和对文件和目录的一般操作。
.状态信息:有些程序只要操作系统提供日期、时间、内存或磁盘可用空间、用户数或类似的状态信息。然后,将这些信息格式化并在终端或其他输出设备或文件上打印出来。
.文件修改:已有若干种建立和修改盘上文件内容的文本编辑器。
.程序设计语言支持:操作系统经常提供公用程序设计语言(如Fortran, Cobol, Pascal, Basic等)的编译程序、汇编程序和解释程序。最近,这类程序中不少也标价单独出售了。
.程序装人及执行:一旦程序汇编或编译完毕,就得装人存储器执行。系统可能提供绝对装入程序、浮动装人程序、连接编辑程序以及覆盖装人程序。同时也需要较高级语言或机器语言的调试系统。
.应用程序:此外,大多数操作系统都带有对解决某些特具共性的问题来说很有用的程序,例如,编译程序、文本格式化程序、绘图软件包、数据库系统、统计分析软件包等等。
磁盘操作系统(DOS)是帮助你运行个人机((PC),并管理磁盘的那些程序的集合。DOS控制你个人机的存储器、处理器、外存设备以及输人/输出设备(显示器、键盘、鼠标等),以使你的各种程序之间在时间和空间上都不会相互冲突。这是在你没有察觉的情况下发生的。当你运行程序(例如,字处理或电子表格)时,它是在DOS下运行的,时刻由DOS来控制该程序对你的计算机的使用。
此外,DOS还包括着一些让你管理你的磁盘和其他资源的实用工具程序。例如,可利用DOS实用程序复制、打印和清除文件。这些实用程序是你跟DOS的基本的人机交互。
DOS已存在很长时间了(“长”是对PC机而言的,意思是约10年了)。它主宰着IBM兼容PC机的操作系统领域。现在,它处于第5版:DOS 5,该版本提供了一些很有意义的新特点,并且改善了许多旧的特点。下一节中将讨论DOS的这些新旧特点。
DOS 5的特点
让我们讨论一下DOS对你和你的计算机功能的较特殊的问题。
双用户接口:用户接口是你与程序彼此交互的手段。DOS的传统命令接口要求你在几乎空白的屏幕(一切都是单一颜色的)键人命令。较现代的DOS外壳使用窗口、菜单和对话框(就像微软的Windows那样),并让你选择功能,就地立即见到结果。其结果以明亮的颜色呈现(如果你的监视器能处理它)。
磁盘管理:DOS组织磁盘上的数据,以使每个程序都能找到它所需的数据,而不会意外地搞丢另一个程序的数据。它包括一些让你能对文件进行复制、移动、打印、删除等的实用程序以及对磁盘自身和它们的目录进行管理。利用命令接口或DOS外壳你可访问许多DOS的实用程序。
硬件管理:DOS帮助其他程序有效地访问你的硬件。已有一些实用软件(和其他特征),因此为满足你的需要,可改装硬件环境。
存储器管理:DOS控制全部对存储器的访问,因此当多个程序同时要求存储空间时不会出现重叠现象。作为用户,你有使用存储器的某种控制权。DOS 5的新功能:它能利用扩展/扩充存储器来实现它的许多功能。
程序管理:不论你需要什么样的程序,DOS都给你启动它们的能力。DOS 5的新功能:你可以同时运行若干个程序,并在它们之中随心所欲地切换。
批处理文件:一个批处理文件包含一个或多个命令。你可以把若干命令放到批文件中,并执行该文件,而不用分别去敲人命令。一旦你把该文件存人磁盘,你就可以反复地使用它,可以把该文件送给你的同事、顾客等。有一个特殊的批文件((AUTOEXEC.BAT),在启动期间它是自动执行的。可以把你自己的命令放到该文件中去。
全屏幕编辑程序:DOS 5的新特点是,全屏幕编辑程序这个实用工具使你可以用键盘创建和编辑文本文件。
程序员工具:DOS含有许多能帮助程序员开发DOS下的新软件的特性(程序员的工具不在本研究范围之列)。
当然,DOS还有许多特点,这里只是你经常遇到的一些。
引导程序
假设你的PC机硬盘中已经安装了DOS 5,若没安装,请遵循文档中的指示,在进行下一步之前安装DOS 。
当引导你的系统时,首先启动的是操作系统,使它进人控制。在我们的情况下,就是DOS 5。系统检查存储器以及许多外部设备,然后启动操作系统。
从硬盘引导是件容易的事。如果驱动器A中有盘,把它弹出来(3.5寸盘)或打开驱动器的门锁(5.25寸驱动器)。(DOS将试图从驱动器A引人,如果其中盘已准备好的话。)然后,给计算机上电,并给显示器上电,如果各有自己电源开关的话。观察屏幕上的信息。这些信息是各式各样的,这取决于系统是如何安装的以及在启动时自动处理何种命令。可是,最后你将看到的要么是DOS外壳屏幕,要么就是命令提示。不论是哪个,都表示系统已成功地引导完毕。
本书到处都有帮助你测试所介绍的技术的各个步骤。如果你上机并遵循这些步骤的话,你将学到更多有关DOS的知识。下面的实践练习会使你一步步地明了引导你的计算机的进程。
1.若机器是开着的,关掉它;
2.若驱动器A中有磁盘,将其弹出((3.5寸驱动器)或打开门锁(5.25寸驱动器),这样
DOS就不会从驱动器A引导;
3.给主机上电;
4.如果显示器的电源开关与主机是分开的话,给显示器上电;再给打印机以及其他所
有连接至PC机的硬件上电。
你应能看到和听到PC机在启动。在存储器检查期间,显示器屏幕上将可能有一些信息。你可能会看到关于ROM-BIOS的信息,这是一个很基本的程序,它永久性地存储在计算机中,并启动引导进程。然后,随着系统检查每个驱动器你将会看到该驱动器指示灯在闪烁。DOS 5由磁盘装人存储器的进程中,硬盘驱动器的指示灯一直亮着。随着操作系统硬件的设置,可能出现另一组信息。最后,不是DOS外壳自动启动,就是出现DOS命令提示。命令提示看起来是这样的:
C:、>
如果你不能成功地引导DOS,停机并请教懂行的人。在你还不能成功地引导DOS之前,不要阅读本书下面的部分。
a