1.3 计算机系统的家当
有的人说:“只有文化才能生生不息。”说这话的人,强调了软件资源对组织的重要性。还有的人说:“土地才是根本。”说这话的人,强调了硬件资源对组织的重要性。其实,任何一个组织和系统都应该有硬件资源和软件资源,二者都很重要。
计算机系统当然也不例外,它也包括硬件资源和软件资源,如图1-11所示。操作系统的一个重要功能就是组织、调度和管理这些资源,以便计算机可以高效地执行任务。
图1-11 计算机系统的家当
1.3.1 硬件资源
我们先谈谈计算机的硬件资源。
计算机当然是用来计算的,其核心必然有运算器。运算器用于对数据进行数学运算或者逻辑运算。现在的计算机和手机里都有计算器,我们可以用它来进行数学运算。不过这里所说的运算器,可不是指面向用户的软件功能,而是计算机内部的硬件计算单元集成在CPU(Central Processing Unit,中央处理单元)里。
运算器是计算机里负责脑力劳动的员工,但是干什么并不是它说了算,而是一个叫作控制器的部件说了算。控制器是计算机中控制执行指令的部件,是计算机里的核心管理者,肩负着管理职能,它保证按一定逻辑分析一条指令,保证指令按规定序列自动连续地执行,并且及时响应和处理各种异常情况和请求。控制器也是集成在CPU里。
CPU看起来很小,但却是一块超大规模的集成电路,如图1-12所示。有兴趣的读者可以“解剖”一下计算机,找到CPU看一下。CPU包含运算器和控制器,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令,以及处理计算机软件中的数据。CPU的一个很重要的性能指标是主频(时钟频率),单位一般是MHz或者GHz(1GHz=1024MHz),它和计算机的运算及处理数据的速度相关,主频越高,CPU性能往往越好。
图1-12 计算机CPU示意图
工厂里的东西多了需要找一个库房存放。那么计算机里那么多程序和数据放在什么地方呢?有的朋友脑海里闪现出一个词——硬盘。对,硬盘,用计算机的术语来说,是外部存储器(外存、辅助存储器)。
有“外存”,就有“内存”。内存,也叫内部存储器,或者主存储器。内存和CPU的组合,可称为主机。内存紧密团结在CPU周围,其运行速度快,可惜容量小。容量不足时,可以求助外存(硬盘)。外存虽然离核心(CPU)远,运行速度慢一些,但容量大,这是它的优点。内存和外存都是计算机的存储器,如图1-13所示,是计算机存放程序和数据的库房。存储器容量的大小一般用GB来表示,1GB=1024MB,数值越大,表示容量越大。
图1-13 存储器
计算机也要和外界打交道。我们用键盘给计算机输入各种指令,也经常用鼠标在界面上点来点去,还有的朋友把摄像头、录音装置、游戏杆接到计算机上,这些都是计算机的输入设备(Input Device)。我们通过计算机屏幕看电影,通过耳机听歌曲,这些是计算机的输出设备(Output Device)。输入/输出设备(I/O Device)位于计算机的主机之外,是计算机与外界交换信息的媒介。
综上所述,CPU(包括运算器和控制器)、存储器(包括内存和外存)、输入/输出设备是计算机系统的主要硬件资源,如图1-14所示。所谓计算机操作系统的硬件资源管理,主要就是针对这些资源的管理。
图1-14 计算机的硬件资源
在图1-14中,计算机从输入设备获取指令,运算器在控制器控制下进行计算和分析,由输出设备给出结果。运算器需要时刻读取存储器里的数据,也要往存储器里写入数据。运算器、存储器、输入/输出设备等需要在控制器发送的控制信号的指导下完成自己的工作。
1.3.2 软件资源
打开任何一个运行状态良好的计算机系统,我们可以在桌面上或者“开始”菜单处看到系统中已经安装好的各种软件。这些软件有着特定的功能和用途,是可以让计算机软硬件完成特定功能的指令序列。
计算机的软件资源通常可分为两类:系统软件和应用软件。
1.系统软件
大家听说过编程语言吧,如C、Java、VB、VC、Python等,这些都是专业人员用来开发应用程序的工具和环境。如果需要维护和存储大量结构化数据,我们会安装相应的数据库软件,如Sybase、Oracle、MySQL、Access等。
程序开发语言、数据库软件、各种操作系统及其常用的软件工具,都可以叫作系统软件。
系统软件是管理、运行、维护及调用计算机系统功能和硬件功能的程序的集合,可以完成计算机硬件资源和软件资源的控制与管理。
2.应用软件
很多人玩过计算机游戏,游戏软件就是为了满足人们娱乐需求的应用软件;有的人经常处理文稿,需要在计算机里安装文字处理软件,如WPS、Microsoft Word等;有的人则需要处理各种图像和视频,需要使用Photoshop(PS)或“爱剪辑”视频软件等。这些软件都是为了解决各种具体应用问题的专门软件,可以称为应用软件。
有些应用软件在各个行业均可使用,如文字处理软件、电子表格软件、图形图像软件,这些属于通用应用软件。
而有的应用软件,仅在某个行业使用,如电力系统的维护软件、通信系统的维护管理平台、金融行业的网上银行,这些软件属于行业定制应用软件。