计算机二级公共基础知识

一1~2计算机系统

硬件系统

主机

    中央处理器(CPU)
        运算器
            负责对数据进行加工处理
  		控制器
            负责对程序所规定的指令进行分析
        寄存器
            是高速存储区域,用来暂时存放参与运算的数据和运算结果。
            指令寄存器
            地址寄存器
            存储寄存器
            累加寄存器
        主要技能指标
            字长
                CPU一次能处理的二进制数据的位数
            主频
                CPU的时钟频率,计算机的操作在时钟信号的控制下分布执行,每个时钟周期完成一步操作
            运算速度
                CPU每秒能执行的加法指令数目

存储器

        主存储器
            随机存储器(RAM)
                可读写性,具有易失性
                    静态RAM
                        集成度低 、价格高、存储速度快、不需要刷新
                    动态RAM
                        集成度高、价格低、存储速度慢、需要刷新
            只读存储器
                只能读出不能写入,内容就有永久性
        高速缓冲存储器
            介于CPU和内存之间的一种小容量、可高速存取信息的芯片,可用于解决它们之间速度不匹配的问题
        辅助存储器
            辅助存储器中数据被读入内存后,才能被CPU读取,CPU不能直接访问辅助存储器
        性能指标
            速度
            容量
            位价格

外部设备

    输入/输出设备
        输入设备
            计算机输入数据和信息的设备
            例:键盘、鼠标、摄像头、等
        输出设备
            将各种计算结果数据或信息以数字、字符、图像、声音等形式表示出来
            例:显示器、打印机、绘图仪、投影仪、音箱等
    辅助存储器
        可存放大量的程序和数据,并且断电后程序和数据不会丢失
        例:U盘、SM卡、SD卡等
    终端设备
        由通信设施向计算机输入程序和数据或接受计算机输出的处理结果的设备
        通用终端设备
            具有通信处理、控制功能的通用计算机输入/输出设备
        专用终端设备
            具有特殊性能、适用于特定业务范围的终端设备
    硬盘
        固定磁头硬盘
            每条磁道对应一个磁头
            特点:存取速度快,省去了磁头寻找磁道的时间,价格高
        活动磁头硬盘
            每个盘面只有一个磁头,因此“寻道”时间增加,存取速度慢
        信息分布
            记录面
                重叠的一组盘片构成,每个盘片的两面都可以用作记录面
            磁道
                磁头若保持在一个位置上,则每个磁头都会在记录面上划出一个圆型轨迹,这个轨迹就是磁道
            圆柱面
                各记录面上相同编号的磁道构成一个圆柱面
            扇区
                将一个磁道划分为若干弧段,每个弧段称为一个扇区或扇段
    I/O接口
        用于主机和外设之间的通信 ,通过接口可实现主机和外设之间的信息交换
        功能
            实现主机和外设的通信联络控制
            进行地址译码和设备选择
            实现数据缓冲以匹配速度
            信号格式的转换
            传输控制命令和状态信息
        I/O方式
            程序查询方式
                一旦某外设被选中并启动,主机将查询这个外设的某些状态位,判断其是否准备就绪,若准备就绪,则执行一次I/O操作
            程序中断方式
                在主机启动外设后,无需等待查询,继续执行程序,外设在做好输入/输出准备时,向主机发送中断请求,主机接到请求后就暂时终止原来执行的程序,转去执行中断服务程序并对外部请求进行处理
            DMA方式
                在内存和外设之间开辟直接的数据通道,可以进行基本上不需要CPU接入的内存和外设之u间的信息传递
            I/O通道控制方式
                是DMA方式的进一步发展,系统中设有通道控制部件,每个通道由若干外设

总线

    能被多个部件“分时共享”的公共信息传输线路
        分时:指同一时刻总线上只能传输一个部件发送的信息
        共享:指总线上可以“挂接”多个部件 
    分类
        片内总线:芯片内部的总线,如:在CPU芯片内存寄存器与寄存器之间、寄存器与算数逻辑单元(ALU)之间都由片内总线连接
        系统总线:指计算机系统内各功能部件之间相互连接的总线
        通信总线:用于计算机设备之间或计算机设备与其他设备之间信息传输的总线
    基本结构
        单总线结构:只有一条系统总线
        双总线结构:将低俗I/O设备从单总线上分离出来,实现内存总线与I/O总线分离
        三总线结构:采用3条各自独立的总线来构成信息通道
            内存总线:用于CPU和内存之间传输地址、数据及控制信息
            I/O总线用于在CPU和外设之间通信
            直接内存访问总线:用于在内存和高速外设之间直接传输数据
    性能指标
        总线周期:一次总线操作所需时间,通常由若干总线时钟周期构成
        总线时钟周期:计算机的时钟周期
        总线的工作频率:总线上各种操作的频率,为总线周期的倒数
        总线宽度:指数据总线的根数
        总线带宽:总线的数据传输率,即单位时间总线上传输数据的位数
        时钟同步/异步:数据与时钟同步工作的总线称为同步总线,数据与时钟不同步工作的总线称为异步总线
        总线复用:一种总线在不同时间传输不同的信息
        信号线数:地址总线、数据总线及控制总线3种总线数的总和
    总线仲裁
        按一定的优先次序来决定哪个部件首先使用总线
        集中式控制:总线控制逻辑基本上集中于一个设备中
        分布式控制:不需要中央制裁器,总线控制逻辑分散在连接于总线上的各个部件或设备中
    总线操作
        主要有读和写、块传输、写后读、或读后写、广播和广集等

软件系统

系统软件

操作系统

        概述
            是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,只要作用是管理好硬件设备,提高他们的利用率和系统吞吐量
                处理器(CPU)管理
                    创建和撤销进程,对多个进程的运行进行协调,实现进程之间的信息交换
                存储器管理
                    提供良好环境,提高存储器的利用率
                设备管理
                    完成用户进程提出的I/O请求,提高CPU和I/O设备的利用率,设备管理应具有缓冲管理、设备分配,设备处理以及虚拟设备等功能
                文件管理
                    对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性
                提供用户接口
            分类
                多道批处理操作系统
                    批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。
                分时操作系统
                    利用分时技术的一种联机的多用户交互式操作系统,分时是指把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。
                实时操作系统
                    一个能够在指定或者确定的时间内完成系统功能以及对外部或内部事件在同步或异步时间内做出响应的系统
                网络操作系统
                    一种在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。
                分布式操作系统
                    一种以计算机网络为基础的,将物理上分布的具有自治功能的数据处理系统或计算机系统互联起来的操作系统。
                嵌入式操作系统 
                    一种运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制的系统软件。
        进程管理
            顺序执行
                一个具有独立功能的程序独占处理器直至执行结束的过程,具有顺序性、封闭性、及可再线性等特点
            并发执行
                一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,特点:失去了封闭性、不可再现性、间断性即程序之间可以相互制约,具有并行性和共享性
            基本概念
                具有一定独立功能的程序关于某个数据集合的一次运行活动
                程序与进程的区别
                    进程是程序在处理器上的一次执行过程,它是动态的概念;程序只是一组指令的有序集合,是一个静态的概念
                    进程具有一定的生命周期;程序可以作为一种软件资源长期保存
                    进程包括程序和数据
                    一个程序可能对应多个进程
                    一个进程可以包含多个程序
            进程的状态及其转换
                创建状态
                    进程在创建过程中,尚不能运行的状态
                就绪状态
                    进程具备运行条件,等待系统分配处理器以便运行的状态
                运行状态
                    进程占有处理器、正在运行的状态
                等待状态
                    又称阻塞状态或睡眠状态,指进程不具备运行条件,正在等待某个事件完成的状态
                终止状态
                    进程运行结束的状态
                进程个数不能大于处理器个数,处于就绪和等待状态的进程可以有多个
            进程控制块(PCB)
                是操作系统用来记录和刻画进程状态和环境信息的数据结构,是进程动态特征的汇集,也是操作系统掌握进程的唯一资料结构和管理进程的主要依据
                进程名:唯一标识
                特征信息:反映该进程是不是系统进程等信息
                执行状态信息:反映对应进程当前的状态
                通信信息:反映该进程与其他进程之间的通信关系
                调度优先数:用于分配处理器时参考的一种信息
                现场信息:在对应进程放弃处理器时,将处理器的一些现场信息保留在该进程的PCB中,当下次回复运行时,只要按保存值重新装配即可继续运行
                系统栈:主要反映对应进程在运行时的一条嵌套调用路径上的历史
                进程映像信息:用于说明该进程的程序和数据存储情况
                资源占有信息:指明对应进程所占有的外设种类、设备号等
                族关系:反映该进程与其他进程间的隶属关系
            进程的组织
                线性方式
                    将系统中所有的PCB都组织在一张线性表中,再将该表的首地址存放在内存的一个专用区域中
                链接方式
                    把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列,按进程的优先级将PCB从高到低进行排列,将优先级高的进程的PCB排在队列的前面
                索引方式
                    系统根据所有进程不同的状态,建立几张索引表等,在每张索引表的表目中,记录具有相应状态的某个PCB在表中的地址
            进程调度
                是指按一定策略动态地把CPU分配给处于就绪队列中的某一进程并使之运行的过程
                进程调度可称为处理器调度或低级调度;相应的进程调度程序可称为分配程序或低级调度程序
                调度方式
                    抢占方式:就绪队列中一旦有优先级高于当前正在运行的进程出现时,系统便立即把CPU分配给高优先级的进程
                    非抢占方式:一旦CPU分给了某进程,即使就绪队列中出现了优先级比它高的进程,高优先级进程也不能抢占当前正在运行进程的CPU
                基本进程调度算法有:先来先服务调度算法、时间片轮转调度算法、优先级调度算法等
            其他概念
                线程
                    比进程更小的能独立运行的基本单位,用它来提高程序的并行程度,减少系统开销,从而进一步提高系统的吞吐量
                死锁
                    由于各进程相互独立地动态获得,并不断申请和释放系统中的软硬件资源,这就有可能使系统中若干个进程均因互相“无知地”等待对方所占有的资源而无限的等待
        存储管理
            是操作系统的重要组成部分,管理的主要对象是内存
            功能
                地址变换
                内存分配
                存储共享与保护
                存储器扩充
            地址重定位
                地址变换:当用户程序进入内存执行时,必须把用户程序中的所有相对地址(逻辑地址)转换成内存中的实际地址(物理地址)
                地址重定位:在进行地址转换时,要对程序中的指令地址和指令中有关地址的部分(有效地址)进行调整
                静态地址重定位
                    程序执行之前由操作系统的重定位将其装入内存来完成的
                动态地址重定位
                    在程序执行期间进行,采用一个重定位寄存器在每次进行存储访问时,将取出的逻辑地址加上重定位寄存器的内容形成物理地址
                    优点:不要求程序装入固定的内存空间,在内存中允许程序再次移动位置
            存储管理技术
                连续存储管理
                    特点:内存空间被划分成一个个分区,一个作业占一个分区,即系统和用户作业都以分区为单位享用内存
                    地址重定位采用静态地址重定位,分区的存储保护可采用上下界寄存器保护方式
                    分配方式
                        固定分区:简单,要求的硬件支持少,缺点:容易产生内部碎片
                        可变分区:避免了固定分区中每个分区都可能有剩余空间的情况,但由于它的空闲区域仍时离散的,因此会出现外部碎片
                分页式存储管理
                    当作业提出存储分配请求时,系统首先根据存储块大小把作业分成若干页,每一页可存储在内存的任意一个空白块内
                    优点:内存利用率高,内存分配与回收算法也比较简单
                    缺点:采用动态地址变换机构增加了硬性成本,也降低了处理器的运行速度
                分段式存储管理
                    以段为单位来分配内存的,且每一段必须分配连续的内存空间,较好地解决了程序和数据的共享以及程序动态链接等问题
                    优点:体现在地址空间管理
                段页式存储管理
                    段页式存储管理分页和分段两种存储管理方式的结合,特点:
                    将作业的逻辑地址空间分成若干个逻辑段,每段都有自己的段名
                    每段再分成若干大小固定的页,每段都从0开始为自己的各页依次编写连续的页号
                    对内存空间的管理仍然和分页式存储管理一样,将其分成若干个与页面大小相同的物理块,对内存空间的分配是以物理块为单位
                    作业的逻辑地址包括3个部分:段号,段内页号及页内位移
                虚拟存储器管理
                    把内存扩大到大容量外存上,把外存空间当作内存的一部分,作业运行过程中可以只让当前用到的信息进入内存,其他当前未用的信息留在外存;而当作业进一步运行,需要用到外存中的信息时,再把已经用过但暂时还不会用到的信息换到外存。
                    | 主要采用请求分页式存储管理、请求分段式存储管理及请求段页式存储管理技术实现
                    | 
        文件管理
            就是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性,提高外存空间的利用率
            文件与文件系统的概念
                文件是指一组带标识(文件名)的、具有完整逻辑意义的相关信息的集合
                文件名由文件名和扩展名两部分组成(中间用“.”隔开)
                文件名:识别文件
                扩展名:区分文件类型
                操作系统中与管理文件有关的软件和数据的集合称为文件系统
            文件类型
                按用途分
                    系统文件、库文件、用户文件
                按性质分
                    普通文件、目录文件、特殊文件
                按保护级别划分
                    只读文件、读写文件、可执行文件、不保护文件
                按文件数据的形式划分
                    源文件、目标文件、可执行文件
            文件系统模型
                文件系统的传统模型为层次模型。每一层都会使用下一层的功能特性来创建新的功能,为上一层服务
            文件的组织结构
                逻辑结构
                    是用户可见的结构
                        记录式文件
                            用于描述实体集中的一个实体,各记录有着相同或不同数目的数据项
                        流式文件
                            数据不在组成记录,只是一串由顺序的信息集合(有序字符流)
                物理结构
                    按不同的组织方式再外部存储介质上存放,就会得到不同的物理结构,
            文件目录管理
                能对一个文件进行正确的存取,用于描述和控制文件的数据结构,称为文件控制块(FCB)
                    有关文件存取控制的信息:文件名、用户名、文件主存取权限、授权者存取权限、文件类型及文件属性等
                    有关文件结构的信息:记录类型、记录个数、记录长度、文件所在设备名及文件的物理结构类型等
                    有关文件使用的信息:已打开文件的进程数、文件被修改的情况、文件最大长度及文件当前大小等
                    有关文件管理的信息:文件建立日期、最近修改日期及最后访问日期等
                    FCB就是一个文件目录项
                文件目录的
    语言处理系统
    数据库管理系统
    系统辅助处理程序

应用软件

    信息管理软件
    辅助设计软件
    文字处理软件
    图形图像软件
    各种程序包

计算机的工作原理

存放指令,取出指令,执行指令,直至程序结束才停止执行

指令格式

    指令能被计算机硬件理解并执行。一条计算机指令是用一串二进制代码表示的。它通常包括两方面的信息
        操作码:指明指令所要完成操作的性质和功能,指出进行什么操作
        操作数:指明操作码执行的操作对象。操作数可以是数据本身,也可以是存放数据的内存单元地址或寄存器名称。又可以分为源操作数和目的操作数两类

指令的寻址方式

    寻址方式就是找到当前正在执行指令的数据地址和下一条将要执行指令的地址的方法
    寻址方式分为
        指令寻址:找到下一条将要执行指令的地址
        数据寻址:找到当前正在执行指令的数据地址
    指令寻址分为顺序寻址和跳跃寻址两种。常见有:立即寻址(所需操作数由指令的地址码部分直接给出)、直接寻址(指令的地址码部分给出操作数在存储器中的地址)、隐含寻址(操作数的地址隐含在指令的操作码或者某个寄存器中)、简介寻址、寄存器寻址等

指令系统

    一台计算机所能执行的全部指令的集合,不同类型的计算机的指令系统的指令数目与格式也不同,但都有一下的功能指令

数据传输类指令:用来实现数据在内存和CPU之间的传输
运算类指令:可以用来控制成语中指令的执行程序
输入/输出指令:用来实现外设与之际之间的数据传输
处理器控制和调试指令:用来实现计算机的硬件管理等

一3.数据的内部表示

计算机中的数据及其存储单位

计算机中的数据
    内部均使用二进制数表示各种信息,但计算机在外部沟通中会采用人们比较熟悉和方便阅读的形式,如十进制,期间的转换,主要用计算机系统的硬件和软件来实现

计算机中数据的存储单位
    位(bit)是计算机中数据最小单位,
    字节(Byte,B)是存储容量的基本单位,一个字节由8位二进制位组成

进位计数制及其转换

进位计数制
    数的表示规则称为数制,如果用R表示任意整数,进位计数制位“逢R进一”

R进制数转为十进制数
    二转十:(11010)_{2}=1*2^4+1*2^3+0*2^2+1*2^1+0*2^0=(26)_{10}
    八转十:(140)_8=1*8^2+4*8^1+0*8^0=(96)_{10}
    十六转十:(A2B)_{16}=10*16^2+2*16^1+11*16^0=(2603)_{10}

十进制数转换为R进制数
    十转二
        用十进制数除以2得到商和余数,商再除以2又得到……
        以最先除得的余数为最低为,最后的为最高位,从高到低排列

    十转八,十转十六,都可以“除以8取余”,“除以16取余”

无符号数和带符号数

无符号数
    没有符号位,相当于绝对值,字长为n的无符号数的表示范围为0~2^n-1

带符号数
    0表示正号,1表示负号
        原码
            符号位为0表示正数,为1表示负数,数值位即真值的绝对值

        反码
            正数的反码与原码相同,负数的反码是对该数的原码除符号位以外的各位取反

        补码
            补码与原码相同;负数的补码是在该数的反码的最低位(最右边一位)加1

        移码
            一个真值的移码和补码只差一个符号位,若将补码的符号位由0改为1,或由1改为0,即得到移码

机器数的定点表示和浮点表示

定点表示
    约定机器数中的小数点位置是固定不变的,小数点不再使用“.”表示,而是约定它的位置,两种简单的约定
        将小数点的位置固定在最高位之前、符号位之后
        或固定在最低为之后

    移位运算
        算术移位(带符号数的移位)
        逻辑移位(无符号数的移位)


浮点表示
    浮点数由阶码和尾数两部分组成
    阶码是整数,尾数必须为规格化数

**

一4.操作系统

**

概述

 是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,只要作用是管理好硬件设备,提高他们的利用率和系统吞吐量
    功能与任务:
         处理器(CPU)管理
            创建和撤销进程,对多个进程的运行进行协调,实现进程之间的信息交换

         存储器管理
            提供良好环境,提高存储器的利用率

        设备管理
             完成用户进程提出的I/O请求,提高CPU和I/O设备的利用率,设备管理应具有缓冲管理、设备分配,设备处理以及虚拟设备等功能

        文件管理
            对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性

        提供用户接口

     分类
        多道批处理操作系统
            批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。

        分时操作系统
             利用分时技术的一种联机的多用户交互式操作系统,分时是指把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。

        实时操作系统
            一个能够在指定或者确定的时间内完成系统功能以及对外部或内部事件在同步或异步时间内做出响应的系统
            具有快速响应能力
            过程控制系统(如工业生产自动控制、航空器飞行和航天器发射控制)、信息查询系统(如仓库管理系统、图书资料查询系统)和事物处理系统(如飞机或铁路订票系统、银行管理系统)

        网络操作系统
            一种在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。

        分布式操作系统
              一种以计算机网络为基础的,将物理上分布的具有自治功能的数据处理系统或计算机系统互联起来的操作系统。

        嵌入式操作系统
            一种运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制的系统软件。

进程管理

顺序执行
    一个具有独立功能的程序独占处理器直至执行结束的过程,具有顺序性、封闭性、及可再线性等特点

 并发执行
    一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,特点:失去了封闭性、不可再现性、间断性即程序之间可以相互制约,具有并行性和共享性

基本概念

    具有一定独立功能的程序关于某个数据集合的一次运行活动
    程序与进程的区别
        进程是程序在处理器上的一次执行过程,它是动态的概念;程序只是一组指令的有序集合,是一个静态的概念
        进程具有一定的生命周期;程序可以作为一种软件资源长期保存
         进程包括程序和数据
          一个程序可能对应多个进程
         一个进程可以包含多个程序

进程的状态及其转换

    创建状态
        进程在创建过程中,尚不能运行的状态

    就绪状态
        进程具备运行条件,等待系统分配处理器以便运行的状态

    运行状态
        进程占有处理器、正在运行的状态

    等待状态
        又称阻塞状态或睡眠状态,指进程不具备运行条件,正在等待某个事件完成的状态

    终止状态
        进程运行结束的状态

    进程个数不能大于处理器个数,处于就绪和等待状态的进程可以有多个
进程控制块(PCB)
    是操作系统用来记录和刻画进程状态和环境信息的数据结构,是进程动态特征的汇集,也是操作系统掌握进程的唯一资料结构和管理进程的主要依据
    进程名:唯一标识
    特征信息:反映该进程是不是系统进程等信息
    执行状态信息:反映对应进程当前的状态
    通信信息:反映该进程与其他进程之间的通信关系
    调度优先数:用于分配处理器时参考的一种信息
    现场信息:在对应进程放弃处理器时,将处理器的一些现场信息保留在该进程的PCB中,当下次回复运行时,只要按保存值重新装配即可继续运行
     系统栈:主要反映对应进程在运行时的一条嵌套调用路径上的历史
    进程映像信息:用于说明该进程的程序和数据存储情况
    资源占有信息:指明对应进程所占有的外设种类、设备号等
    族关系:反映该进程与其他进程间的隶属关系

进程的组织

    线性方式
        将系统中所有的PCB都组织在一张线性表中,再将该表的首地址存放在内存的一个专用区域中

    链接方式
        把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列,按进程的优先级将PCB从高到低进行排列,将优先级高的进程的PCB排在队列的前面

    索引方式
        系统根据所有进程不同的状态,建立几张索引表等,在每张索引表的表目中,记录具有相应状态的某个PCB在表中的地址

进程调度

    是指按一定策略动态地把CPU分配给处于就绪队列中的某一进程并使之运行的过程
    进程调度可称为处理器调度或低级调度;相应的进程调度程序可称为分配程序或低级调度程序
    调度方式
        抢占方式:就绪队列中一旦有优先级高于当前正在运行的进程出现时,系统便立即把CPU分配给高优先级的进程
        非抢占方式:一旦CPU分给了某进程,即使就绪队列中出现了优先级比它高的进程,高优先级进程也不能抢占当前正在运行进程的CPU

    基本进程调度算法有:先来先服务调度算法、时间片轮转调度算法、优先级调度算法等

其他概念

    线程
        比进程更小的能独立运行的基本单位,用它来提高程序的并行程度,减少系统开销,从而进一步提高系统的吞吐量

     死锁
        由于各进程相互独立地动态获得,并不断申请和释放系统中的软硬件资源,这就有可能使系统中若干个进程均因互相“无知地”等待对方所占有的资源而无限的等待

存储管理

是操作系统的重要组成部分,管理的主要对象是内存
功能
    地址变换
    内存分配
    存储共享与保护
    存储器扩充

地址重定位
    地址变换:当用户程序进入内存执行时,必须把用户程序中的所有相对地址(逻辑地址)转换成内存中的实际地址(物理地址)
    地址重定位:在进行地址转换时,要对程序中的指令地址和指令中有关地址的部分(有效地址)进行调整
    静态地址重定位
        程序执行之前由操作系统的重定位将其装入内存来完成的
        固定分区存储管理采用静态地址重定位

    动态地址重定位
        在程序执行期间进行,采用一个重定位寄存器在每次进行存储访问时,将取出的逻辑地址加上重定位寄存器的内容形成物理地址
        优点:不要求程序装入固定的内存空间,在内存中允许程序再次移动位置


存储管理技术
    连续存储管理
        特点:内存空间被划分成一个个分区,一个作业占一个分区,即系统和用户作业都以分区为单位享用内存
        地址重定位采用静态地址重定位,分区的存储保护可采用上下界寄存器保护方式
        分配方式
            固定分区:简单,要求的硬件支持少,缺点:容易产生内部碎片
            可变分区:避免了固定分区中每个分区都可能有剩余空间的情况,但由于它的空闲区域仍时离散的,因此会出现外部碎片


    分页式存储管理
        当作业提出存储分配请求时,系统首先根据存储块大小把作业分成若干页,每一页可存储在内存的任意一个空白块内
        优点:内存利用率高,内存分配与回收算法也比较简单
        缺点:采用动态地址变换机构增加了硬性成本,也降低了处理器的运行速度

    分段式存储管理
        以段为单位来分配内存的,且每一段必须分配连续的内存空间,较好地解决了程序和数据的共享以及程序动态链接等问题
        优点:体现在地址空间管理

    段页式存储管理
        段页式存储管理分页和分段两种存储管理方式的结合,特点:
            将作业的逻辑地址空间分成若干个逻辑段,每段都有自己的段名
            每段再分成若干大小固定的页,每段都从0开始为自己的各页依次编写连续的页号
            对内存空间的管理仍然和分页式存储管理一样,将其分成若干个与页面大小相同的物理块,对内存空间的分配是以物理块为单位
            作业的逻辑地址包括3个部分:段号,段内页号及页内位移


    虚拟存储器管理
        把内存扩大到大容量外存上,把外存空间当作内存的一部分,作业运行过程中可以只让当前用到的信息进入内存,其他当前未用的信息留在外存;而当作业进一步运行,需要用到外存中的信息时,再把已经用过但暂时还不会用到的信息换到外存。
        | 主要采用请求分页式存储管理、请求分段式存储管理及请求段页式存储管理技术实现

文件管理

就是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性,提高外存空间的利用率
文件与文件系统的概念
    文件是指一组带标识(文件名)的、具有完整逻辑意义的相关信息的集合
    文件名由文件名和扩展名两部分组成(中间用“.”隔开)
    文件名:识别文件
    扩展名:区分文件类型
    操作系统中与管理文件有关的软件和数据的集合称为文件系统

文件类型
    按用途分
        系统文件、库文件、用户文件

    按性质分
        普通文件、目录文件、特殊文件

    按保护级别划分
        只读文件、读写文件、可执行文件、不保护文件

    按文件数据的形式划分
        源文件、目标文件、可执行文件


文件系统模型
    文件系统的传统模型为层次模型。每一层都会使用下一层的功能特性来创建新的功能,为上一层服务

文件的组织结构
    逻辑结构
        是用户可见的结构
            记录式文件
                用于描述实体集中的一个实体,各记录有着相同或不同数目的数据项

            流式文件
                数据不在组成记录,只是一串由顺序的信息集合(有序字符流)



    物理结构
        按不同的组织方式再外部存储介质上存放,就会得到不同的物理结构,

文件目录管理

    概念:
        能对一个文件进行正确的存取,用于描述和控制文件的数据结构,称为文件控制块(FCB)
            有关文件存取控制的信息:文件名、用户名、文件主存取权限、授权者存取权限、文件类型及文件属性等
            有关文件结构的信息:记录类型、记录个数、记录长度、文件所在设备名及文件的物理结构类型等
            有关文件使用的信息:已打开文件的进程数、文件被修改的情况、文件最大长度及文件当前大小等
            有关文件管理的信息:文件建立日期、最近修改日期及最后访问日期等
            FCB就是一个文件目录项


     文件目录的结构
        单级目录:
            优点:简单;缺点:查找速度慢,不允许重名,不便于实现文件共享

        二级目录:
            提高了检索目录的速度;在不同的用户中可以使用相同的文件名,但统一用户目录,不能有两个同名文件存在

        多层级目录:
            既可以方便用户查找文件,又可以把不同类型和不同用途的文件分类,可以重名,缺点:不能直接支持文件或目录的共享等

        为了使文件或目录可以被不同的目录所共享,出现了结构更复杂的无环图结构目录和图状结构目录等

    存取权限
        存取权限可以通过建立访问控制表和存取权限表来实现
        进行安全性保护
            一是对文件和目录进行权限设置
            二是对文件和目录进行加密
文件存储空间管理
    是文件系统的中重要任务之一,管理实质上是空闲块管理问题
    管理方法主要有:空闲文件项、空闲区表、空闲块链、位示图、空闲块成组链接法(UNIX操作系统中)等

I/O设备管理

是操作系统中最庞杂和琐碎的而部分之一

I/O软件的层次结构

    设计目标是将I/O软件组织成一种层次结构,每一次都是利用其下层提供的服务,完成输入/输出功能中的某些子功能;I/O软件组织成4个层次
        用户层软件
            用于实现与用户交互的接口,用户可直接调用该层提供的、与I/O操作有关的库函数对设备进行操作

        设备独立性软件
            用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时提供必要的存储空间

        设备驱动程序
            与硬件直接相关,用于具体实现系统对设备发出的操作指令

        中断处理程序
            用于保持被中断进程的CPU环境,转入相应的中断处理程序进行处理

中断处理程序

        当一个进程请求I/O操作时,进程将被“挂起”,直到I/O设备完成I/O操作后,设备控制器便向CPU发送一个中断请求,CPU响应后作出处理
            CPU检查响应中断的条件是否满足
            如果条件满足,CPU响应中断,则CPU关中断,使其进入不可再次相应中断的状态
            保存被中断进程的CPU环境
            分析中断原因,调用中断处理子程序
            执行中断处理子程序
            退出中断,恢复被中断进程的CPU现场或调度新进程占用CPU
            开中断,CPU继续执行

        I/O操作完成后,驱动程序必须检查本次I/O操作中是否发生了错误,并向上层软件报告,最终调用者报告本次I/O的执行情况

设备驱动程序

        是驱动物理设备和DMA控制器或I/O控制器等直接进行I/O操作的子程序结合
            接受由设备独立性软件发来的命令和参数,并将命令中的抽象要求转换位与设备相关的低层次操作序列
            检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式
            发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作,如果设备忙碌,则将请求者的请求块挂在设备队列上等待
            即使响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理

设备独立性软件

        为了实现设备独立性,必须在设备驱动程序上设置一层软件,主要功能
            向用户层软件提供统一接口
            设备命名
            设备保护
            提供过一个独立于设备的块尺寸
            缓冲技术
            设备分配和状态跟踪
            错误处理和报告等

用户层软件

        在层次结构的最上层,它面向用户,负责与用户 和设备无关的I/O软件通信

设备的分配与回收

        由于设备、控制器及通道资源的有限性,因此不是每个进程都能随时随地得到这些资源

2.2数据结构的基本概念
数据结构

| 指相互有关的数据元素的集合
	数据
    需要处理的数据元素的集合。一般来说,这些数据元素具有某个共同特征
    如:早餐、午餐、晚餐这3个数据元素有一个共同的特征,即它们都是一日三餐的名称,从而构成了”一日三餐“的集合

结构
    关系,是集合中各个数据元素之间存在的某种关系(或联系)
    如:当考虑一日三餐的时间顺序关系时,”早餐“时”午餐“的前件(或直接前驱),而”午餐“是”早餐“的后件(或直接后继);同样,”午餐“是”晚餐“的前件,”晚餐“是”午餐“的后件

数据结构分为
    逻辑结构
        指反映数据元素之间逻辑关系(前件/后件关系)的数据结构

    存储结构
        又称数据的物理结构,是数据的逻辑结构在计算机存储空间中的存放方式

请添加图片描述

数据的逻辑结构的数学形式定义——数据结构是一个二元组:B=(D,R)
| B:表示数据结构;D:是数据元素的集合;R是D上关系的集合,它反映了D中各数据元素之间的前件/后件的关系
    如果把一日三餐看作数据结构,则可以表示
        B=(D,R)
        D={早餐,午餐,晚餐}
        R={(早餐,午餐),(午餐,晚餐)}

    如果把部队军职看作数据结构,则可以表示
        B=(D,R)
        D={连长,排长,班长,士兵}
        R={(连长,排长),(排长,班长),(班长,士兵)}

除了用二元关系表示歪,还可以用图形表示。用中间标有元素值的方框表示的数据元素,一般称为数据节点,简称节点

节点的基本概念
    根节点
        数据结构中,没有前件的节点
        如:”早餐“,”连长“

    终端节点(或叶子节点)
        数据结构中,没有后件的节点
        如:“晚餐”,“士兵”

    内部节点
        数据结构中,除了根节点和终端节点以外的节点
        如:“午餐”,“班长”

在这里插入图片描述

线性结构与非线性结构

| 根据数据结构中各数据元素之间前件/后件关系的复杂程度,一般将数据结构划分为两大类型
线性结构
    一个非空的数据结构如果满足一下两个条件就称为数据结构
        有且只有一个根节点
        每一个节点最多有一个前件,也最多有一个后件
    如:一日三餐数据结构
非线性结构
    不满足以上两个条件的数据结构就成为非线性结构,非线性结构主要是指树形结构和网状结构
    如:部队军职的数据结构
如果一个数据结构中没有数据元素,则称该数据结构为空的数据结构

2.3.线性表及其顺序存储结构

基本概念

线性结构习惯称为线性表,是最简单,也是最常用的一种数据结构
线性表是由n(n>=0)个数据元素构成的有限序列,有且只有一个前件;除最后一个元素外,有且只有一个后件
线性表要么是空表,要么可以表示为(a_1,a_2,a_3,......,a_n);其中a_i是线性表的数据元素,也称为线性表的一个节点。同意线性表中的数据元素必定具有相同的特性,即数据同一数据对象
非空线性表具有一下结构特征
    只有一个跟节点,即节点a_1,它无前件
    有且只有一个终端节点,即节点a_n,它无后件
    除根节点与终端节点外,其他所有节点有且只有一个前件,并有且只有一个后件

线性表的顺序存储结构

可以采用顺序存储和链式存储
顺序存储结构是存储线性表最简单的存储结构之一
    基本特征
        线性表中所有数据元素所占的存储空间是连续的
        线性表中各数据元素再存储空间中是按逻辑顺序依次存放的

2.4.栈和队列

栈及其基本运算

栈的定义
    是一种特殊的线性表
    允许插入与删除的一端称为栈顶,不允许插入与删除的一端称为栈底,当栈中没有元素是,称为空栈

栈的运算
    栈的修改原则是“后进先出”或“先进后出”
    通常用指针top来只是栈顶的位置,用指针bot-tom来只是栈底的位置。栈顶指针top反映了栈不断变化的状态
    假设栈S=(a_1.a_2,......,a_n),则称a_1为栈底元素,a_n为栈顶元素。栈中元素按a_1.a_2,......,a_n的次序进栈 ,退栈的第一个元素应为栈顶元素a_n
    栈的基本运算有3种:入栈,退栈及读栈顶元素。存储方式与一般线性表的存储方式类似 !

在这里插入图片描述

请添加图片描述

队列的定义
    是指允许在一端进行插入,而在另一端进行删除的线性表;若有队列:Q=(q_1,q_2,...,q_n),q_1是队头元素(排头元素),q_n为队尾元素,队列钟的元素是按照q_1,q_2,...,q_n的顺序进入的,退出 队列也只能按照这个次序一次退出,与栈相反,队列又称为“先进先出”或“后进后出“

队列的运算
    可以用顺序存储的线性表来表示队列,为了指示当前执行退队运算的队头位置,需要一个队头指针front;为了只是当前执行入队运算的队尾位置,需要一个队尾指针rear。队头指针front总是指向队头元素的前一个位置,而队尾指针rear总是指向队尾元素

循环队列及其运算
    队列的顺序存储结构一般采用循环队列的形式
    循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间
    在循环队列中,用队尾指针rear指向队列![请添加图片描述](https://img-blog.csdnimg.cn/aba79195db3d4fbba56357c306d93faa.jpeg)

中的队尾元素,用队头指针front指向队头元素的前一个位置。因此,从队头指针front 指向队头元素的前一个位置。因此从队头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素
请添加图片描述
请添加图片描述

2.6.树与二叉树

请添加图片描述

树是一种简单的非线性结构
A有后代B、C;B有后代D.E.F;C有后代G;E有后代H.I则:
父节点(根)
    在树结构中,每一个节点只有一个前件,称为该节点的父节点:没有前件的节点只有一个,称为树的根节点,简称树的根
    如A

子节点和叶子节点
    在树结构中,每一给节点可以有多个后件,称为该节点的子节点。没有后件的节点称为叶子节点
    如D,H,I,F,G

度
    在树结构中,一个节点所拥有的后加个数称为该节点的度,所有节点中最大的度称为树的度
    如,根节点A和节点E的度为2,节点B的度为3,节点C的度为1,叶子节点D,H,I,F,G的度为0,所以这个树的度为3

深度
    定义一棵树的根节点所在的层次为1,其他节点所在的层次等于它的父节点所在的层次加1.树的最大层次称为树的深度
    如,根节点A在第一层,节点B,C在第二层……

子树
    在树中,以某节点的一个子节点为根构成的树称为该节点的一棵子树
    如,节点A有2棵子树,它们分别以B,C为根节点

树中的节点数等于树中所有节点的度之和再加1

请添加图片描述

请添加图片描述

二叉树的定义
    二叉树与树不同,但它于树的结构很相似
    特点
        二叉树可以空。空的二叉树没有节点,非空二叉树有且只有一个根节点
        每个节点最多有两棵子树,即二叉树中不存在度大于2的节点
        二叉树的子树有左右之分,其次序不能任意颠倒


二叉树的性质
    性质一:再二叉树的第K层上,最多有2^{k-1}(k>=1)个节点
    性质二:深度为m的二叉树中,最多有2^{m-1}个节点
    性质三:对任何一棵二叉树,度为0的节点(叶子节点)总是比度为2的节点多一个
    性质四:具有n个节点的二叉树,其深度至少为[log_2n]+1,其中[log_2n]表示取log_2n的整数部分
    性质五:具有n个节点的完全二叉树的深度为[log_2n]+1

满二叉树和完全二叉树
    满二叉树是指除最后一层外,每一层上的所有节点都有两个子节点的二叉树
    深度为4 的二叉树
    完全二叉树是指除最后一层外,每一层上的节点数均达到最大值,再最后以层上只缺少右边的若干节点的二叉树
    完全二叉树
    满二叉树一定是完全二叉树,完全二叉树一般不是满二叉树,完全二叉树具有以下特点
        叶子节点只可能再最后两层出现
        对于任一节点,若其右子树的深度为m,则该节点左子树的深度为m或m+1

请添加图片描述
请添加图片描述
请添加图片描述

二叉树的存储结构

二叉树通常采用链式存储结构,其中元素的存储节点由数据域和指针域两部分构成;每一个存储节点由两个指针域,因此也成为二叉链表![请添加图片描述](https://img-blog.csdnimg.cn/677cbccca2d34f18aad84ee995056a67.jpeg)


是指不重复地访问二叉树中地所由节点
一般先遍历左子树,再遍历右子树,再先左后右地原则下,根据访问根节点地不同次序,二叉树地遍历可以分三种
    前序遍历
        首先访问根节点,然后遍历左子树,最后遍历右子树,并且再遍历左子树和右子树是,仍然先访问根节点,然后遍历左子树,最后遍历右子树
        结果为A,B,D,H,E,I,C,F,G

    中序遍历
        首先遍历左子树,然后访问根节点,最后遍历右子树,并且在遍历左子树和右子树时,仍然首先遍历左子树,然后访问根节点,最后遍历右子树
        结果为H,D,B,E,I,A,C,G,F

    后序遍历
        首先遍历左子树,然后遍历右子树,最后访问根节点;并且在遍历左子树和右子树时,仍然首先遍历左子树,然后遍历右子树,最后访问根节点
        结果为H,D,I,E,,B,G,F,C,A

    已知一棵二叉树地前序遍历和后序遍历序列,不能唯一确定这颗二叉树

2.7.查找

顺序查找

基本思想:从线性表地第一个元素开始,逐个将线性表中地元素与被查元素进行比较,若相等,则查找成功,停止查找
    在最好的情况下,比较次数为1
    在最坏地情况下,比较次数为N
    在平均情况下,是n/2
    当线性表为无序表,无论是链式结构存储还是顺序结构存储,即使线性表是有序地,如果采用的是链式存储结构,都只能用顺序查找

二分法查找

⚠需要满足两个条件
    用顺序存储结构,线性表是有序表,
    | “有序”特指元素按非递减顺序排列,即从小到大排列,但允许相邻元素相等

将X与线性表的中间项比较的过程
    如果X的值与中间的值相等,则查找成功,结束查找
    如果X的值小于中间项的值,则在线性表的前半部分以二分法继续查找
    如果X的值大于中间项的值,则在线性表的后半部分以二分法继续查找

在最坏的情况下,二分法查找只需比较log_2n次

2.8.排序

指将一个无序序列整理成按值非递减顺序排列的有序序列

交换类排序

借助数据元素的“交换”来进行排序的方法
冒泡排序
    通过两两相邻数据元素之间的比较和交换,不断地消去逆序,直到所有数据元素有序为止
    比较的次数为n(n-1)/2

快速排序
    取一个元素K,以元素K作为分割标准,把所有元素K 的数据元素都移到K前面,把所有大于元素K的数据元素都移到K后面
    最坏情况下,需要进行n(n-1)/2次

插入类排序

将一个待排序元素,按其元组值的大小插入前面已经排好序的子表中的适当位置,值到全部元素插入完成为止
    简单插入排序
        把N个待排序的元素看成一个有序表和一个无序表。开始时,有序表只包含一个元素,而无序表包含另外n-1个元素,每次取无序表中的第一个元素插入有序表中的正确位置,使之称为增加一个元素的新的有序表。插入元素时,插入位置及其后的记录一次向后移动。最后有序表的长度为N
        最坏情况下n^r(1<r<2)

请添加图片描述

通过每一次待排序序列中选出值最小的元素,然后将其顺序放在已排好序的有序子表的后面,直到全部序列满足排序要求为止
简单选择排序
    先从所有n个待排序的数据元素中选择最小的元素,将该元素与第一个元素交换,再从剩下的n-1个元素中选出最小元素与第二个元素交换,重复这样的操作直到所有元素有序为止
    最坏情况下n(n-1)/2

堆排序
    由n个元素的序列(h_1,h_2,...,h_n),将元素按顺序组成一棵完全二叉树,该树当且仅当满足一下条件时称为堆
    最坏情况下比较nlog_2n次

3.1数据库的基本概念

基本概念

数据
    描述事物的符号记录,具有长期保存的特点,被称为持久性数据,一般存放在计算机内存中的数据称为临时性数据。

数据库(DB)
    长期存储在计算机内的、有组织的、可共享的数据集合
    数据库就是存放数据的仓库,数据库存放的数据是按数据所提供的数据模式存放的,有两大特点,“集成”与“共享”

数据库管理系统
    是数据库的机构,是一个软件,负责数据库中的数据组织,数据操纵,数据维护、控制及保护,数据服务等
    是数据库系统的核心,它位于用户与操作系统之间,它属于系统软件。
    主要功能包括:数据模式定义;数据存取的物理构建;数据操纵;数据完整性;安全性的定义与检查;数据库的并发控制与故障恢复;数据的服务等。为了完成以上的功能,数据库管理系统提供了相应的数据语言
        数据定义语言:负责数据的模式定义与数据的物理存取构建
        数据操纵语言:负责数据的操纵,包括查、增、删、改等操作
        数据控制语言:负责数据的完整性、安全性的定义与检查、以及并发控制、故障恢复等功能


数据库管理员
    由于共享性,数据库的规划、设计、维护、监视等需要有专人管理,其主要工作是:设计数据库、维护数据库、改善系统性能、及提高系统效率等

数据库系统
    由数据库、数据库管理系统、数据库管理员、系统平台之一——硬件平台、系统平台之二——软件平台。是一个以数据库管理系统为核心的、完整的运行实体

数据库应用系统(DBAS)
    使用数据库管理系统软件和数据库开发工具编写除应用程序,用相关的可视化工具开发出应用界面,则构成了数据库应用系统
    包括:数据库、数据库管理系统、人员(数据库管理员和用户)、硬件平台、软件平台、应用软件、应用界面

数据管理技术的发展
请添加图片描述

经历了3 个阶段:人工管理阶段,文件系统阶段及数据库系统阶段

数据库系统的基本特点

数据库系统的独立性,是指数据库中数据独立于应用程序且不依赖于应用程序 ,即数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序,数据独立性一般分为物理独立性和逻辑独立性两级

请添加图片描述
数据库系统的内部结构体系
请添加图片描述

分为三级模式和两级映射
数据库系统的三级模式
    概念模式
        也称模式,是对数据库系统中全局数据逻辑结构的描述,是全体用户的公共数据视图。

    外模式
        也称子模式或者用户模式,是用户的数据视图,也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。外模式通常是概念模式的子集

    内模式
        也称物理模式,是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式

    其中,内模式处于最内层,它反映了数据在计算机物理结构中的实际存储形式;概念模式处于中层,它反映了设计者的数据全局逻辑要求;而外模式处于最外层,它反映了用户对数据的要求。
    一个数据库只有一个概念模式和一个内模式,有多个外模式

数据库系统的两级映射
    在三级模式之间提供了两级映射:外模式/概念模式的映射和概念模式/内模式的映射。两级映射保证了数据库中的数据具有较高的逻辑独立性和物理独立性。

3.2数据模型

数据模型的基本概念

数据模型的概念
    是对数据特征的抽象。是对现实世界的模拟,描述或表示,建立数据模型的目的是建立数据库来处理数据

数据模型的3个部分
    数据结构:主要描述数据的类型、内容、性质以及数据间的联系
    数据操作:相应数据结构上的操作类型与操作方式
    数据约束:数据结构内数据间的语法,语义联系,它们之间的制约与依存关系,以及数据动态变化的规则,以保证数据的正确,有效及相容

数据模型的类型
    概念模型:对现实世界复杂事物的描述,及对它们内在联系的刻画
        目前,著名的概念模型由:实体联系模型(E-R模型)、面向对象模型、谓词模型

    逻辑模型:又称数据模型,是面向数据库系统的模型,着重于在数据库系统统一级的实现
        成熟并大量使用的数据模型有:层次模型、网状模型、关系模型及面向对象模型等

    物理模型:面向计算机物理实现的模型,给出了数据模型在计算机上物理结构的表示

请添加图片描述

E-R模型是广泛使用的概念模型,
基本概念
    实体。客观存在并且可以相互区别的事物称为实体,是一个实际的事物
    属性:描述实体的特性称为属性
    联系:实体之间的对应关系称为联系,它放映现实世界事物之间的相互关联
    根据一个实体型中可能出现的每一个实体和另一个实体型中有多少个具体实体存在联系

E-R模型的3个基本概念之间的连接关系
    现实世界是有机联系的整体,为了表示现实世界,必须把三者联系起来
    实体(集)与联系的连接关系。
        实体集之间必须通过联系来建立连接关系
        如,教师与学生之间无法直接建立连接关系,他们只能通过”教与学”的联系才能在相互之间建立连接关系

    属性与实体(集/联系)的连接关系
        实体和联系是概念世界的基本元素,而属性是附属于实体和联系的,它本身并不是独立的单位。
        联系也可以附有属性。如,供应商和零件两个实体之间有“供应”的联系,该联系具有“供应量”的属性。联系和它的属性构成了联系的完整秒速


E-R图
    可以用图形来描述
        3个基本概念分别用3种集合图形表示,如,实体集student有属性S#(学号)、Sn(姓名)、及Sa(年龄);实体集course有属性C#(课程号)、Cn(课程名)、及p#(预修课号);联系SC以后属性G(成绩)

请添加图片描述
请添加图片描述

关系模型

关系模型的数据结构
    是目前最常用的数据模型之一。关系模型的数据结构非常单一。现实的实体和实体间的各种联系均用关系来表示。
    关系具有七个性质
        元组个数的有限性
        元组的唯一性
        元组的次序无关性:行的次序可以任意交换
        元组分量的原子性:元组的分量是不可分割的基本数据项
        属性名的唯一性
        属性的次序无关性
        分量值域同一性

    满足以上七个性质的二维表称为关系,以二维表为基本结构所建立的模型称为关系模型

关系模型的完整性约束
    实体完整性约束:若属性M是关系的主键,则属性M中的属性值不能为空
    参照完整性约束:若属性(或属性组)A是关系M的外键,它与关系N的主键相对应,则关系M中的每个元组在A上的值,要么为空,要么等于关系N中某个元组的主键值
    用户定义的完整性约束:反映了某一具体应用所涉及的数据必须满足的语义要求
    参照完整性约束:用户定义的完整性约束反映了某一具体应用所设计的数据必须满足的语义要求
    前两种约束时任何一个关系数据库都必须满足的,由关系数据库管理系统自动支持

数据模型通常由数据结构、数据操作及数据约束3部分组成。完整性规则属于数据约束

请添加图片描述

3.3关系代数

关系与关系之间的运算。进行运算的对象都是关系,运算的结果也是关系(表)

请添加图片描述

属于关系R但不属于关系S的元组构成

交运算
属于关系R且属于关系S的元组组成,并记为R\capS。R\capS=R-(R-S)

请添加图片描述

交运算
属于关系R且属于关系S的元组组成,并记为R\capS。R\capS=R-(R-S)
请添加图片描述
笛卡尔积运算
关系R与关系S的笛卡尔积记为RS。它是一个m+n元关系,元组个数是pq

请添加图片描述
投影运算
对关系R进行投影运算的结果记为Π_a®.定义为:Π_a®={t[A]|t\inR}

请添加图片描述
选择运算
找出满足给定条件的元组的操作称为选择,选择的条件以逻辑表达式给出,使逻辑表达式为真的元组将被选取
公式表达式为:\sigma_F®={t|t\in R且F(t)为真}。其中F表示选择条件,它是一个逻辑表达式,逻辑表达式F由逻辑运算符或且非,连接各算术表达式组成

请添加图片描述
除运算
可以近似堪称笛卡尔积运算的逆运算。当s*t=r时,则必有R/S=T.T称为R除以S的值

请添加图片描述
连接运算
连接运算也称\theta连接,从两个关系的笛卡尔积中选择满足给定属性间一定条件的元组
连接运算从关系R和关系S的笛卡尔积运算中,找出关系R在属性组A上的值与关系S在属性B上的值满足\theta关系的所有元组
在实际运用中,最常用的连接时自然连接,即\theta恒为=

请添加图片描述
请添加图片描述
请添加图片描述

4.软件工程基础

请添加图片描述

软件定义与软件特点
    计算机软件是有程序、数据及相关文档构成的完整集合,它与计算机硬件一起组成计算机系统。程序和数据是及其可执行的,文档是机器不可执行的
    特点:
        软件是一种逻辑实体,具有抽象性
        软件没有明显的制作过程
        软件在使用期间不存在磨损、老化问题
        软件对硬件和环境具有依赖性
        软件复杂性高、成本高
        软件开发设计诸多社会因素


软件的分类
    系统软件
        管理计算机的资源、提高计算机的使用效率、为用户提供各种服务的软件
        如、操作系统(OS)、数据库管理系统(DBMS)、编译程序、汇编程序及网络软件等

    应用软件
        为了应用于特定的领域而开发的软件
        如、办公软件、即时通信、杀毒软件、财务管理系统软件

    支撑软件
        介于系统软件和应用软件之间,协助用户开发软件的工具软件
        包括帮助程序人员开发和维护软甲产品的工具软件,也包括邦族管理人员控制开发进程和项目管理的工具软件


软件工程
    是试图用工程、科学及数学的原理与方法研制、维护计算机软件的有关技术和管理方法,是应用于计算机软件的定义、开发及维护的一整套方法、工具、文档、实践标准及工序。
    包含三个要素:方法、工具及过程
    抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性及可验证性是软件工程的原则

软件过程
    把输入转换为输出的一组彼此相关的资源和活动。为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程所进行的基本活动主要有软件规格说明、软件开发或软件设计与实现、软件确认、软件演进

软件生命周期
    软件开发应遵循软件生命周期。通常把软件产品从问题定义、可行性研究、需求分析、概要设计、详细设计、实现、测试到使用、维护和退役的过程称为软件周期,分为3个时期,共8个阶段
        问题定义:确定要解决的问题是什么
        可行性研究:对待开发软件提出的需求进行分析并给出详细定义
        软件设计:通常又分为概要设计和详细设计两个阶段,其目的是给出软件的结构、模块的划分、功能的分配以及处理流程等。软件设计阶段提交评审的文档有概要设计说明书、详细设计说明书及测试计划初稿
        实现:在软件设计的基础上编写程序。该阶段完成的文档有用户手册,操作手册等面向用户的文档,以及为下一阶段编写的单元测试计划
        测试:在设计测试用例的基础上,检验软件的各个组成部分。编写测试分析报告
        使用和维护:将已交付的软甲投入运行,同时不断地维护,进行必要而且可行的扩充和删改

需求分析及其方法
需求分析
相关概念
是发现需求、求精、建模及定义需求的过程。需求分析将创建所需的数据模型、功能模型及控制模型
需求分析阶段共工作可以分为4个方面:需求获取、需求分析、编写需求规格说明书及需求评审

    需求规格说明书
        是需求分析阶段的最后成果,应重点描述软件的目标,如软件的功能需求、性能需求、外部接口、属性及约束条件等
        特点:正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性、可追踪性

    需求分析方法
        可以分为结构化分析方法和面向对象分析方法两发类
            结构化分析方法
                主要包括:面向数据流结构化分析方法、面向数据结构的Jackson系统开发方法及面向数据结构的结构化数据系统开发方法

            面向对象分析方法
                面向对象软件工程方法的第1个环节,包括概念原则、过程步骤、表示方法、提交文档等规范要求


        另外,从需求分析建模的特性来划分,需求分析方法还可以分为静态分析方法和动态分析方法


结构化分析方法常用工具
    使用数据流图、数据字典、结构化英语、判定表及判定树等工具建立一种新的、被称为结构化规格说明的目标文档。常用的工具是数据流图(DFD)
        作用:支持软件系统功能建模
        数据流图上的每个元素都必须被命名
        对加工处理建立唯一、层次性的编号,兵器而每个加工处理通常要求既有输入,又有输出
        数据存储之间不应有数据流
        数据流图的一致性
        父图、子图关系与平衡规则:子图个数不大于父图中的处理个数

请添加图片描述
软件设计及其方法
软件设计的基本概念
基本目标是用比较抽象、概括的方式确定目标系统如何完成预定的任务。软件设计是确定系统的物理模型
是开发阶段最重要的步骤之一;从管理角度看,软件设计可分为两步:概要设计和详细设计,从技术方面看分为4个步骤:结构设计、数据设计、接口设计、过程设计
将软件按功能分解为组成模块,是概要设计的主要任务。模块的独立性可以由两个定性标准度量:耦合性和内聚性
耦合性衡量不同模块彼此间相互依赖(连接)的紧密程度
内聚性衡量一个模块内部各个元素彼此结合的紧密程度

    模块的内聚性越高,模块的耦合性就越低,可见,模块的耦合性和内聚性是相互关联的。因此,好的软件设计,应尽量做到高内聚、低耦合

概要设计
    任务
        又称为总体设计,软件概要设计的基本任务
            设计软件系统结构
            设计数据结构和数据库
            编写概要设计文档:概要设计阶段的文档由概要设计说明书、数据库设计说明书及继承测试计划等
            评审概要设计文档


    结构图
        在概要设计中,常用的软件结构设计工具是结构图(SC),也称为程序结构图,反映了整个系统功能实现以及模块之间的联系
        软件结构图是一种层次化的表示,它指出了软件各个模块之间的联系
        好的软件设计结构通常顶层扇出多,中间较低扇出,底层扇入多

    详细设计
        任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节
        常用的有:程序流程图(PFD)、N-S图、问题分析图(PAD)、HIPO图、判定表、过程设计语言(PDL)

请添加图片描述
请添加图片描述
请添加图片描述

软件测试

目的和准则
    目的是在软件投入运行之前,尽可能多地发现软件中的错误。保证软件质量、可靠性的关键步骤。它是对软件规格说明、设计和编码的最后复审
    准则
        所有测试都应追溯到用户需求
        在测试之前指定测试计划,并严格执行
        充分注意测试中的群集现象
        避免由程序的编写者测试自己的程序
        不可能进行穷举测试
        妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便


软件测试方法
    根据软件是否需要被执行,可以分为静态测试和动态测试;如果根据功能划分,可以分为白盒测试和黑盒测试
    静态和动态
        静态测试
            包括代码检查、静态结构分析、代码质量度量等,其中代码检查分为代码审查,代码走查,桌面检查、静态分析等具体形式,静态测试不实际运行软甲,主要通过人工进行分析

        动态测试
            通常所说的上机测试,通过运行软件来检验软件中的动态行为和运行结果的正确性
            关键是设计高效、合理的测试用例。测试用例就是测试设计的数据,由测试输入数据和预期的输出结果两部分组成


    白盒和黑盒
        白盒测试
            假设程序装在一只透明的白盒子里,测试者完全了解程序的结构和处理过程。它根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作
            主要技术由逻辑覆盖测试、基本路径测试等,其中逻辑覆盖测试又分为语句覆盖、路径覆盖、判定覆盖、条件覆盖及判断-条件覆盖

        黑盒测试
            又称为功能测试或数据却动测试,着重测试软件功能
            程序装在一个黑盒子里,测试者完全不了解或不考虑程序的结构和处理过程;检查程序的功能是否符合规格说明书的要求
            常用的技术有:等价类划分法、边界值分析法、错误推测法及因果图等



软件测试的实施
    单元测试
        也成为模块测试;是软件设计的最小单位,单元测试是对模块的正确性进行检验,以尽早发现各模块内部可能存在的各种错误
        单月测试的依据除了源程序以外,还有详细设计说明书
        可以采用静态测试或动态测试,动态测试通常以白盒测试为主,测试程序的结构;以黑盒测试为辅,测试程序的功能

    集成测试
        也称组装测试,是对各模块按照设计要求组装成的程序进行测试,主要目的是发现与接口有关的错误(系统测试与此类似)
        集成测试主要发现设计阶段产生的错误。集成测试的依据是概要设计说明书,通常采用黑盒测试。
        集成可以分为非增量方式(一次性组装方式)集成和增量方式集成两种。增量方式包括自顶向下、自底向上,以及自顶向下和自底向上相结合的混合增量方式

    确认测试
        也称验收测试,其任务是检查软件的功能、性能及其他特征是否与用户的需求一致,确认测试通常采用黑盒测试

    系统测试
        把软件系统整体作为一个元素,与计算机硬件、支持的软件、数据、人员及其他计算机系统的元素组合在一起

程序调试

基本概念
    调式(debug),也成为排错,是在成功测试之后出现的步骤,也就是说,调试是在测试发现错误之后排除错误的过程,任务是诊断和改正程序中的错误
    程序调试有两部分组成
        根据错误的迹象确定程序中错误的确切性质、原因和位置
        对程序进行修改,改正这个错误


调试方法
    从是否跟踪和执行程序的角度,调试分为静态调试和动态调试。静态调试是主要的调试手段,是指通过人的思维来分析源程序的代码和排错。而动态调试是静态测试的辅助手段,主要调试方法有强行排错法、回溯法、原因排除法
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白一尼克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值