1、System Software,Chapter 4,概述,系统软件: 一系列无需用户干预、控制和协调计算机及外部设备、支持应用软件开发和运行的软件集合工程师们将各类软件都需要的一些基础工作写成专门的软件(系统软件),提供给开发者,如: 管理计算机资源、监视计算机性能 使用和管理输入/输出设备 将用高级语言写的程序转换成计算机可以执行的指令,2,系统软件的类型,操作系统(operating systems) 实用程序(utilities) 设备驱动程序(device drivers) 语言处理程序(language translators),3,1. 操作系统(Operating Systems
2、),操作系统是计算机系统最重要的程序,也称软件运行环境、软件运行平台操作系统的主要功能: 管理计算机资源 运行应用程序 提供用户与计算机的操作接口,4,操作系统的作用举例,启动计算机: 准备运行环境,包括加载软件、初始化设备等 提供用户接口: 提供操作界面、提供启动应用程序的方法、支持用户与应用程序交互 运行应用程序: 将程序代码从磁盘读入内存,把指令地址装入处理器等,协调资源的使用: 多个程序都要使用处理器、内存、输入/输出设备等 任务调度: 多个任务按什么顺序执行? 监视系统性能: 提供系统运行的详细信息,如CPU 利用率、内存使用率等,操作系统的基本类型:独立操作系统,独立操作系统(桌面
3、操作系统、单机操作系统): 用于个人电脑、服务器等 面向复杂多变的各类应用而设计的通用操作系统 管理本地资源,包括处理器、内存、外部设备、文件等,独立操作系统,Microsoft Windows 个人电脑上使用最多的操作系统Mac OS 只能运行在苹果电脑上Unix 和 Linux Unix:广泛运行在服务器、大型机、超级计算机上 Linux:源自Unix的开放源码操作系统,主要用于中高端服务器,在学术界和工业界应用广泛,虚拟化(Virtualization),虚拟化: 通过软件模拟将一台物理计算机转变为多台逻辑计算机 每台逻辑计算机是一个虚拟机: 安装有自己的操作系统(称guest OS)
4、不同虚拟机上运行的程序互不影响 在用户看来,每台逻辑计算机是一台独立的计算机,8,虚拟机监视器(VMM): 划分硬件资源,为每个客户操作系统提供一套独立于实际硬件的虚拟硬件环境(包括处理器、内存、输入/输出设备),操作系统的基本类型:网络操作系统,网络操作系统 在网络环境下对网络资源进行管理和控制的操作系统,是用户与网络资源之间的接口 除具备单机操作系统所需的功能外,网络操作系统还应有下列功能: 提供高效可靠的网络通信能力 提供多项网络服务功能,如远程管理、文件传输、电子邮件、远程打印等 现代操作系统的主要特征之一就是具有上网功能,因此,一般不再特指某个操作系统为网络操作系统,操作系统的基本类
5、型:嵌入式操作系统,嵌入式系统 完全嵌入受控系统内部、为特定应用而设计的专用计算机系统,如手机、游戏机、无人机等 嵌入式操作系统: 应用于嵌入式系统的操作系统 主要特点: 系统内核小:嵌入式系统资源有限 专用性强:软、硬件结合紧密,针对硬件定制 系统精简:没有系统软件与应用软件之分,成本低,安全性高 高实时性:嵌入式软件的基本要求,10,移动操作系统,智能手机=掌上电脑+手机: 除普通手机的全部功能外,还具备信息管理和无线上网功能 借助操作系统和丰富的应用软件,智能手机成了一台移动终端 移动操作系统: 专为移动智能设备设计的嵌入式操作系统 除嵌入式操作系统的功能外,还有电源管理、用户图形接口、
6、应用编程接口、无线通信功能等,著名的移动OS: Android(谷歌) IOS(苹果) YunOS(阿里巴巴) BlackBerry OS(黑莓手机专用) Windows Phone,分布式计算系统,分布式计算系统: 通过网络连接在一起的一组计算机,以及建立在网络之上的软件系统 这组计算机展现给用户的是一个单一的计算机系统 分布式计算的实现: 计算任务被分割成多个子任务,分配给多台计算机分别计算,然后将计算结果汇总 分布式计算系统包括: 分布式文件系统、分布式存储系统、分布式调度系统、分布式计算程序等,最重要的三大分布式计算系统,谷歌的分布式计算系统世界领先,但未开源。目前的分布式计算系统基本
7、上是根据谷歌论文中披露的原理开发的 Hadoop: 依据谷歌论文中提出的MapReduce计算框架开发 是分布式计算系统事实上的国际标准 众多互联网公司都以Hadoop为基础搭建自己的分布式计算系统 常用于离线的、复杂的大数据分析处理,Spark: 在Hadoop的基础上进行了改良,使用内存来存储数据(Hadoop使用硬盘),运算速度是Hadoop的100倍 常用于离线的、快速的大数据处理 Storm: 在Hadoop的基础上提供实时运算特性,直接通过网络接收数据、处理数据、传回结果 常用于在线的、实时的大数据处理,2. 实用程序(Utilities),实用程序: 为方便用户使用、维护和管理计
8、算机系统而开发的程序 基本的实用程序有: 故障诊断软件、备份软件、反病毒软件、文件压缩软件等 套装软件(utility suites) 一系列同类的、功能互补的软件集合成一套,配合使用可以获得最佳的效果 如:360套装(360安全卫士+360杀毒),14,3. 设备驱动程序(Device Drivers),每个设备都有一个驱动程序,操作系统通过驱动程序控制和使用设备每当添加一个新的设备时,就需要安装相应的驱动程序,驱动程序由设备厂商提供Windows已经包含了大量的驱动程序,多数情况下会自动选择和安装合适的驱动程序,15,4. 语言处理程序,语言处理程序: 将用程序设计语言编写的源程序,转换成
9、计算机能够执行的机器代码 除了完成语言间的转换外,还要进行语法、语义等方面的检查,语言处理程序的类型,编译器: 将高级语言源程序翻译成目标语言(汇编语言或机器语言) 汇编器: 将汇编语言(一种低级语言)编写的程序翻译成机器语言程序 解释器: 按照源代码或中间代码的语句顺序,逐句解释并执行,程序执行的形式(1),编译执行: 先将源代码编译成目标语言,然后通过链接器生成可执行的目标程序(可执行文件),程序执行的形式(2),解释执行: 解释器根据输入的代码当场执行,不生成任何目标程序。,Making IT Work for You Windows Utilities,用一下Windows的实用程序,比如: 任务管理器 备份和恢复 磁盘清理 磁盘碎片整理: 其它感兴趣的程序,20,与本章内容相关的课程,操作系统原理与设计,编译原理和技术,