首页 > 其他分享 >软件测评笔记04--操作系统

软件测评笔记04--操作系统

时间:2024-05-11 15:31:44浏览次数:29  
标签:周期 04 测评 -- 语义 地址 寻址 指令 寄存器

编译原理

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

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

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

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

 

程序编译过程

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

  • 词法分析:从左到右逐字符读入源程序
  • 语法分析:基于词法分析,如“程序”、“语句”、“表达式”等语法单位
  • 语义分析:为代码生成阶段收集类型信息,常见错误有死循环和除数为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/category/1625646.html

标签:周期,04,测评,--,语义,地址,寻址,指令,寄存器
From: https://www.cnblogs.com/hc1hr2/p/15311110.html

相关文章

  • m基于FPGA的MPPT最大功率跟踪算法verilog实现,包含testbench
    1.算法仿真效果其中Vivado2019.2仿真结果如下:   使用matlab进行显示如下:   2.算法涉及理论知识概要       在太阳能光伏系统中,最大功率点跟踪(MaximumPowerPointTracking,MPPT)是提高能量转换效率的关键技术之一。爬山法(HillClimbingAlgorithm,HCA)......
  • 全双工与半双工技术解析及其应用场景
    随着信息技术的迅猛发展,通信系统的性能要求日益提高。在数据传输中,双工模式的选择对于提高系统效率、降低通信延迟具有重要意义。本文将对全双工和半双工两种双工模式进行详细解析,并探讨它们各自的优缺点及适用场景。一、全双工模式全双工模式允许数据在通信链路的两个方向上同......
  • 会话模式启动
    YARN的会话模式与独立集群略有不同,需要首先申请一个YARN会话(YARNSession)来启动Flink集群。1.后台启动yarn会话模式flink集群bin/yarn-session.sh-d-nmtest2.查看返回地址和yarnidyarn会自动分配集群随机一台主机和端口号JobManagerWebInterface:http://xxx1:38005fl......
  • 分块 学习笔记
    什么是分块分块,顾名思义是一种将数据分成多块,以实现一些功能的算法。分块算法实质上是一种是通过将数据分成多块后在每块上打标记以实现快速区间修改,区间查询的一种算法。其均摊时间复杂度为\(O(\sqrt{n})\)分块的具体操作分块voidcreate(){ t=sqrt(n); for(inti=1;i<......
  • TCP KEEPALIVE以获得更好的POSTGRESQL体验
    一、数据库连接断开的原因连接断开的可能原因有多种:1、数据库服务器崩溃如果服务器由于某种原因崩溃,要调查服务器是否存在问题,您应该首先查看PostgreSQL日志,看看是否可以找到匹配的崩溃报告。2、客户端放弃的连接如果客户端在没有正确关闭数据库连接的情况下退出,服务器在网......
  • 设置.md文件默认以typora打开而不是默认以vs code打开
    在Windows10/11中,你可以通过以下步骤来更改文件扩展名的默认打开程序:打开“设置”(可以通过开始菜单或使用Win+I快捷键)。点击“应用”选项。在左侧菜单中,点击“默认应用”。在右侧,找到“按文件类型指定默认应用”,并点击它。在下拉菜单中,找到“.md”,选择“Typora”。这将......
  • Git -- 修改git账号密码后,进行git提交时报错
    修改git账号密码后,进行git提交时报错$gitpushorigindevelopremote:HTTPBasic:Accessdeniedfatal:Authenticationfailedfor'http://xxx/web.git/'重新设置下git信息gitconfig--globaluser.name"yourname"gitconfig--globaluser.email"your......
  • cmd-parser - 一个非常简单好用的命令解析器+EmbedXrpc - 面向单片机的嵌入式小型RPC
    1、EmbedXrpc-面向单片机的嵌入式小型RPCEmbedXrpc类似于Google的gRPC,但是应用场景是单片机。RPC远程调用极大的方便了开发,使得不必关注于协议解析,数据的序列化和反序列化等繁琐的工作。项目主页: https://gitee.com/snikeguo/EmbedXrpcEmbedXrpc应用场景:单片机近距离Clie......
  • EasyLogger - 一款超轻量级、高性能的 C/C++ 日志库
    1、EasyLogger-一款超轻量级、高性能的C/C++日志库EasyLogger是一款超轻量级(ROM<1.6K,RAM<0.3K)、高性能的C/C++日志库,非常适合对资源敏感的软件项目,例如:IoT产品、可穿戴设备、智能家居等等。相比log4c、zlog这些知名的C/C++日志库,EasyLogger的功能更加简单,提供......
  • springboot使用log4j监控日志发送邮件
    实现log4j发送邮件功能大致流程:1、开启邮箱SMTP服务,获取SMTP登录密码2、引入javax.mail、javax.activation依赖3、配置log4j文件,指定邮件发送方和接收方以及发送方账号密码等4、重写SMTPAppender(不重写也能实现邮件发送功能)开启邮箱SMTP服务这里以qq邮......