我们平常所说的计算机,严格的讲应该指的是计算机系统,它包含硬件(如CPU,内存,显示器,打印机等)和软件(在硬件中运行的各种程序)。软件部分又分为系统软件和应用软件。应用软件是人们平时用于管理和完成各种业务的程序,而系统软件则是管理和控制计算机系统的核心通常把这部分称为计算机操作系统(如Windows,Linux等系统软件。Windows是供PC使用的单用户,多任务,分时操作系统;Linux是在大中型计算机系统中使用的多用户,多任务,分时操作系统。由于现在PC的硬件环境非常完善,也可以在PC上安装UNIX操作系统)。
通常把没有配置系统软件的计算机称为裸机,它的功能非常弱,只能进行0和1的二进制运算。把计算机操作系统加载到计算机硬件上后,就可以使计算机功能变得非常强大,服务质量非常高,使用非常方便从而为使用计算机的人提供一个安全可靠的应用环境。同时,操作系统可以有效而合理地组织和安排多个用户共享计算机系统的各类设施,最大限度地提高这些资源的利用率。
操作系统的定义
根据冯·诺依曼的指导思想计算机硬件系统是将运控部件(CPU),内存,输入输出部件等安装在计算机主板上通过逻辑连接构成。要使这些部件能够发挥其性能,就需要一套管理(控制,分配)硬件和组织程序有序运行的程序。这套程序就是人们通常所说的操作系统。
一般地操作系统由许多可供用户调用的程序组成。这些程序分为三类:
信息管理
主要提供对信息的存储,检索,修改和删除等功能
进程管理
主要为程序的执行而创建进程,调度进程,挂起进程,终止进程和重启进程等。
内存管理
主要为内存分配所需的内存和回收进程以运行结束后所释放的内存。
操作系统的功能及服务对象
在计算机系统上配置操作系统,就是让硬件功能得到成百上千倍的提升。通常,个人计算机系统是安装小规模,单用户,多任务的分时操作系统(如Windows);而证券,银行,交通运输行业中的信息处理系统,大都需要安装大规模,多用户,多任务的分时操作系统(如UNIX)。
操作系统的功能
管理和控制CPU
管理存储器(包括内存和外存)
管理输入输出(I/O)设备
对系统中各类信息(通常也称文件)进行管理
上述功能的完成,是靠计算机系统的控制器与操作系统的配合而实现的。
操作系统的服务对象
从大的方面讲,操作系统或者说整个计算机系统都是为人服务的。但具体则是用于完成计算机系统硬件的管理和控制,具体完成对各类信息的编辑,运行,输入输出等等实行控制。因为,在计算机系统中,有多个程序(作业)并发执行,竞争使用资源。这时操作系统根据资源的状态和运行程序的优先级等条件按一定的算法将资源分配给具备条件的程序(进程或线程)。
在计算机系统中,人们是通过操作系统或者说是操作系统提供的各种相关命令来使用计算机的,所以说操作系统是用户与计算机系统的接口。
操作系统的结构
操作系统是一个十分复杂而庞大的系统软件。为了控制该软件的复杂性,可以用软件工程的概念,原理规范来开发,运行和维护该软件,以杜绝开发软件的随意性,编程冗余和维护困难等问题。为此,人们把做工程的思路和方法应用到了软件的开发过程中。
层次结构
在层次结构中整个操作系统的构成通常以分层的结构来实现,各个部分关系清晰,一目了然
内核层
它是操作系统的最里层,是唯一直接与计算机硬件打交道的一层。他使得操作系统和计算机硬件相互独立。也就是说,只要改变操作系统的内核层就可以使同一操作系统运行于不同的计算机硬件环境下。内核提供了操作系统中最基本的功能,它包括了装入,执行程序以及为程序分配各种硬件资源的子系统。把软件和硬件所传递的各类信息在内核进行处理。这样,对普通用户来讲,使复杂的计算机系统变得简单易操作。
服务层
服务层接受来自应用程序或命令层的服务请求,并将这些请求译码为传送给内核执行的指令,然后再将处理结果回送到请求服务的程序。通常,服务层由众多程序组成可以提供如下服务。
访问I/O设备:将数据进行输入输出。
访问储存设备(内存或外存):把数据从磁盘读出后送到内存或将内存的数据写到磁盘。
文件操作:通常指打开(关闭)文件,读写文件。
特殊服务:窗口管理,通信网络和数据库访问等。
命令层
它提供用户接口,是操作系统中唯一直接与用户(应用程序)打交道的部分
用户
这里通常指应用程序。
模块结构
模块结构是指在开发软件尤其是像计算机操作系统这样的大型软件时,由于其功能复杂,参加开发工作的人员众多,要让每个人都能各负其责,各尽其职,有序的完成开发任务,通常的做法是根据软件的大小,功能的强弱和参与人员的具体情况,把开发软件工作按功能划分为若干块,分散开发,集中组合,调试,使开发的软件功能完善结构优化。
在整个计算机系统中,不管是层次机构还是模块结构操作系统都可以用下图来说明其构造体系。
高层:用户接口(命令接口,程序接口,图形接口)
中层:对对象实施操作和管理的软件合集
底层:操作系统的对象(CPU,内存,I/O设备,文件和作业)
从上图可以看到,底层实际上是操作系统控制和管理的计算机硬件,各类信息和需要运行的程序等部分。
中层是指完成底层任务所需要的各类程序,这是一个庞大的软件体。
除了上面所讲的两个部分外,余下的就应该是用户的各类应用程序了,这些应用程序这样与操作系统的管理程序实现调用呢?这需要一个契入点,也就是人们日常所说的接口。也就是说,应用程序是通过这些接口渗透到计算机系统的核心的。反之一样。