中科院研究生院硕士研究生入学考试
  《计算机软件基础》考试大纲

  本《计算机软件》考试大纲适用于中国科学院研究生院计算机科学与技术等专业的硕士研究生入学考试。计算机软件是计算机科学与技术及相关学科的重要基础,主要内容包括数据结构、编译原理和操作系统三大部分。要求考生对计算机科学与技术及相关学科的基本概念有较深入、系统的理解,掌握各种数据结构的定义和实现算法,掌握操作系统和编译原理所涉及的关键内容,并具有综合运用所学知识分析问题和解决问题的能力。

  一、考试内容
  数据结构
  1、绪论
  (1)数据结构的基本概念,数据的逻辑结构、存储结构。
  (2)算法的定义、算法的基本特性以及算法分析的基本概念。
  2、线性表
  (1)线性关系、线性表的定义,线性表的基本操作。
  (2)线性表的顺序存储结构与链式存储结构(包括单链表、循环链表和双向链表)的构造原理。在以上两种存储结构上对线性表实施的最主要的操作(包括三种链表的建立、插入和删除、检索等)的算法设计。
  3、堆栈与队列
  (1)堆栈与队列的基本概念、基本操作。
  (2)堆栈与队列的顺序存储结构与链式存储结构的构造原理。
  (3)在不同存储结构的基础上对堆栈与队列实施插入与删除等基本操作对应的算法设计。
  4、串
  (1)串的基本概念、串的基本操作和存储结构。
  (2)串的模式匹配算法和改进的KMP算法
  5、数组和广义表
  (1)数组的概念、多维数组的实现
  (2)对称矩阵和稀疏矩阵的压缩存储
  (3)广义表的基本概念
  6、树与二叉树
  (1)树的定义和性质
  (2)二叉树的概念、性质和实现
  (3)遍历二叉树和线索二叉树
  (4)树和森林
  (5)赫夫曼树及其应用
  (6)树的计数
  7、图
  (1)图的定义,基本概念,图的分类,常用名词术语。
  (2)图的邻接矩阵存储方法、邻接表存储方法的构造原理。
  (3)图的遍历操作。
  (4)最小生成树,最短路径,AOV网与拓扑排序。
  8、文件及查找
  (1)数据文件的基本概念和基本术语,数据文件的基本操作。
  (2)顺序文件、索引文件、散列(Hash)文件。
  (3)顺序文件的顺序查找方法、排序连续顺序文件的折半查找方法以及其他文件的基本查找方法。
  9、内排序
  (1)排序的基本概念,排序方法的分类。
  (2)插入排序法(含折半插入排序法)、选择排序法、泡排序法、快速排序法、堆积排序法、归并排序、基数排序。各种排序方法排序的原理、规律和特点,各种排序算法的时空复杂度简单分析。
  操作系统
  1、操作系统概述
  (1)计算机基本构成、处理器的内部结构、高速缓冲存储器CACHE;
  (2)操作系统的概念、演变历程、特性、分类、运行环境、功能
  (3)存储器的层次结构
  2、、进程
  进程、进程描述及进程状态转换
  3、线程、对称多处理SMP和微内核
  (1)线程的概念,定义线程的必要性和可能性;
  (2)线程的功能特性与实现方式;
  (3)对称多处理SMP体系结构;
  (4)操作系统的体系结构(微内核与巨内核)及其性能分析。
  4、并发性
  (1)并发性问题及相关概念,如临界区、互斥、信号量和管程等;
  (2)进程互斥、同步和通信的各种算法;
  (3)死锁的概念、死锁的原因和条件
  (4)死锁的预防、避免和检测算法。
  5、存储器管理
  (1)分区存储管理、覆盖与交换;
  (2)页式管理及段式管理;
  (3)段、页式存储管理方法及实现技术;
  (4)虚存的原理及相关的各种算法和数据结构。
  6、单处理器调度
  (1)处理器的三种调度类型;
  (2)进程调度的各种算法及其特点。
  7、多处理器调度和实时调度
  (1)多处理器对进程调度的影响
  (2)多处理器环境下的进程和线程调度算法;
  (3)实时进程的特点;
  (4)限期调度和速率单调调度方法。
  8、设备管理和磁盘调度
  (1)操作系统中输入/输出功能的组织;
  (2)中断处理;
  (3)设备驱动程序、设备无关的软件接口和spooling技术;
  (4)缓冲策略;
  (5)磁盘调度算法;
  (6)磁盘阵列。
  9、文件系统
  (1)文件系统特点与文件组织方式;
  (2)文件系统的数据结构;
  (3)目录的基本性质及其实现方法;
  (4)磁盘空间的管理。
  10、分布式系统
  (1)分布式处理的特点、类型;
  (2)多层体系结构、中间件技术;
  (3)机群系统;
  (4)分布式进程管理相关的操作系统设计问题。
  编译原理
  1、引论
  (1)编译器的基本概念
  (2)编译阶段和编译器伙伴
  2、词法分析
  (1)词法分析器
  (2)正规式
  (3)有限自动机和扫描器生成器
  3、语法分析
  (1)上下文无关文法
  (2)各种语法分析技术,如自上而下分析和自下而上分析,LR分析器
  4、语法制导的翻译
  (1)S属性和L属性
  (2)自上而下翻译
  (3)继承属性的自上而下计算
  (4)递归计算
  5、类型检查
  (1)类型体制
  (2)简单类型检查器
  (3)类型表达式的等价
  (4)函数和算符的重载
  6、运行环境
  运行时存储空间和组织管理
  7、中间代码生成
  (1)常用的中间代码表示:后缀表示、图形表示和三地址表示
  (2)声明、赋值和布尔表达式
  8、代码生成
  (1)代码生成涉及的主要问题
  (2)目标机器
  (3)基本块和流图
  9、代码优化
  (1)优化的主要种类
  (2)流图中的循环
  (3)全局数据流分析介绍
  (4)代码改进变换

  二、考试要求
  数据结构

  1、 建立有关数据结构最基本的概念,包括数据的逻辑结构、存储结构和算法,算法分析的基本概念与基本方法
  2、 掌握线性表的基本概念以及两种存储结构的构造原理,掌握在各种存储结构下对线性表进行的基本操作的算法设计。
  3、 掌握堆栈和队列的基本概念与特征,掌握在两种存储结构下如何对堆栈和队列进行插入和删除等操作,以及利用堆栈与队列解决实际问题的基本方法。
  4、 充分了解串的基本概念、掌握串的存储结构和相关的操作算法。
  5、 掌握数组、广义表和稀疏矩阵的基本概念,物理结构和基本操作的实现
  6、 充分了解树型结构的逻辑特征,掌握各种存储结构的构造原理,能够熟练地利用常用的三种遍历方法,掌握利用二叉树的遍历操作解决实际问题的方法,掌握二叉排序树的建立以及在二叉排序树中查找一个结点存在与否的过程。
  7、 充分了解图的逻辑结构的特点,掌握常用的两种存储方法,掌握最小生成树(Prim算法和Kruskal算法)、最短路径、拓扑排序的具体求解过程。
  8、 充分了解各种顺序文件的结构与相应的查找方法;了解各种查找算法之间时空效率的差异;从结构与操作上了解散列文件的建立、散列函数的选择(构造)原则、处理散列冲突的方法以及在散列文件中查找一个记录存在与否的过程。
  9、 充分了解各种排序方法的排序特点和排序过程,对于任意给出的数据元素序列,能够熟练地采用指定排序方法进行排序,并且能够对每一种排序方法排序过程中所进行的元素之间的比较次数、相应排序算法的时间、空间、排序的稳定性等性能进行简单分析。
  操作系统
  1、 了解操作系统所管辖的软、硬件资源;了解操作系统的关键概念,从整体上把握操作系统的特性与功能等概念;建立操作系统的资源管理和应用接口的职能概念。
  2、 掌握进程的本质特征,明确进程的动态特性,熟悉进程状态间转换的原因,建立进程是资源分配单元和一种运行实体的基本理念。
  3、 理解引入线程作为基本运行实体的必要性和可能性;掌握线程各种实现方式及其特点;熟悉SMP体系结构、操作系统的体系结构。
  4、 灵活运用信号量、管程等技术解决互斥合同步问题;理解死锁的概念和产生死锁的充分必要条件;熟练掌握死锁的预防、避免和检测算法;了解处理死锁问题时避免饥饿的方法。
  5、 理解存储管理的功能及存储管理对多道程序设计的支持;掌握段、页式存储管理方法及实现技术;掌握虚存的原理及相关的各种算法和数据结构。
  6、 了解长程、中程和短程三种调度类型;重点掌握进程调度的各种算法及其适用环境。
  7、 熟悉掌握多处理器环境下进程和线程调度算法,了解实时进程的本质,掌握限期调度和速率单调调度方法。
  8、 理解输入输出设备及操作系统中输入/输出功能的组织、掌握中断处理、设备驱动程序、设备无关的软件接口和spooling等技术,重点掌握各种用于提高性能的缓冲策略和磁盘调度算法;了解可提高性能和可靠性的各种磁盘阵列配置方式。
  9、 理解文件系统特点与文件组织,掌握文件系统的基本数据结构,了解文件、目录的基本性质及其实现方法;重点掌握磁盘空间的管理、文件系统的性能及可靠性、文件系统的安全性及保护机制等。
  10、 了解分布式处理的特点、类型;掌握多层体系结构、中间件技术和机群系统的基本概念和特点;重点掌握进程迁移、分布式全局状态的认定、分布式互斥与死锁预防等技术。
  编译原理
  1、 了解编译器的基本概念和基本结构
  2、 了解词法分析器的作用,掌握记号的描述和识别方法,掌握识别有限自动机的基本定义和从正规式建立识别器的方法
  3、 了解语法分析器的作用,掌握上下文无关语言和文法的相关概念和性质,掌握各种语法分析技术,如自上而下分析,自下而上分析,以及LR分析器。
  4、 掌握上下文无关文法制导下的语言翻译,
  5、 了解类型体制的基本概念,了解简单类型检查器和类型表达式的等价
  6、 了解程序的运行时存储空间和组织管理
  7、 了解中间代码的表示,了解程序设计语言的结构如何翻译成中间形式
  8、 了解代码生成中涉及的基本问题,包括存储管理、指令选择、寄存器分配和计算次序选择等基本问题
  9、 掌握代码优化的主要种类和代码改进变换。

  三、主要参考书目
  1、《数据结构》严蔚敏,清华大学出版社;2002
  2、《编译原理和技术》,陈意云,中国科学技术大学出版社;2003
  3、《计算机操作系统》,汤子瀛,西安电子科技大学出版社。2002