软考——存储管理+编译和解释

存储管理

假设磁盘上每个磁道划分成9个物理块,每块存放1个逻辑记录。逻辑记录R0,R1,…,R8存放在同一个磁道上。假定磁盘旋转一圈的时间为27ms,磁头当前处在R0的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为3ms,则处理这9个记录的最长时间为(1);若对信息存储进行优化分布后,处理9个记录的最少时间为(2)。
在这里插入图片描述

(1)因为系统使用的是单缓冲区,且顺序处理9个记录,每个记录处理时间为3ms,加上读写时间,总的时间就超过3ms了。而磁盘旋转一圈的时间为27ms,也就是说,当系统读取第0个记录后,正在处理的过程中,磁盘已经旋过了第1个记录。那么,要读取第1个记录,就需要磁盘再次旋转到第1个记录(即磁盘旋转1圈后,27+3=30ms)。同理,要读取第2个记录时,也需要等30ms。这样,要读取后面8个记录,需要8×30=240ms,同时加上处理第0个记录的时间(3ms)和处理第8个记录的时间(3ms),共需246ms。
(2)要想节约时间,可以把记录错开存放,如表1-8所示。这样,就可以在磁盘旋转2圈内完成所有记录的处理,时间为54ms。要注意的是,最后处理的记录R8不是最后一个磁盘块,所以不需要旋转到最后1个物理块。也就是说,第2圈的旋转时间只需要24ms就到达R8了。但是,因为要加上R8的处理时间3ms,所以,总时间仍然为54ms。
(1)因为在同一个磁道上,所以处理完记录的时间=处理时间+旋转延迟时间。
要想处理这9个记录的时间最长,则应该先处理R9,磁头从R1旋转到R9的时间为27-27×(1/9)=24ms,然后处理R9记录的时间为3ms,再处理R8、R7、 R6、R5、R4、R3、R2、R1,则处理完9个记录的最长时间为9×(24+3)=246ms。
(2)对信息存储进行优化分布后,要想使处理9个记录的时间最少,则应该先处理 R1,需要3ms,由于系统使用单缓冲区,当缓冲区内容处理完时才能再存放新的记录,这样存放新的记录需要时间,磁头不能直接取R2,继续旋转,3ms后可直接处理R3,同理,接下来处理R5,R7,R9,R2,R4,R6,R8,共需时间为9× (3+3)=54ms。

老子软考中的答案是222ms 有问题

编译和解释

高级语言程序的两种处理方式——编译和解释

  • 编译程序的功能就是把高级语言书写的源程序翻译成与之等价的目标程序(汇编语言或机器语言)。

  • 解释程序是另一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行时直接执行源程序或源程序的内部形式,即解释程序不产生源程序的目标程序,这点是它与编译程序的主要区别。
    解释程序通常可以分为两部分:

      第一部分是分析部分,包括通常的词法分析、语法分析和语义分析程序,经语义分析后把源程序翻译成中间代码,中间代码常用逆波兰式表示。
    
      第二部分是解释部分,用来对第一部分产生的中间代码进行解释执行。
    

编译与解释的区别

  1. 编译和解释是语言处理的两种基本方式。编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段,以及符号表管理和出错处理模块。解释过程在词法、语法和语义分析方面与编译程序的工作原理基本相同,但是在运行用户程序时,它直接执行源程序或源程序的内部形式。

  2. 这两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值