1计算机科学技术导论学习笔记.docx

上传人:b****6 文档编号:5254749 上传时间:2022-12-14 格式:DOCX 页数:30 大小:405.63KB
下载 相关 举报
1计算机科学技术导论学习笔记.docx_第1页
第1页 / 共30页
1计算机科学技术导论学习笔记.docx_第2页
第2页 / 共30页
1计算机科学技术导论学习笔记.docx_第3页
第3页 / 共30页
1计算机科学技术导论学习笔记.docx_第4页
第4页 / 共30页
1计算机科学技术导论学习笔记.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

1计算机科学技术导论学习笔记.docx

《1计算机科学技术导论学习笔记.docx》由会员分享,可在线阅读,更多相关《1计算机科学技术导论学习笔记.docx(30页珍藏版)》请在冰豆网上搜索。

1计算机科学技术导论学习笔记.docx

1计算机科学技术导论学习笔记

计算机科学技术导论学习笔记

目录

第一章计算机科学技术概述1

1.1计算机主干课程1

第二章编码、数据和数据存储1

2.1编码和数据341

2.2磁盘结构及读取顺序1

第三章计算机数据运算基础622

3.1数字电路分类(按工作原理分)2

3.2计算机工作原理2

3.3总线3

3.4微型计算机的基本结构783

3.5IO接口的作用783

3.6主板结构834

3.7并行处理904

第四章程序设计语言964

4.1计算机语言964

4.2计算机语言的编译链接执行过程(补充)5

4.2数据类型1006

4.3函数、过程和方法1096

4.4程序实现过程1127

第五章数据组织与算法7

5.1数据、数据元素、数据结构1267

5.2数据的逻辑结构1288

5.3数据的物理结构1318

5.4算法1378

5.5算法的框图描述1408

5.6递归算法求解14510

第六章数学与计算机科学15910

6.1公钥密码学17410

第七章软件工程18010

7.1软件传统开发过程18410

7.2软件开发过程模型(生命周期模型)11

7.3模块化18813

7.4模块之间的联系18913

7.5软件开发方法14

7.6软件测试目的19314

7.7软件测试方法19414

7.8软件测试的过程19615

7.9软件文档19815

7.10CASE工具ComputerAidedSoftwareEngineering20015

第八章计算机软件系统20516

8.1计算机软件系统20516

8.2操作系统的功能21116

8.3CPU管理21116

8.4存储器管理21417

8.5文件管理21620

8.6设备管理21822

8.7信号量机制22122

第九章网络基础和技术24823

9.1计算机网络23

9.2域名27023

9.3统一资源定位器URL24

9.4计算机网络主要内容27424

第十章数据库系统27924

10.1数据库、数据处理27924

10.2数据库技术的发展27924

10.3数据库系统28225

10.4数据模型28226

10.5数据库系统结构28427

10.6数据库的两级映象功能28528

10.7关系模型28528

10.8关系的性质28628

10.9SQL概述28629

10.10SQL语言的分类28729

10.11数据库完整性28830

10.12完整性约束条件28930

10.13完整性控制28930

10.14数据库安全性控制29031

10.15面向对象数据库语言31

第十一章计算机应用基础30132

11.1文件与文件夹30932

第一章计算机科学技术概述

1.1计算机主干课程

第二章编码、数据和数据存储

2.1编码和数据34

计算机编码指利用二进制数表示信息的机制。

计算机按照约定的编码规则将各种信息编码成二进制数进行存储和处理。

注意:

各种信息的二进制编码,一是要根据特定的编码规则对数据进行二进制编码、存储,二是要利用特定的程序识别和处理这些二进制编码数据,才能使这些二进制编码体现约定的意义。

2.2磁盘结构及读取顺序

磁盘由盘片和磁头及驱动机构等组成。

磁盘的磁头可有多个,均固定在磁头臂上,多个磁头同时运动。

盘片上刻有多个同心磁道,划分为不同扇区,一般一个盘片上对应一个磁头。

多个盘片的相同磁道成为一个柱面。

磁盘按扇区搜索数据。

搜索时,先移动磁头臂确定柱面,然后确定磁头,最后确定扇区。

柱面从内到外依次为0#、1#、……柱面,磁头从上到下依次为0#、1#、……磁头,扇区从格式化定位点开始依次为第1#、2#……扇区。

扇区号和柱面号、磁头号的关系:

总扇区号=柱面号*磁头数n*每磁道扇区数k+磁头号*每磁道扇区数k+扇区号

柱面号=总扇区号/(磁头数n*每磁道扇区数k)

磁头号=(总扇区号-柱面号*磁头数n*每磁道扇区数k)/每磁道扇区数k

扇区号=(总扇区号-柱面号*磁头数n*每磁道扇区数k-磁头号*每磁道扇区数k)

第三章计算机数据运算基础62

3.1数字电路分类(按工作原理分)

数字电路按工作原理分类:

组合逻辑电路和时序逻辑电路。

其中,时序逻辑电路具有记忆功能。

3.2计算机工作原理

1、计算机通过执行指令来处理各种数据。

计算机执行指令周期分为取指周期和执行周期。

2、计算机在取指周期完成的操作:

Ø将IP中的指令地址(或IP与段寄存器变换后)送CPU的地址寄存器。

ØCPU的IO/M引脚有效,选中存储器。

Ø将CPU地址寄存器数据送地址总线。

Ø存储器的地址寄存器接收地址总线数据,选中存储器单元。

Ø存储器单元将数据送存储器数据缓冲器,然后送到数据总线。

ØCPU发出读命令,R/W引脚有效,CPU将数据从数据总线读入到CPU的数据缓冲器。

ØCPU执行微操作,将数据从数据缓冲器送到CPU指令寄存器IR。

IP+1

ØCPU执行指令,微电路控制CPU片内部件工作。

注:

算术逻辑单元ALU在做算术、逻辑等运算时,两个操作数必须是在CPU的片内寄存器内。

3.3总线

总线是传送信息的公共通道。

总线技术即采用一根线,将所有站点连接起来,各站点根据某种规则分时利用总线公共通道传递信息。

计算机总线的三个层次:

1、CPU总线——CPU内部数据传输的总线。

即内部总线

2、局部总线——在主板或其他模板上连接的主板芯片的总线。

即板内总线。

3、系统总线——在计算机内部连接计算机各部件的总线,如CPU、内存、通道、IO接口之间互连的总线。

3.4微型计算机的基本结构78

微型计算机的基本结构:

3.5IO接口的作用78

1、速度协调——数据缓冲。

2、工作方式协调——查询、中断、MDA、通道等。

3.6主板结构83

主板是一块多层印刷电路板,装有组成计算机的主要电路系统,包括BIOS芯片、IO控制芯片、键盘接口、面板控制开关接口、指示灯接插件、扩充插槽、主板及插卡的直流电源供电插座元件、CPU插口、主板芯片组、实现CPU与外部设备进行数据交换的系统总线。

主板芯片组——是主板的核心部件,协调和控制数据在CPU内存和各种应用插卡之间流通的作用。

完成总线形成逻辑功能。

板卡扩展槽——现在一般为PCI插槽和AGP插槽(接显卡)。

BIOS芯片——BIOS芯片实际上指一段程序,这段程序在开机后首先运行,对系统各个部件进行检测和初始化。

IO接口——用于连接各种IO设备的接口。

如USB接口、键盘接口、鼠标接口、串行接口COM1、COM2,并行接口和游戏卡接口等。

注:

CPU均通过地址来区分不同的IO接口,一个IO设备可以有几个IO端口地址。

80x86系列IO端口地址和存储器地址分开编址。

一般应用程序不直接读写IO端口,而是通过调用操作系统的IO读写函数(模块)来完成IO端口的读写。

3.7并行处理90

并行处理——分为同时性并行处理和并发性并行处理。

第四章程序设计语言96

4.1计算机语言96

计算机语言是一组定义计算机程序的语法规则,用来实现人机交互,让计算机按人的意图完成工作的符号系统。

计算机语言的3要素:

语义、语法和语序。

计算机语言分为:

机器语言、汇编语言、高级语言等。

其中除机器语言外,汇编语言和高级语言必须经编译(解释)链接后生成机器语言。

生成的机器语言文件必须由操作系统(或引导程序)经过一定的算法和规则加载到内存后,才具备执行的条件。

4.2计算机语言的编译链接执行过程(补充)

计算机语言开发编译链接过程

序号

项目

流程

操作

1

编写源程序

2

编译

1、预编译源程序

加载头文件(头文件中的函数原型),代入各种define信息,去除注释语句等。

生成以cpp文件为基础的编译单元。

2、编译成汇编语言代码

编译程序对编译单元进行词法分析和语法分析,将编译单元翻译成等价的中间代码或汇编代码。

3、优化代码

一是优化代码结构,即优化代码冗余;二是根据硬件特性优化代码,使代码在计算机执行效率更优。

4、汇编成目标机器指令

将汇编语言代码翻译成目标机器指令。

该目标机器指令文件为可重定位文件。

3

链接

1、静态链接

对于常规的库函数(.lib类型函数文件),链接器从c语言标准库函数文件将目标机器指令引用的函数拷贝添加到可执行程序中,并将该函数的入口地址重写到引用该函数的指令处。

2、动态链接

对于windows函数(基本全是动态链接库函数)或自定义动态链接库文件(.dll类型函数文件),链接器只是在可执行程序中记录该动态链接库的名字(包括目录)及少量信息。

4

执行

1、加载程序文件到内存形成进程

1、静态地址重定位加载——早期的操作系统(单任务如dos,无动态链接库),根据作业调度管理模块,直接将该可执行文件加载到内存,将程序空间中的逻辑地址变换为物理地址。

2、动态地址重定位加载——现代操作系统(多任务如Windows),根据进程管理规则将文件的全部或部分加载到内存,设置进程标识符(包括进程的进程上下文、物理地址等等信息)和操作系统进程管理参数(包括进程实例句柄(=记录进程加载的物理地址))等信息,不修改程序空间的逻辑地址。

2、执行程序

1、在早期的操作系统中执行程序时,操作系统利用作业管理模块将文件加载到内存后,将程序开始地址加载段寄存器,IP=0,开始执行程序。

2、在现代操作系统(多任务如Windows)中,操作系统利用进程调度模块将程序加载到内存,当执行程序时,操作系统根据系统进程管理参数和进程上下文,将进程开始的物理地址赋值给段描述符,并使EIP(IP)=0开始执行进程。

当进程执行跳转指令时,直接将跳转指令的目标地址传递给EIP。

当进程的时间片用完后,定时器中断CPU,保存该进程信息,CPU跳转到进程调度程序,执行别的进程。

当进程指令调用动态链接库函数时,动态链接库以进程的方式加载到内存(已在内存中则不加载),动态链接库的全部内容被映射到相应进程的虚地址空间,操作系统遍历动态链接库文件EXPORTS节中的与调用函数名称对应拼写相一致的目录项,得到函数的相对入口地址。

4.2数据类型100

数据类型定义了数据的取值范围、数据间的相互关系和建立在数据之上的一组操作。

一般分为标准类型、构造类型和指针类型。

1、标准类型:

标准类型是最基本的类型。

包括整数类型、实数类型、字符类型、布尔类型、日期类型。

2、构造类型:

构造类型一般由其他数据类型按照一定的规则构造而成。

如数组类型、结构类型、文件类型、对象类型。

3、指针类型:

指针类型是为了方便对内存的直接访问而提供的一种语言机制。

指针存放的内存单元的地址。

注意:

在源程序中定义的数据类型为编译器提供编译依据。

在编译时,

(1)编译器根据定义的数据类型属性,在生成的可执行文件中确定数据占用的内存地址、内存大小、数值、数据格式、数据结构等;

(2)数据类型方法实质上是定义的关于该数据类型的一组c语言标准库函数,调用数据类型方法和调用c语言标准库函数等同,通过链接器将引用的c语言标准库函数文件添加拷贝到可执行程序中,并将该函数的入口地址(逻辑地址)重写到引用该函数的指令处。

4.3函数、过程和方法109

函数——具有返回值的程序模块称为函数。

过程——没有返回值的程序模块称为过程。

方法——等同函数或过程,在面向对象编程语言中,一律用方法来表述函数。

在调用函数或过程时,函数的形式参数用以指明调用程序需要传递给函数的数据个数和类型。

C语言调用函数和过程形式:

函数名(实际参数表)

VB调用过程形式:

Call过程名(实际参数表)

VB调用函数形式:

函数名(实际参数表)

4.4程序实现过程112

1、编写源程序。

2、编译源程序生成目标代码(特定计算机的机器语言)。

词法分析、语法分析、生成中间代码、优化中间代码、生成目标代码。

3、连接目标代码生成可执行文件。

(1)连接目标代码到一个文件中;

(2)连接标准库函数目标代码加载到给文件中;(3)把可执行程序中引用的动态链接库函数文件(windows函数或动态链接库文件)的名字(包括目录)及少量信息加载到可执行文件中。

4、执行可执行文件完成预定任务。

(1)操作系统的作业管理模块加载该可执行文件,加载时进行地址重定位。

Ø静态重定位——在程序转入内存时,一次性完成从程序空间的逻辑地址转换成物理空间的物理地址。

Ø动态重定位——在指令执行时再进行地址的转换。

第五章数据组织与算法

5.1数据、数据元素、数据结构126

数据——是指相互之间存在一种或多种特定关系的数据元素(实体)的集合。

数据元素——指数据中具有独立意义的个体。

数据结构——指数据元素之间的结构关系,它用来反映一个数据的内部构成。

5.2数据的逻辑结构128

1、线性结构——指数据元素之间存在一对一的线性关系。

2、树形结构——指数据元素之间存在一个对多个关系。

3、网状结构——结构中的数据元素之间存在多个对多个的任意关系。

4、集合结构——指结构中的数据元素除了同属于一个集合的关系外,无任何其他关系。

5.3数据的物理结构131

静态数据结构存储——采用一块连续的存储区域,保存线性结构数据。

动态数据结构存储(链接存储)————为线性结构数据中的每个数据元素(元组)划分一个存储块,每个存储块存储数据元素项和指向下一个元素(或子节点)存储位置的链接指针。

第一个元素(即存储链表的起始地址)利用头指针来指定。

5.4算法137

算法——指解决一个特定问题而采取的确定的、有限的步骤。

算法具有5个特性:

有穷性、确定性、可行性、输入、输出。

5.5算法的框图描述140

1、流程图描述算法:

2、N-S流程图描述算法:

3、伪代码描述算法:

5.6递归算法求解145

1、第一步,回推。

即根据递归动作回推到已知的递归终止条件。

2、第二步,递推。

即从递归终止条件处依次向前递推。

第六章数学与计算机科学159

6.1公钥密码学174

1、公钥共享、私钥保密。

2、公钥加密——私钥解密方法:

可以利用公钥加密信息并仅被私钥持有者解密浏览该信息。

3、私钥加密——公钥解密方法:

可以利用私钥加密信息并被公钥持有者解密浏览该信息。

如果该信息被篡改该信息将不能被正确解密浏览。

公钥持有者在正确解密浏览该信息时,则会确知该信息为私钥持有者发送。

利用私钥加密的信息也标明该信息的的发送者,私钥持有者不能否认该信息。

第七章软件工程180

7.1软件传统开发过程184

1、计划阶段:

确定开发目标,研究可行性,对成本及进度进行估算。

(立项报告)

2、分析阶段:

又称需求分析阶段。

收集客户需求,确定约束条件、输入、输出,即建立需求分析模型。

(需求规格说明书)

3、设计阶段:

根据需求规格说明书,确定系统结构框架、定义数据和过程实现。

(设计说明书)

4、编码阶段:

根据设计说明书,将设计模块编写成计算机可执行的程序代码。

(形成主程序和程序技术规格说明书)

5、测试阶段:

对模块进行测试,包括单个模块的功能测试,系统集成测试、确认测试和系统功能测试。

(测试报告)

6、维护阶段:

维护阶段是软件过程的一个组成部分,软件的维护费用一般占软件总费用的50~70%。

7.2软件开发过程模型(生命周期模型)

1、瀑布模型:

2、原型模型:

当用户对软件只有一般性目标要求,不能提出明确的输入、输出时,采用原型模型开发软件。

分为废弃型和演化型两种。

3、构件组装模型:

采用构件技术实现软件复用,利用“搭积木”方式开发软件。

主流的构件技术标准有:

Microsoft公司的COM/COM+,Sun公司的JavaBean/EJB,OMG公司的CORBA。

7.3模块化188

模块化——指将整个软件划分成若干个易于处理的较小部分,每个部分单独命名并可独立访问,称为模块。

模块一般应具有功能独立性,易于开发,且和其他模块接口最简单。

(一般认为程序行数在50~100内,划分一个模块较为合适)

7.4模块之间的联系189

一个模块的独立程度可以由模块间的耦合性和模块内聚性来度量。

在设计程序时,应力求模块低耦合度、高内聚性。

1、耦合性——是模块间的相对独立性的度量。

Ø低耦合性——两个模块之间没有直接的关系,他们之间完全通过主模块的控制和调用来实现,或一个模块访问另一个模块时,彼此是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。

Ø中耦合性——是在模块间传递控制,控制模块必须知道被控制模块内部的一些逻辑关系。

Ø高耦合性——模块共享外部环境会产生相对的高耦合性。

Ø内容耦合——指最高的耦合性。

一个模块直接访问另一个模块内部数据。

2、内聚性——指模块功能强度的度量。

Ø低内聚性——指几个模块内凑巧有一些相同的程序段代码,没有表现出独立的功能,这些代码独立出来的模块属于低内聚性。

Ø高内聚性——指一个模块各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割。

也称功能内聚模块。

7.5软件开发方法

软件开发方法有三大类:

结构化方法、面向数据结构的开发方法、面向对象的方法。

1、结构化方法——自顶向下细化设计。

即在设计模块时,先把下层模块定义为“黑箱”,暂不考虑它们的实现,并在系统设计中利用他们。

即先定义好下层模块的输入输出,然后再对模块进行设计加工。

即开发过程遵循:

总体设计——详细设计——结构化编程。

2、面向数据结构方法——指从目标系统的输入输出数据结构入手,导出程序的基本框架,在此基础上对细节进行设计,得到完整的程序结构图。

适合中小型软件的的详细设计。

3、面向对象方法——将目标系统看作一个对象。

在设计时,模拟人的思维方式,将系统中的各个相对独立的部分(人类认知的较为独立的事物)规划为不同的对象,通过消息机制建立各对象之间的联系。

7.6软件测试目的193

软件测试——是根据开发各阶段的规格说明和程序的内部结构,设计一批测试用例(即输入数据及预期输出结果),利用这些测试用例去运行程序,以发现程序错误的过程。

7.7软件测试方法194

黑盒测试——根据软件的功能设计规格,在软件的接口处测试软件的功能(即对模块功能的测试)。

测试人员不考虑程序内部的逻辑结构和内部特性,只需要根据程序的分析规格说明,检查软件的功能。

一般选取代表性的测试用例测试。

白盒测试——按照程序的内部结构和处理过程进行测试。

对程序中尽可能多的逻辑路径进行测试(即对模块内部实现的测试)。

一般选取代表性的测试用例测试。

7.8软件测试的过程196

软件测试过程按:

单元测试、集成测试、确认测试和系统测试4个步骤进行。

7.9软件文档198

软件文档指软件产品从形成概念开始,经过开发、使用、修订,直到最后被淘汰的整个过程的应提交的文档。

包括:

可行性研究报告,项目开发计划、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、用户手册、操作手册、测试计划、测试分析报告、开发进度月报、项目开发总结报告、维护修改建议。

7.10CASE工具ComputerAidedSoftwareEngineering200

CASE——计算机辅助软件工程。

CASE——是一组工具和方法的集合,可以辅助软件开发过程。

CASE工具——一般包含项目计划工具、项目管理工具、文档工具、原型及模拟工具、界面设计工具、编程工具等。

第八章计算机软件系统205

8.1计算机软件系统205

计算机软件系统——包括操作系统、支撑软件、应用软件3个层次。

8.2操作系统的功能211

操作系统具有CPU管理、存储器管理、文件管理、设备管理功能。

还提供了方便的接口。

8.3CPU管理211

1、CPU管理的主要工作——完成CPU的分配调度。

2、进程——是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。

进程因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。

引入进程概念是为了描述并发执行程序的动态性。

3、进程包括——程序代码、数据集、状态、控制信息。

其中,进程的状态——由操作系统根据进程特征(优先级)和操作系统作业调度环境设定。

操作设定进程状态(状态信息)后,将进程分配到相应的系统状态队列中。

进程控制信息——是由操作系统根据进程特征(程序设定的)和系统作业调度环境设定。

进程控制信息包含在进程上下文中,包括进程标识符、优先级、资源清单等。

4、进程调度——指操作系统根据进程调度算法从状态队列中选取一个进程进行处理的调度过程。

包括改变该进程状态信息并把该进程放置到相应的状态队列中,或改变该进程状态信息并调度CPU执行该进程。

5、中断——指由于发生某个事件(一般为异常中断、时钟中断、系统调用中断、IO中断等),导致CPU中断进程A的执行,调用操作系统中断处理程序(此处为模式切换)对中断进行处理。

系统中断处理程序首先保护断点现场,保存中断上下文信息(主要是进程A的寄存器的上下文信息等);其次操作系统中断处理程序接收中断参数(入口地址等),根据中断参数,进行相关处理。

中断处理程序处理完中断后,将系统控制权交给操作系统进程调度程序。

8.4存储器管理214

1、存储器管理的目的——方便用户使用和提高主存使用效率。

2、内存分区——操作系统把内存分成若干个区域,并编号。

分为:

单一连续分区、固定分区方法和可变分区方法。

Ø单一连续分区——现只用于单用户、单任务的微机操作系统。

将内存分为系统区和用户区。

Ø固定分区——操作系统分配的每个内存区域大小固定(一般分区大小不等),操作系统生成一张分区表,每个表目说明一个分区的大小、起始地址、是否分配标志。

Ø可变(动态)分区——系统初始化后,内存被划分成两块,一块用于常驻操作系统,另一块则是完整的空闲区(用户区)。

操作系统在将作业装入内存时,才从可用的空闲内存中划分出一块连续的区域分配给作业(进程),该分区大小正好等于该作业占用内存的大小。

可变式分区的分配和释放的基本思想是:

在分配时,首先找到一个足够大的空闲分区,即这个空闲区的大小比作业要求的要大,系统则将这个空闲分区分成两部分:

一部分成为已分配的分区,剩余的部分仍作为空闲区。

在回收撤除作业所占领的分区时,要检查回收的分区是否与前后空闲的分区相领接,若是,则加以合并(拼接),使之成为一个连续的大空间。

操作系统利用空闲区表和空闲区链结构记录内存分配情况。

空闲分区表为每个尚未分配的分区设置一个表项,包括分区的序号、大小、始址和状态。

空闲区链结构是在每个分区的第一个字,设置一些用于控制分区分配的信息(如分区的大小和状态位),以及用于链接其它分区的前向指针;在分区最后一个字,则设置了一个后向指针,为了检索方便也设置了控制分区分配的信息。

然后,通过前、后向指针将所有的空闲分区链接成一个双向链表。

Ø简单分页——操作系统将内存分成若干大小相等的帧,将进程划分成与帧大小相等的页,操作系统维护一个空闲帧列表,为每个进程维护一个页表。

进程的每

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1