软件评测师笔记四 操作系统

编译原理

高级语言源程序中的错误分为两类:语法错误和语义错误,其中语义错误可分为静态语义和动态语义错误

语法错误:语言结构上的错误

静态语义错误:编译时能发现的程序含义上的错误

动态语义错误:只有程序运行时才能表现出来

程序编译过程

过程:词法分析、语法分析、语义分析

  • 词法分析:从左到右逐字符读入源程序
  • 语法分析:基于词法分析,如"程序”、“语句”、“表达式"等语法单位
  • 语义分析:为代码生成阶段收集类型信息,常见错误有死循环和除数为0 **词法错误、语法错误、静态语义错误都可在编译程序时检查出 **编译过程,词法分析、语法分析、语义分析、目标代码生成是必须的,代码优化和中间代码生成不是必须

存储器分类

访问方式可分为

  • 按地址访问的存储器
  • 按内容访问的存储器:相联存储器,把数据或数据一部分作为关键字 寻址方式可分为
  • 随机存储器(RAM):可对任何存储单元存入或读取数据,访问任何一个存储单元所需时间是相同的
  • 顺序存储器(SAM):访问数据所需时间与数据所在存储位置相关,磁带是典型的顺序存储器
  • 直接存储器(DAM):介于RAM和SAM之间,磁盘是一种直接存储器,它对磁道的寻址是随机的,而在一个磁道内,则是顺序寻址

虚拟存储器

包含主存、辅存 基本思路:先进入辅存,再进入主存

寻址方式

  • 立即寻址:直接指出操作数本身
  • 直接寻址:直接指出操作数地址
  • 间接寻址:给出存放操作数地址的主存单元的地址
  • 寄存器寻址:指定的寄存器中存放着操作数
  • 隐含寻址:在指令中隐含着操作数的地址

总线系统

  • 三总线结构:地址总线、数据总线、控制总线
  • 数据总线:传输数据信息,CPU传输数据的总线带宽
  • 控制总线:传送控制信号和时序信号,如读/写
  • 地址总线:传送地址,寻址空间

CPU

CPU其他部件

  • 指令寄存器 IR 保存当前正在执行的一条指令,位数取决于指令字长
  • 数据寄存器MDR:保存操作数和运算结果信息
  • 地址寄存器 AR 保存当前CPU所访问的内存单元的地址
  • 累加寄存器AC:专门存放算术或逻辑运算的操作数和运算结果的寄存器
  • 算术逻辑单元ALU:CPU执行单元,主要负责运算工作,包含加法器
  • 程序计数器 PC 保存待执行指令的地址,程序猿应该要能控制其所编写程序的执行过程,这需要利用程序计数器来实现,因为程序猿能访问的是程序计数器 运算器组成

算术逻辑单元ALU、累加寄存器、数据缓冲寄存器和状态条件寄存器 控制器组成

程序计数器PC、指令寄存器IR、地址寄存器AR、指令译码器ID、时序部件 作用:保证指令的正确执行,处理异常事件

指令集计算机

  • CISC:复杂指令集计算机
  • RISC:精简指令集计算机 RISC优势: 1、包含频率高但不负责指令 2、更多寄存器 3、指令长度固定 4、不用微程序控制技术 5、采用流水技术 6、只有存取指令访问主存

周期

指令周期:取出并执行一条指令的时间

总线周期:也就是一个访存储器或I/O端口操作所用的时间

时钟周期:又称震荡周期,是处理操作的最基本单位

机器周期:完成一个基本操作的时间单元,如取指周期、取数周期 **一个指令周期由若干个总线周期组成,而一个总线周期时间又包含若干个时钟周期 **一个总线周期包含一个(只有取址周期)或多个机器周期(CPU响应DMA请求是在总线周期)

防火墙

功能 1、包过滤 2、审计和报警过程,记录访问过程 3、代理 4、流量控制 防护墙不能过滤的是

存在安全威胁的URL地址(属于应用层数据) 防火墙能过滤的是

源和目的IP、IP协议号、源和目的端口 防火墙功能不包含

不提供漏洞扫描功能

不同的管理程序

  • 字处理程序:用于文字
  • 设备驱动程序:使计算机和设备通信的程序,控制硬件设备
  • 语言翻译程序:编译程序、解释程序
  • 文件目录和目录项:组织和管理外存信息

DMA

数据在内存与I/O设备间的成块传送,不需要CPU的任何干涉,只需要DMA硬件完成

中断向量

中断服务程序的入口地址。

编译和解释区别

是否生成目标程序文件,解释

cache系统

由硬件实现并完成

原文创作:小菠萝测试笔记

原文链接:https://www.cnblogs.com/poloyy/p/12171078.html

文章列表

更多推荐

更多
  • Java测试驱动开发-十二、通过实现连续交付利用 TDD 案例研究可怕的赌博公司,探索代码库,释放程序,部署到生产环境,增加测试覆盖率,结论,可能的改进,实施持续集成,走向持续交付,詹金斯装置,自动化构建,第一次执行,下一步是什么?,这仅仅是开始,这不一定是结束, “没有什么比结果更能说
  • Java测试驱动开发-一、为什么我应该关心测试驱动的开发? 为什么是 TDD?,理解 TDD,红绿重构,速度是关键,这与测试无关,测试,黑盒测试,白盒试验,质量检查和质量保证之间的区别,更好的测试,嘲笑,可执行文件,无调试, 这本书是由开发人员为开发人员编写的。因此,大部分学习将通过代码进
  • Java测试驱动开发-十一、把它们放在一起 简而言之,TDD,最佳做法,命名约定,过程,开发实践,工具, “如果你总是做你一直做的事,那么你将永远得到你一直得到的。”——阿尔伯特·爱因斯坦我们经历了大量的理论和更多的实践。整个旅程就像一列高速行驶的火车,我们几乎没有
  • Java测试驱动开发-零、前言 这本书是给谁的,充分利用这本书,下载示例代码文件,下载彩色图像,使用的惯例, 测试驱动开发已经有一段时间了,很多人还没有采用它。这背后的原因是 TDD 很难掌握。尽管这个理论很容易掌握,但要真正精通它需要大量的实践。本书的作者多年
  • Java测试驱动开发-四、单元测试—关注你做了什么,而不是已经做了什么 单元测试什么是单元测试?,为什么要进行单元测试?,代码重构,为什么不专门使用单元测试呢?,用 TDD 进行单元测试,TestNG,TestNG 与 JUnit 摘要,遥控船舶要求,遥控船舶的研制,项目设置,助手类,需求–起点和方向,规格
  • Java测试驱动开发-五、设计—如果它不可测试,那么它就设计得不好 我们为什么要关心设计?,设计原则,你不会需要它的,不要重复你自己,保持简单和直接,奥卡姆剃刀,坚实的原则,连接 4,要求,测试 Connect 4 的最后一个实现,要求 1–游戏的棋盘,要求 2–介绍光盘,要求 3–球员轮换,要求 4–
  • Java测试驱动开发-二、工具、框架和环境 吉特,虚拟机,Vagrant,Docker,构建工具,综合发展环境,创意演示项目,单元测试框架,朱尼特,TestNG,Hamcrest 和 AssertJ,汉克雷斯特,资产,代码覆盖工具,杰科科,模拟框架,Mockito,轻松的,模拟的
  • Java测试驱动开发-六、模拟—删除外部依赖项 嘲笑,为什么嘲笑?,术语,模拟对象,Mockito,Tic Tac Toe v2 要求,开发 TicTacToe v2,要求 1–门店移动,规范–数据库名称,实施,规范–Mongo 集合的名称,实施,重构,规范–将项目添加到 Mongo
  • Java测试驱动开发-九、重构遗留代码—使其再次年轻 遗留代码,遗留代码示例,识别遗留代码的其他方法,遗留代码更改算法,应用遗留代码更改算法,确定变化点,寻找测试点,打破依赖关系,写作测试,卡塔演习,卡塔遗产酒店,描述,技术意见,添加新功能,黑盒或峰值测试,初步调查,如何找到重构的候选对象
  • Java测试驱动开发-八、BDD—与整个团队合作 不同规格,文档,编码员的文档,非编码人员的文档,行为驱动开发,叙述,情节,书店 BDD 故事,杰伯哈夫,JBehave 转轮,未决步骤,Selenium 和 Selenide,JBehave 步骤,最终验证, “我不是一个优秀的程
  • 近期文章

    更多
    文章目录

      推荐作者

      更多