计算机软件基础是学习计算机科学的重要组成部分,主要涵盖了软件的基本概念、类型、开发和管理。以下是对自考计算机软件基础(二)中涉及的关键知识点的详细解释:
1. **裸机与虚拟机**:裸机是指只有硬件而无任何软件的计算机系统,而虚拟机是在裸机上添加了操作系统和其他软件,使一台计算机可以模拟多台独立的计算机系统。
2. **软件定义**:软件是由程序、相关文档和所需数据组成的集合。程序是实现特定功能的指令序列,文档包括用户手册、设计报告等,数据则是程序处理的对象。
3. **汇编语言与高级语言**:
- **汇编语言**:使用指令助记符表示机器语言,源代码需要通过汇编器转换为机器代码。它面向硬件,执行速度快,但编写困难且不易理解。
- **高级语言**:如C、Java、Python等,使用接近人类语言的语法,易于理解和编写,但需要编译器将源代码转换为机器代码,执行速度相对较慢。
4. **操作系统**:操作系统是管理和协调计算机硬件和软件资源的系统软件,它经历了从手工操作、批处理、执行程序、多道程序到分时系统的发展阶段,提高了计算机的效率和用户友好性。
5. **操作系统发展阶段**:
- 手工操作阶段:无操作系统,资源由单一程序独占,效率低下。
- 批处理阶段:引入监控程序,减少人工干预,提高效率,但输入输出仍有等待。
- 执行系统阶段:采用通道和中断技术,实现I/O与处理器并行,但处理器等待未完全消除。
- 多道程序系统:内存中可同时运行多个程序,提高了资源利用率。
- 分时系统:通过时间片分配,让用户感觉在使用独立计算机,增强交互性。
6. **软件分类**:
- **系统软件**:如操作系统、数据库管理系统等,服务于应用软件,管理计算机硬件。
- **应用软件**:解决特定问题的软件,如办公软件、图像处理软件等,分为事务处理、科学计算、实时应用、嵌入式应用、微机应用和人工智能软件等多个类别。
7. **数据结构**:
- **数据**:计算机可处理的符号集合,包括数字、字符等。
- **数据元素**:数据运算的基本单位,可以是单一值或记录。
- **数据结构**:数据元素间存在特定关系的集合,分为逻辑结构和存储结构。
- **逻辑结构**:数据元素之间的关系,包括线性结构、树形结构、网状结构和集合结构。
- **存储结构**:数据在内存中的组织形式,包括顺序结构、链式结构、索引结构和散列结构。
8. **存储结构特性**:
- **顺序存储结构**:逻辑相邻的元素在物理上相邻,便于随机访问,但插入和删除操作可能需要大量移动元素。
- **链式存储结构**:逻辑相邻的元素在物理上不必相邻,插入和删除操作简便,但访问效率较低。
9. **线性表、顺序表和链表**:
- **线性表**:具有线性关系的数据元素集合。
- **顺序表**:线性表的顺序存储结构,元素地址可以通过首元素地址和元素位置计算。
- **链表**:线性表的链式存储结构,不能直接计算元素地址,插入和删除操作不涉及元素移动。
10. **栈**:只允许在表的一端进行插入和删除操作的线性表,称为后进先出(LIFO)数据结构。
这些基础知识是计算机科学教育的核心,对于理解和开发软件至关重要。掌握这些概念,有助于深入理解计算机系统的运作原理,并为后续的学习和实践打下坚实基础。