某压力测试的线性处理程序如下,如AD转换器输出为02H,问执行程序后(A)=?

某压力测试的线性处理程序如下,如AD转换器输出为02H,问执行程序后(A)=?,第1张

a = 0

b = 7

解析:

a = p1 == &m;根据运算符优先级,先运算 p1 == &m,条件为假,返回值为0,a为int型,转换为int即a = 0

b= (*p1)/(*p2) + 7;直接按指针目标,就是k/m +7结果是7.66,b为int类型,转换时舍去小数,结果为7。

用中断的目的,就是要在A/D转换时段内做其他 *** 作,不让其它可利用资源空等。这就需要程序里有个类似 *** 作系统作业调度的守护进程

这个守护进程维护的是个全局状态机,守护进程持续监测状态机状态,状态一旦具备进入下一个状态的条件,守护进程就会根据系统占用情况,决定是否发起到预定状态的新进程,或者送到某个有管理的批处理队列里。

扩展资料:

Σ-Δ型AD由积分器、比较器、1位DA转换器和数字滤波器等组成。原理上近似于积分型,将输入电压转换成时间(脉冲宽度)信号,用数字滤波器处理后得到数字值。电路的数字部分基本上容易单片化,因此容易做到高分辨率。主要用于音频和测量。

电压输出型DA转换器虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低阻抗输出。直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常作为高速DA转换器使用。

参考资料来源:百度百科-转换器

13.两个并发执行的进程A和B的程序如下:

进程A

Repeat

N:=N+5

Until false

进程B

Repeat

打印N的值

N:0

Until false

其中,N为整数,初值为4.若进程A先执行了三个循环后,进程A和进程B又并发执行了一个循环,写出可能出现的打印值.正确的打印值应该是多少?请用P、V *** 作进行管理,使进程A和B并发执行时不会出现与时间有关的错误.

答:因为N初值为4,若进程A先执行了三个循环,此时N的值为19。

当进程A和进程B并发执行时可能有两种执行次序

如果是先B后A,则打印19

前面那个N中的值为0,后面为5

这是错误的,即发生了与时间有关的错误。

用P、V *** 作进行管理,使进程A和B并发时不会出现与时间有关的错误的程序如下:(S为互斥信号量,初值为1),

进程A

Repeat

P(S)

N=N+5

V(S)

Until false

进程B

Repeat

P(S)

打印N的值;

N=0;

V(S)

Until false

15.有3个并发进程R、M、P,它们共享一个缓冲器B。进程R负责从输入设备读信息,每读出一个记录后把它存放在缓冲器B中,进程M在缓冲器B中加工进程R存入的记录,进程P把加工后的记录打印输出。缓冲器B中每次只能存放一个记录,当记录被加工输出后,缓冲器B中又可存放一个新记录。请用P、V *** 作为同步机制写出它们并发执行时能正确工作的程序。

答:三个进程共用一个缓冲区,他们必须同步工作,可定义三个信号量:

S1:表示是否可把读人的记录放到缓冲区,初始值为1.

S2:表示是否可对缓冲区中的记录加工,初始值为0.

S3:表示记录是否加工好,可以输出,初始值也为0.

三个进程可如下设计:

begin

S1,S2,S3:semaphore;

S1:=l;S2:=S3:=0;

cobegin

process R

begin

L1:读记录;

P(S1);

记录存入缓冲区;

V(S2);

goto L1;

end;

process M

begin

L2:P(S2);

加工记录;

V(S3);

goto L2;

end;

process P

begin

L3:P(S3);

输出加工后的记录;

V(S1);

goto L3;

end;

coend;

end.

这个好像跟 编译器有关吧 。

c = a++ &&(b=1)

如果 是 从左向右的话 只要 a++ 的值 为假 后面的 b = 1 就不用执行了

反之 则就不一样了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11182077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存