计算机操作系统:第五章_计算机软件系统

第五章:计算机软件系统

本章介绍计算机软件系统的组成和分类,包括系统软件和应用软件两大类别。重点讲解操作系统、程序设计语言处理系统、数据库管理系统等核心系统软件的功能和作用,以及软件开发工具和应用软件的类型。

本章重点

  1. 操作系统的功能和类型
  2. 编译程序的工作过程
  3. 数据库管理系统的功能
  4. 软件的分类

本章难点

  1. 编译过程的各个阶段
  2. 解释与编译的区别

5.1.1 操作系统的概念

操作系统的定义: 操作系统是控制和管理计算机硬件与软件资源,合理组织计算机工作流程,方便用户使用计算机的系统软件。它是用户和计算机硬件之间的接口。

操作系统的作用

操作系统地位示意图:

        用户
         │
    ┌────┴────┐
    ↓         ↓
应用软件   系统工具
    └────┬────┘
         ↓
    ┌─────────┐
    │ 操作系统 │ ← 核心系统软件
    └────┬────┘
         ↓
    ┌─────────┐
    │  硬件   │
    └─────────┘

5.1.2 操作系统的功能

五大管理功能

  1. 处理器管理:进程控制、进程同步、进程通信、进程调度
  2. 存储管理:内存分配、地址映射、存储保护、虚拟存储
  3. 文件管理:文件组织、文件存储、文件检索、文件共享
  4. 设备管理:设备分配、设备驱动、缓冲管理、虚拟设备
  5. 用户接口:命令接口、程序接口、图形接口

5.1.3 操作系统类型

批处理操作系统

  1. 成批处理作业
  2. 用户不直接与计算机交互
  3. 效率高,但周转时间长

分时操作系统

  1. 多用户同时使用
  2. 采用时间片轮转调度
  3. 人机交互性好
  4. 代表:UNIX、Linux

实时操作系统

  1. 对外部事件及时响应
  2. 严格的时间限制
  3. 用于工业控制、军事系统等
  4. 代表:VxWorks、RT-Linux

网络操作系统

  1. 管理网络资源
  2. 提供网络服务
  3. 代表:Windows Server、Linux

分布式操作系统

  1. 多台计算机协同工作
  2. 对用户透明
  3. 高可靠性和并行处理能力

嵌入式操作系统

  1. 运行在嵌入式设备中
  2. 资源受限
  3. 专用性强
  4. 代表:Android、iOS、RTOS
操作系统发展时间线:

1950s    1960s      1970s      1980s      1990s      2000s
  │        │          │          │          │          │
  ▼        ▼          ▼          ▼          ▼          ▼
批处理 → 分时 → 个人电脑 → 网络 → 分布式 → 移动/云
系统   系统  操作系统  操作系统  操作系统  操作系统
           │
           └── UNIX(1969) → Linux(1991)
           └── Windows(1985)
           └── Mac OS(1984)

5.1.4 主流操作系统介绍

Windows

  1. Microsoft公司开发
  2. 图形用户界面
  3. 应用广泛,兼容性好
  4. 主要版本:Windows 10/11、Windows Server

Linux

  1. 开源操作系统
  2. 基于UNIX
  3. 稳定、安全、免费
  4. 发行版:Ubuntu、CentOS、Debian等

macOS

  1. Apple公司开发
  2. 基于UNIX
  3. 优秀的用户体验
  4. 与Apple硬件深度整合

Android

  1. Google开发
  2. 基于Linux内核
  3. 移动设备主流系统
  4. 开源,生态丰富

iOS

  1. Apple开发
  2. 专用于iPhone、iPad
  3. 封闭但优质的生态系统

5.2.1 程序设计语言分类

机器语言

  1. 二进制代码
  2. 计算机直接执行
  3. 难以编写和阅读

汇编语言

  1. 使用助记符代替二进制
  2. 与机器语言一一对应
  3. 需要汇编程序翻译
  4. 依赖于特定硬件

高级语言

  1. 接近自然语言
  2. 独立于硬件
  3. 需要编译或解释
  4. 代表:C、C++、Java、Python等
语言层次对比:

高级语言:  int sum = a + b;
              ↓ 编译/解释
汇编语言:  MOV AX, [a]
            ADD AX, [b]
            MOV [sum], AX
              ↓ 汇编
机器语言:  10110000 01101010 ...
              ↓ CPU执行
硬件操作:  寄存器运算

5.2.2 编译程序

编译程序:将高级语言源程序翻译成目标机器语言程序的系统软件。

编译过程

编译过程各阶段:

源程序
  │
  ▼
┌──────────┐  词法分析  ┌──────────┐
│ 词法分析器│ ───────→ │ 单词序列  │
└──────────┘           └────┬─────┘
                            ↓
┌──────────┐  语法分析  ┌──────────┐
│ 语法分析器│ ───────→ │ 语法树   │
└──────────┘           └────┬─────┘
                            ↓
┌──────────┐  语义分析  ┌──────────┐
│ 语义分析器│ ───────→ │ 中间代码 │
└──────────┘           └────┬─────┘
                            ↓
┌──────────┐  代码优化  ┌──────────┐
│ 代码优化器│ ───────→ │ 优化代码 │
└──────────┘           └────┬─────┘
                            ↓
┌──────────┐  代码生成  ┌──────────┐
│ 代码生成器│ ───────→ │ 目标代码 │
└──────────┘           └──────────┘
                            ↓
                       目标程序

各阶段说明

  1. 词法分析:将字符流转换为单词(Token)序列
  2. 语法分析:根据语法规则构建语法树
  3. 语义分析:检查语义正确性,进行类型检查
  4. 中间代码生成:生成与机器无关的中间代码
  5. 代码优化:改进代码质量,提高效率
  6. 目标代码生成:生成特定机器的汇编或机器代码

5.2.3 解释程序

解释程序:边翻译边执行,不生成目标程序。

特点

  1. 执行效率低
  2. 便于调试
  3. 跨平台性好
  4. 代表:Python解释器、JavaScript引擎

编译 vs 解释

编译执行:
源程序 → [编译器] → 目标程序 → [执行] → 结果
(一次编译,多次执行)

解释执行:
源程序 → [解释器] → 结果
(边解释边执行,每次重新解释)

Java的混合模式

Java采用编译+解释的方式:

1. Java源程序(.java)编译为字节码(.class)
2. 字节码在JVM上解释执行或JIT编译执行
Java程序执行流程:

Hello.java → [javac编译] → Hello.class(字节码)
                                   ↓
                            ┌──────────────┐
                            │     JVM      │
                            │ ┌──────────┐ │
                            │ │解释执行  │ │
                            │ │或JIT编译 │ │
                            │ └──────────┘ │
                            └──────┬───────┘
                                   ↓
                              机器码执行

5.3.1 数据库系统的组成

数据库系统(DBS)由以下部分组成:

  1. 数据库(DB):存储在计算机内的有组织的数据集合
  2. 数据库管理系统(DBMS):管理数据库的软件
  3. 应用程序:使用数据库的程序
  4. 数据库管理员(DBA):管理和维护数据库的人员
  5. 用户:最终使用数据库的人员
数据库系统结构:

        用户
         │
    ┌────┴────┐
    ↓         ↓
应用程序   数据库管理员
    └────┬────┘
         ↓
    ┌─────────┐
    │   DBMS  │
    │ ┌─────┐ │
    │ │DDL  │ │ 数据定义语言
    │ │DML  │ │ 数据操纵语言
    │ │DCL  │ │ 数据控制语言
    │ └─────┘ │
    └────┬────┘
         ↓
    ┌─────────┐
    │ 操作系统 │
    └────┬────┘
         ↓
    ┌─────────┐
    │ 数据库   │
    └─────────┘

5.3.2 DBMS的主要功能

数据定义

  1. 提供数据定义语言(DDL)
  2. 定义数据库结构(表、索引、约束等)

数据操纵

  1. 提供数据操纵语言(DML)
  2. 查询、插入、删除、修改数据

数据控制

  1. 提供数据控制语言(DCL)
  2. 权限管理、完整性控制、并发控制

数据库维护

  1. 备份与恢复
  2. 性能监控与优化
  3. 数据重组

5.3.3 主流数据库系统

关系型数据库

  1. Oracle:企业级大型数据库
  2. MySQL:开源,Web应用广泛使用
  3. SQL Server:Microsoft开发
  4. PostgreSQL:功能强大的开源数据库
  5. SQLite:轻量级嵌入式数据库

非关系型数据库(NoSQL)

  1. MongoDB:文档型数据库
  2. Redis:键值存储,内存数据库
  3. Cassandra:列族存储
  4. Neo4j:图数据库

5.4.1 集成开发环境(IDE)

IDE:提供代码编辑、编译、调试等功能的集成软件环境。

主流IDE

  1. Visual Studio:Microsoft,支持多种语言
  2. IntelliJ IDEA:JetBrains,Java开发首选
  3. Eclipse:开源,Java开发
  4. PyCharm:JetBrains,Python开发
  5. VS Code:轻量级,插件丰富

5.4.2 版本控制工具

版本控制:管理代码变更历史,支持多人协作。

Git

  1. 分布式版本控制系统
  2. 速度快,功能强大
  3. 支持分支管理
  4. 配合GitHub/GitLab使用
Git基本工作流程:

工作目录 → [add] → 暂存区 → [commit] → 本地仓库 → [push] → 远程仓库
   ↑                                                      │
   └──────────────── [pull/clone] ←───────────────────────┘

SVN:集中式版本控制系统。

5.4.3 其他开发工具

构建工具:Maven、Gradle、Ant、Make

测试工具:JUnit、Selenium、JMeter

项目管理:JIRA、禅道、Trello

持续集成/部署(CI/CD):Jenkins、GitLab CI、GitHub Actions


5.5.1 应用软件分类

办公软件

  1. 文字处理:Microsoft Word、WPS文字
  2. 电子表格:Microsoft Excel、WPS表格
  3. 演示文稿:Microsoft PowerPoint、WPS演示
  4. 办公套件:Microsoft Office、WPS Office、LibreOffice

多媒体软件

  1. 图像处理:Photoshop、GIMP
  2. 视频编辑:Premiere、Final Cut Pro
  3. 音频处理:Audition、Audacity

网络软件

  1. 浏览器:Chrome、Firefox、Edge、Safari
  2. 即时通讯:微信、QQ、钉钉
  3. 邮件客户端:Outlook、Thunderbird

专业软件

  1. CAD:AutoCAD、SolidWorks
  2. 统计分析:SPSS、SAS、R
  3. 设计:Sketch、Figma
  4. 开发工具:见5.4节

5.5.2 软件许可模式

商业软件

  1. 付费购买使用许可
  2. 闭源
  3. 提供技术支持
  4. 代表:Microsoft Office、Adobe Photoshop

开源软件

  1. 源代码公开
  2. 自由使用和修改
  3. 社区驱动
  4. 代表:Linux、Firefox、LibreOffice

免费软件

  1. 免费使用
  2. 不一定是开源
  3. 代表:微信、QQ

共享软件

  1. 试用期免费
  2. 试用期后需付费

1. 操作系统的五大功能不包括(  )
   A. 处理器管理    B. 存储管理    C. 网络管理    D. 设备管理
2. 以下属于实时操作系统的是(  )
   A. Windows    B. Linux    C. VxWorks    D. Android
3. 编译程序的作用是(  )
   A. 直接执行源程序    B. 将源程序翻译成目标程序
   C. 调试程序          D. 管理内存
4. Java程序的执行方式是(  )
   A. 纯编译    B. 纯解释    C. 编译+解释    D. 直接执行
5. 以下属于NoSQL数据库的是(  )
   A. Oracle    B. MySQL    C. MongoDB    D. SQL Server
1. 操作系统是用户和_______之间的接口。
2. 程序设计语言分为_______、_______和_______三类。
3. 编译过程的五个阶段是_______、_______、_______、_______、_______。
4. DBMS的主要功能包括_______、_______和_______。
5. 常用的版本控制工具有_______和_______。
1. 简述操作系统的五大管理功能。
2. 比较编译和解释的区别。
3. 什么是数据库管理系统?它有哪些主要功能?
4. 简述开源软件和商业软件的区别。

参考答案

一、选择题:1.C 2.C 3.B 4.C 5.C

二、填空题:

1. 计算机硬件
2. 机器语言、汇编语言、高级语言
3. 词法分析、语法分析、语义分析与中间代码生成、代码优化、目标代码生成
4. 数据定义、数据操纵、数据控制
5. Git、SVN

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • 计算机操作系统/第五章_计算机软件系统.txt
  • 最后更改: 2026/02/09 23:27
  • 张叶安