软件设计师——Week 1

2018-09-12  Wednesday:

Chapter1:  计算机网络概论

1.1 计算机系统基础知识

1.1.1、计算机的硬件组成:运算器、控制器、存储器、输入设备、输出设备

         运算器和控制器--CPU(Central Processing Unit)

1.1.2、中央处理单元

     CPU的功能、CPU的组成、多核CPU(多线程、多进程问题)

1.1.3 数据的表示   

    (1)机器的编码方式称为码制:原码、反码、补码、移码

    (2)定点数和浮点数:定点数表示小数点位置不变(分两种情况)、浮点数相反

 1.1.4 校验码

     校验码分为两种 :合法编码 和 错误编码   

    码距:表示一个编码系统中任意两个合法编码之间至少有多少个二进制位不同

  (1)奇偶校验码:水平、垂直、水平垂直 校验码

  (2)海明码:

  (3)循环冗余校验码

1.2 计算机体系结构

1.2.1 体系结构的发展

  (1)体系概述和计算机体系结构的分类

  (2) 指令系统

  (3) 阵列处理及、并行处理和多处理机

1.2.2 存储系统

(1)结构层次:计算机系统中可能包括各种存储器,各种地位是不同的,报错CPU通用寄存、CPU中额Cache高速缓存等等

(2)存储器分类:按位置分类、按材料分类、按工作方式分类、按访问方式分类

(3)相联存储器:按内容访问的存储器,工作原理就是把数据或数据的某一部分作为关键字,按照顺序写入信息。

(4) 高速缓存:高速缓存用于存放当前最活跃的程序和数据,位于CPU和主存之间

                   其中有三种地址映像的方式:直接映像、全相联映像、组相联映像

(5)虚拟存储器:主存单元的地址称为物理地址、现代系统提供的是一种对贮存的抽象,称为虚拟存储,使用虚拟地址的概念来访问主存,使用专门的MMU将虚拟地址转化为物理地址后访问主存。

(6)外存储器

(7)磁盘阵列技术

(9)存储域网络

1.2.3 输入/输出技术

(1)微型计算机中常用的编址方法:内存与接口独立的编址方法        内存与接口地址统一的编址方法

(2)直接程序控制:无条件传送(外设无条件的接收来自CPU传来的数据,同时也能无条件的向CPU发送数据)

           程序查询方式:CPU通过执行程序来查询外设转台来确定外设是否满足了接收数据的条件,CPU针对性服务

(3)中断方式:中断处理方法:多中断信号线法、中断软件查询法、菊花链法、总线仲裁法、中断向量表法

                       注意中断优先级的控制,CPU应当优先响应响应优先级高的中断源

(4)直接存储器存取方式:数据在内存与I/O设备间进行直接的块传送,从而不需要CPU的干涉,只需要CPU在过程开始的收启动。实际的操作就直接由DMA硬件直接完成

(5)输入/输出处理及(IOP):上面的方案,适合输入输出方式适合于外设不多或者速度不高的微型机中。

1.2.4 总线结构

计算机系统以总线的方式进行互相连接,以便于部件和设备的扩充

(1)总线:内部总线、系统总线、外部总线 

2018-09-13 Thursday:

1.3 安全性、可靠性与系统性能评测基础知识

1.3.1 计算机安全概述

(1)信息安全的5个基本要素为:机密性、完整性、可用性、可控性、可审查性

(2)计算机的安全的等级

(3)安全威胁、

(4) 影响安全的因素:内部因素     外部因素

1.3.2 加密技术和认证技术

(1)加密技术

    加密技术是最常用的安全保密手段,数据加密的过程简单来说就是对原来为铭文的文件或数据按照某种加密算法处理后,使之称为不可读取的代码, 通常称为“密文”    

   密文通常在输入了对应的密钥之后才能正常显示原来的内容,  数据加密和解密是逆过程

 (2)加密技术方法:对称加密技术、非对称加密技术 

(3)认证技术

 

1.3.3. 计算机可靠性

计算机系统的硬件故障通常是由元器件的失效引起的。

(1)计算机可靠性的数学模型

串联系统、并联系统、N模冗余系统

(2)性能评鉴方法

时钟频率,指令执行速度、等效指令速度法、数据处理速率、核心程序法

(3)基准测试程序

测试性能的基准程序:整数测试程序、浮点测试程序、 SPEC基准程序、TPC基准程序

Chapter2:  程序设计语言基础知识

2.1程序设计语言概述

2.1.1.程序设计语言的基本概念

1、低级语言:机器语言、汇编语言   高级语言:Java、C、C++、PHP、Python

2、高级语言到机器语言之间的处理叫做语言处理程序,编译程序和解释程序

  解释程序:也称作解释器。它或直接执行源程序,或者将源程序翻译成某种中间代码然后再加以执行。

  编译程序:编译器,将源程序翻译成目标语言程序后,然后在计算机上执行目标程序。

 3、程序语言的定义与分类

2.1.2 程序语言的基本成分

1、数据成分:常量和变量、全局量、数据类型

2、运算成分:算术、关系、逻辑运算等等

3、控制成分:顺序结构、选择结构、循环结构

4、传输成分:赋值、数据的I/O

5、函数:函数声明、定义、调用    函数的传值、传址

2.2 语言处理程序基础

 一类系统软件的总称,其主要的作用:将高级语言或者汇编语言编写的程序翻译成某种机器语言程序

分成三种:汇编程序、编译程序、解释程序

2.2.1 汇编程序原理

1、汇编语言:面向机器的符号化程序设计语言。包含:指令语句、伪指令语句、宏指令语句

(1)指令语句:机器指令语句

(2)伪指令语句:伪指令指示汇编程序在汇编源程序时完成的某些工作。伪指令时在源程序汇编的时候时候完成的,而指令语句的操作是在程序运行时完成。

(3)宏指令语句:将用户多次使用程序段定义为宏,这样可以方便用户的调用。宏指令语句  就是  宏的引用

2、汇编程序

汇编程序的功能是将汇编语言写的源程序翻译成机器指令程序。至少需要两次扫面源程序才嗯那个翻译工作。

2.2.2 编译程序的基本原理

1、编译过程概述

2、文法和语言的形式表述

3、词法分析

4、正规式和有限自动机之间的转换

5、词法分析器的构造

6、语法分析

7、语法制导翻译和中间代码的生成

8、中间代码的优化和目标代码的生成

2.2.3 解释程序基本原理

解释程序,在词法、语法、和语义分析与编译程序的工作原理基本相同。不同的是:它在运行用户查询的时候,直接执行源程序或源程序的中间表示形式。因此,解释程序不差生源程序的目标程序,这也就是它和编译程序的主要区别。

1、解释性程序的基本结构

两部分组成:分析部分、解释部分

2、高级语言编译与解释方式的比较

(1)效率:编译方式可能取得更高的效率

(2)灵活性:解释性程序需要反复简答程序,这使得解释方式能够比编译的方式更灵活

(3)可移植性:解释器一般也是由某种程序设计语言编写,因此,只需要对解释器进行重新的编译,就可以使解释器运行都在不同的环境中。

Chaper3 操作系统知识

3.1 操作系统基础知识

软件丰富,大致分为:系统软件、应用软件

3.1.1 操作系统的定义与作用

硬件资源:中央处理机,存储器、输入和输出设备

软件资源:以文件形式保存在存储器上的程序和数据等信息

操作系统的重要的作用:通过资源管理提高计算机系统的效率、改善人机界面向用户提供友好的工作环境。

3.1.2 操作系统的特征和功能

 特征:并发行、共享性、虚拟性、不确定性

功能:处理机管理、文件管理、存储管理、设备管理、作业管理

3.1.3 操作系统的发展及分类

1、操作系统的发展

2、操作系统的分类

(1)批处理操作系统:单道批处理和多道批处理

(2)分时操作系统:将CPU的工作时间划分为很短的时间片轮流为终端用户服务

(3)实时操作系统:对交互能力不高,分为实时控制系统和信息处理系统,其分时系统更加通用,而实时操作系统是一般的专用的系统

(4)分布式操作系统:多个分散的计算机经过连接形成的计算机系统

(5)微机操作系统

(6)嵌入式操作系统

3.2 处理机管理

也称作进程管理,在多道程序批处理系统和分时系统中由多个并发执行的程序。为了描述系统中程序执行时动态变化的过程,引入了进程。

3.2.1 基本概念

1、程序与进程:程序的执行分为两种特征:
   顺序执行:顺序性、封闭性、可再现性

   并发执行:失去程序封闭性、程序和机器的执行程序的活动不再一一对应、并发程序间的相互制约性

2、进程的组成

  进程是程序的一次执行,可以和其他程序并发执行,   由  程序、数据、进程控制块(PCB)组成 

3、进程的状态及其状态间的切换

(1)三态模型

(2)五态模型

3.2.2 进程的控制

进程的控制就是对系统中的所有进程从创建到消亡的全过程实施有效的控制。

原语:是指若干条机器指令组成的,用于完成特定功能的程序段,原语的特点是在执行时不能被分割,也就是原子操作

3.2.3 进程间的通信

存在资源共享和互相合作的问题,进程通信是指各个进程交换信息的过程

1、同步和互斥

进程有相互信息的传递(同步),有对资源利用的进程(互斥)、临界区管理的原则

有空即进、无空则等、有限等待、让权等待

2、信号量机制

3、高级通信原语

PV操作的方式是属于低级通信方式,这样编程难度大、效率低  

高级通信的方式主要分为:共享存储模式、消息传递模式、管道通信

3.2.4 管程

1、引入:采用资源集中管理的方法,将系统中的资源用某种数据结构i抽象的表示出来。

2、管程的结构

3.2.5 进程调度

进程调度的方式是当有更高优先级的进程到来的时候如何分配CPU,调度方式分为可剥夺 和 不可剥夺 

1、三级调度:高级调度、中级调度、低级调度

2、调度算法:FCFS、时间片轮转、优先级调度、多级反馈队列算法

3、进程优先级的确定需要考虑不同的进程

3.2.6 死锁

预防死锁:预先静态分配法、资源有序分配法

通过系统定时的运行一个死锁检测程序。来检测死锁

死锁接触:资源剥夺法、撤销进程法

3.2.7 线程

(1)传统的进程有两个基本属性:可拥有资源的独立单元、可独立调度和分配的基本单位。

(2)在进程切换的时候,会造成较大的时空开销,这也就限制了并发程序的提高

(3)引入线程后,将这两个基本属性分开,我们可以通,将线程作为调度和分配的基本单位

(4)线程是进程中的一个实体,利用的是进程中的资源

(5)线程同样具有就绪、运行、阻塞三种基本状态    

(6) 线程分为用户级线程(不依赖于内核)和内核级线程(依赖于内核)

2018-09-14  Friday:

3.3 存储管理

  存储管理的对象是主存,也就是内存

3.3.1 基本概念

1、存储器的结构

(1)虚拟地址:并不是主存中的真实地址,实际上是一个相对的地址、程序地址、逻辑地址

(2)地址控件:把程序中由符号名组成的空间称为名空间。相对地址空间再定位到绝对地址空间,绝对地址空间也称为物理地址空间

(3)存储空间:

2、地址重定位

静态重定位:是指再程序装入主存时,就已经完成了逻辑地址到物理地址的变换,并且再程序执行期间不再发生改变

动态重定位:在程序运行的器件完成逻辑地址向物理地址的变换

3.3.2 存储管理方案

分区存储管理、分页存储管理、分段存储管理‘段页式存储管理、虚拟存储管理

1、分区存储管理:

(1)固定分区:静态的方式,系统生成的时候就把主存分成若干个分区。

(2)可变分区:动态分区,当作业装入的时候就进行,故而分区的个数是可变的。

   使用的算法:最佳适应算法、最差适应算法、首次适应算法、循环适应算法

(3)可重定位分区:可重定位是解决碎片问题的主要方式,当内存中没有足够的空间满足一个作业进入或者执行的时候,大家互相“靠拢” ,这也就是,相互间隔的地址,后面的程序使用的要整体向上移动。这也就导致了程序的绝对地址会发生响应的变化,所以 我们就存在了地址的重定位的问题

2、分区保护

分区保护的目的是未经过核准的用户访问分区,方式有以下两种:

(1)采用上界/下界寄存器保护

(2)采用基址/限长寄存器保护

3.3.3 分页存储管理

分区解决方案是多道程序共享主存的解决方案,但是其必须装入连续的地址当中去

1、纯分页存储管理

(1)分页原理

将进程的地址划分成若干大小相等的区域,我们称为页。

将主存空间划分成和页相同大小的若干物理快,我们称为块

在进行进程分配主存的时候,我们就可以将进程中的若干页分别装入不相邻的块中

(2)地址结构

(3)页表

页表映射了每个页面对应的物理块

页表的作用,是实现从页号到物理地址的映射

2、快表

在地址映射机构中增加一个小容量的联想存储器,联想存储器由一组告诉存储器组成,称之为快表。

其中存放当前进程最活跃的少数几页物理块号,因此,用户要访问数据的时候,就会根据该数据所在的逻辑页号在联想存储器中找到对应的物理块号

3、两级页表机制

3.3.4 分段存储管理

在分段存储管理的方式中:作业的地址控件被划分为若干段,每个段都是一个完成逻辑信息

同样,我们也可以建立段表

3.3.5 段页式存储管理

其汲取了分页和分段的各自的优点

3.3.6 虚拟存储管理

每个作业必须有足够的空间才能装入所有的信息,但是,如果有的作业,我们可以只存入部分作业,其他的先放在磁盘上,需要的时候,我们再放到主存当中去,这样就可以有效的利用主存空间

1、程序局部性原理:程序自身设计的问题,通常的循环操作和顺序操作,会各自经常的执行,

2、虚拟存储器的实现:

3、请求分页管理的实现:

4、页面置换算法:

5、工作集:

猜你喜欢

转载自blog.csdn.net/weixin_42066185/article/details/82684258