Job03_C第3章作业
操作系统第3章参考答案
第3章作业参考答案1、高级调度的任务是:将外存上处于后备队列的作业调入内存,并为他们创建必要的进程与分配资源。
然后将进程插入就绪队列中。
高级调度主要涉及两个问题:(1)每次调度多少个作业进入内存,(2)怎样选择作业(怎样调度)。
低级调度的任务是:指决定就绪队列中哪些进程应获得处理机。
这是OS的核心调度,所有操作系统都必须有这种调度。
通常采用两方式—非强占方式与强占方式。
在一个OS中如何选择方式与调度算法,在很大程度上取决于OS的目标。
但总体而言可分为两类—面向用户与面向系统的原则面向用户的原则:主要考虑用户的需求,如周转时间、响应时间、截止时间、优先权原则。
面向系统的原则:主要考虑系统的需求,如系统的吞吐量、处理机利用率、各类资源的平均利用率等注(周转时间:周转时间是衡量批处理系统的调度算法的重要指标。
周转时间:指作业从提交开始到完成所需要的时间。
包括:作业在外存后备队列上等待调度的时间、进程在就绪队列上等待进程调度的时间、进程在CPU上的执行时间、进程等待I/O操作完成的时间。
•注意:我们所讲的周转时间是指系统的平均周转时间,而不是单个作业的周转时间。
•平均周转时间:T=(T1+T2+…Tn)/n。
•带权平均周转时间:•响应时间:响应时间是衡量分时系统的重要指标。
响应时间—从用户通过键盘提交一个请求开始,到屏幕上显示结果为止的这段时间。
包括:从键盘输入的请求信息到CPU的时间,CPU对请求的处理时间、以及信息回送到显示器的时间。
•截止时间:是评价实时系统的重要指标。
截止时间:是指某任务必须开始执行的最迟时间必须完成的最迟时间。
•优先权原则:在所有的OS中,都应有一定的优先权原则,--强占式调度。
系统的吞吐量:是衡量批处理系统的重要指标。
系统的吞吐量—单位时间内系统完成的作业数。
处理机利用率:这对大中型多用户系统很重要,因此CPU价格昂贵(特别是大型计算机),因此这也是衡量大型机与系统的重要指标。
操作系统第三版第三章习题答案
第三章处理机调与死锁102260010065 黄兰10计科3班P1145.试说明低级调度的主要功能答:(1)保存处理的现场信息。
在进程调度进行调度时,首先需要保存当前进程的处理机的现场信息,如程序计数器、多个通用寄存器中的内容等,将它们送入该进程的进程控制块(PCB)中的相应单位。
(2)按某种算法选取进程。
低级调度程序按某种算法如优先数算法、轮转法等,从就绪队列中选取一个进程,把它的状态改为运行状态,并准备把处理机分配给它。
(3)把处理器分配给进程。
由分派程序把处理器分配给进程。
此时需为选中的静态进程恢复处理机现场,即把选中进程的进程控制块内有关处理机现场的信息装入处理器相应的各个寄存器中,把处理器的控制权交给该进程,让它从取出的断点处开始运行。
P1159.何谓静态和动态优先级?确定静态优先级的依据是什么?答:(1)静态优先级定义:静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。
一般地,优先权是利用某一个整数来表示的,例如,0~7或0~255中的某一整数,又把该整数称为优先数,只是具体用法各异:有的系统用“0”表示优先权,当数值越大时,其优先权越低;而有的系统恰恰相反。
(2)动态优先级定义:动态优先权是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。
(3)确定优先级的依据:①进程类型。
②进程对资源的需要。
③用户要求。
10.试比较FCFS和SPF两种进程调度算法。
答:(1)相同点:两种调度算法都是既可用于作业调度,也可用于进程调度。
(2)不同点:FCFS调度算法每次调度都是从后备队列中选择一个或是多个最先进入该队列的作业,将他们调入内存,为他们分配资源,创建进程,然后插入到就绪队列中。
该算法有利于长作业/进程,不利于短作业/进程。
SPF调度算法每次调度都是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存中运行。
第3章参考答案(可编辑修改word版)
第三章操作系统一、选择题1-5 BCCAA 6-10 DDBCB 11-15 BCACD 16-20 BBADD 21-25 DDCBA 26-30 BBCDA 31-35 DDCDD 36-40 ACCDD 41-45 DABBD 46-50 DCBDC 51-55 BCDBC 56-60 BACAA 61-65 DCBBA 66-70 CABAD 71-75 DDADC 76-80 ABDCA 81-85 BBABC 86-90 BDCBD 91-95 CCADA 96-100 CDBAC 101-105 BCADD106-110 CDACC 111-115 ABDBB 116-120 ADDCB 121-125 DCADD126-130 BCDDB 131-135 ADBCD 136-140 DDBBA 141-145 BABAA 146-150 DDABB二、填空题三、判断题211-220 ××××√√××√√ 221-230 ×××√×××××√231-240 ××√√√√√×√×四、简答题3.241 怎样理解“由于计算机上装有操作系统,从而扩展了原计算机的功能”。
答:操作系统把硬件全部隐藏起来,给用户提供了—个友好的、易于操作的界面。
此外,操作系统还要进行大量的系统事务处理。
如响应中断的发生、处理定时操作、管理存储器及其他低级操作。
所以,可以说操作系统是硬件系统的扩展,从而扩展了原计算机的功能,它比直接对计算机硬件系统进行操作要容易得多。
3.242 某系统的进程状态转换图如图所示,请说明: 1) 引起各种状态转换的典型事件有哪些?2) 当我们观察系统中某些进程时,能够看到某一进程产生的一次状态转换能引起另一进程作一次状态转换。
职高英语第3单元作文
职高英语第3单元作文Title: My Dream Job。
As a student in vocational school, I have been thinking a lot about my future career. After considering myinterests and strengths, I have decided that my dream jobis to become a software engineer.First of all, I have always been fascinated by technology and computers. I enjoy spending hours coding and creating new programs. I find it incredibly rewarding to see my ideas come to life on the screen. As a software engineer, I will have the opportunity to work on cutting-edge technology and contribute to the development of innovative software solutions.Secondly, I have a natural talent for problem-solving and logical thinking. These skills are essential for a career in software engineering, as I will be required to analyze complex problems and come up with efficientsolutions. I believe that my ability to think critically and creatively will serve me well in this field.Furthermore, I am a highly motivated and hardworking individual. I am willing to put in the time and effort required to succeed in my chosen career. I am always eager to learn new skills and improve my knowledge in the field of software engineering. I am confident that with dedication and perseverance, I will be able to achieve my goals.In addition, I am excited about the opportunities that a career in software engineering can offer. In today's digital age, the demand for skilled software engineers is higher than ever. I believe that this field will provide me with a stable and rewarding career, as well asopportunities for growth and advancement.In conclusion, becoming a software engineer is my dream job because it combines my passion for technology with my skills and abilities. I am confident that with hard work and determination, I will be able to achieve my goal andbuild a successful career in this exciting and dynamic field. I am excited about the possibilities that the future holds, and I am eager to embark on this journey towards fulfilling my dream job.。
第3章作业及答案
第3章作业及答案第3章作业及答案-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII1. 判断下列指令书写是否正确,如有错误,指出错在何处并用正确的程序段(一条或多条指令)实现原错误指令((8)、(13)除外)期望实现的操作。
(1)MOV AL,BX (9)MOV ES,3278H(2)MOV AL,SL (10)PUSH AL(3)INC [BX] (11)POP [BX](4)MOV 5,AL (12)MOV [1A8H],23DH(5)MOV [BX],[SI] (13)PUSH IP(6)MOV BL,F5H (14)MOV [AX],23DH(7)MOV DX,2000H (15)SHL AX,5(8)POP CS (16)MUL AX,BX答:(7)、(11)、(12)正确,其他指令有错误(1)两操作数类型不匹配,可改为MOV AL,BL或MOV AX,BX(2)SL寄存器书写错误,原意应为SI,另外两操作数类型不匹配,可改为MOV AX,SI (3)操作数是字还是字节不明确,可改为INC WORD PTR [BX]或INC BYTE PTR [BX](4)立即数不能为目的操作数(5)两操作数不能同时为存储器寻址,可改为MOV AX,[SI]MOV [BX],AX(6)F5H前应加0,以区别符号变量F5H(8)CS不能为操作数(9)立即数不能直接送给段寄存器,可改为MOV AX,3278HMOV ES,AX(10)立即数应为字类型,可改为PUSH AX(13)IP不能为操作数(14)AX不能用于寄存器间接寻址,可改为MOV BX,AXMOV [BX],23DH(15)大于1的移动次数不能直接出现在指令中,只能用CL,可改为MOV CL,5SHL AX,CL(16)在MUL指令中AX为隐含操作数,可改为MUL BX2、MOV AX,BXNOT AXADD AX,BX ;AX=_ 0FFFFHINC AXAX= 0 H CF=___0___3、MOV BL, 02HMOV AL, 07HMUL BL ; AX=__ 0E _HAAMAH=__ 01__H, AL=__ 04___H4、设寄存器AL,BL,CL中内容均为1CH,执行上述指令序列后,XOR AL,0FHAND BL,0FHOR CL,0FHAL= 13 H,BL= 0C H,CL= 1F H。
大学英语3 Unit 3 三习题答案
Unit Unit 3 Job-hunting 三习题答案Section One: Before Reading1. Oral practice :Lead-in questions:Omission.3.Language Points1. On my first day, we happened upon a pride of lions resting by a lake.(1) happen upon / on: 偶然遇见某人或某物e.g. I happened upon / on a rare book in a secondhand bookshop.【近义词组】meet up with, come across, hit on / upon(2) a pride of lions: 一群狮子a herd of cattle (deer, elephants): 一群牛(鹿、象)a flock of sheep (goats, geese, birds): 一群绵羊(山羊、鹅、鸟)a swarm of bees (ants, mosquitoes): 一群蜜蜂(蚂蚁、蚊子)a school of fish: 一群鱼2. be fascinated by: 被吸引e.g. I’ve always been fascinated by his ideas.3. Although the buffalo was massive, it was easily dwarfed when all the hungry lions crowded over it for a bite.(1) massive: a. 巨大的;大量的【辨析】massive 指大的体积、数量和重量,庞大而笨重。
vast 多指空间、面积、范围的巨大,不涉及重量。
immense侧重空间的广阔,强调体积、数量或程度等,不强调重量。
大学英语第三册第三单元练习题和答案和翻译详解
14普通班英语四练习卷一Test for Unit 3, Book 3专业___________学号___________姓名___________I.Collocation:1.The initials VAT stands _for___ Value Added Tax. 首字母VAT代表增值税.2.All the medicine I took had no impact __on__ me. 所有的药对我都没有效果.3.The old lady ran away quickly __in___ terror on seeing the terrible scene那个老女人看惊恐的跑开了当她看到那个恐怖的场景.4.We sometimes think humans are uniquely vulnerable to anxiety, but stress seems toaffect the immune defenses of lower animals too. 我们有时认为人类是唯一容易焦虑的.但是压力似乎也影响着低等动物的免疫机制.5.It is vital that Japan reflect ___on__ and understand fully the extent of their past militarism. 至关重要的是,日本反省和充分理解他们过去的军国主义的程度II. Vocabulary:6.Rumors are everywhere, spreading fear, damaging reputations, and turning calm situationsinto_ A. turbulent ___ ones.A. turbulentB. tragicC. vulnerableD. suspicious谣言四处散播恐惧损害名誉,还将原本平静的环境变得复杂混乱。
OS第3章作业
10个单元的一种资源被3个进程A、B、C共享,每个进行的最 大需求量分别是4、7、8.假设它们对资源的申请序列如下表 所示。请问: (1)为了使系统不发生死锁,系统分配资源时采用银行家算法 。如果申请资源得不到满足,进程就转入阻塞态。在进行到 序号6时,3个进程各处于什么状态?获得的资源各是多少? (2)系统会发生死锁吗?为什么?
P1 P2 计算每个进程还可能需要的资源。 (2)T0时刻是否为安全状态?若是,请给出安 全序列。 (3)在T0时刻若进程P2请求资源(0,3,4) ,是否能实施资源分配?为什么? (4)在T0时刻若进程P4请求资源(2,0,1) ,是否能实施资源分配?为什么? (5)在(4)的基础上,若进程P1请求资源( 0,2,0),是否能实施资源分配?为什么?
序号 1 2 3 进程 A B C 申请资源数 2 4 2
4
5 6 …
B
C A …
2
2 2 …
一个系统有五个并发进程P1、P2、P3、P4、
P5,有三类资源A、B、C,其中A资源的数量 是17,B资源的数量是5,C资源的数量是20 ,T0时刻系统如表所示。
最大资源需求量 A B C 5 5 9 5 3 6 4 0 11 4 2 5 4 2 4 已分配资源数量 A B C 2 1 2 4 0 2 4 0 5 2 0 4 3 1 4
该银行家的资金总额为10个资金单位其中c1客户要借9个资金单位c2客户要借3个资金单位c3客户要借8个资金单位总计20个资金单位
第3章 死锁
作业
有三个客户C1,C2,C3,向银行家贷款。该银
行家的资金总额为10个资金单位,其中C1客户 要借9个资金单位,C2客户要借3个资金单位, C3客户要借8个资金单位,总计20个资金单位 。若T0时刻,客户占用及还需资源的状态如下 图所示,银行家该如何分配资金?请给出安全 序列。 客户 C1 C2 C3 已分配资源 2 2 4 还需申请资源 7 1 4
计算机组成与汇编语言第3章作业
计算机组成与汇编语言第3章作业计算机组成与汇编语言第3章作业II 3.2存储器由哪些基本部分组成?每部分作用是什么?[答案]存储器由存储体、地址寄存器 MAR、数据寄存器MDR、地址译码驱动电路、读/写控制逻辑、读/写驱动器等六个部分组成。
CPU将n位地址码通过地址总线送入存储器中的地址寄存器MAR,地址译码驱动电路包含译码器和驱动器两部分。
译码器将地址总线输入的地址码转换成与其对应的译码输出线上的高电平或低电平信号,以表示选中了某一单元,并由驱动器提供驱动电流去驱动相应的读/写电路,实现对2n个片内存储单元的选址。
被译码选中的存储单元,在读/写控制逻辑的作用下,其读/写信息经读/写驱动器驱动放大存于存储器中的数据寄存器 MDR或从 MDR写入选中的存储单元,可见MDR是为了协调CPU与存储器之间在速度上的差异设置的,用于暂时存放存储器读写的数据。
■ 3.3存储器的主要技术指标有哪些?是什么含义?[答案]一个存储器的性能通常从容量、速度、价格和可靠性四方面来衡量。
(1)存储容量:存储容量是指一个存储器所能够容纳的二进制信息量,它反映了存储空间的大小。
存储容量通常用字节(B)数来表示,也有用存储器的存储字位数与地址寄存器的编址数的乘积表示。
(2)存储速度:通常用存取时间和存取周期来衡量存储器的存储速度。
存取时间也称为访问时间或读/写时间,是指从启动一次存储器操作到完成该操作所经历的时间。
存取时间越短,存取速度越快。
存取周期是启动两次独立的存储器操作所需的最小时间间隔,它包括了 CPU读/写数据总线的时间。
通常存取时间略小于存取周期。
(3)存储器的可靠性:指在规定的时间内存储器无故障读 /写的概率。
通常用平均无故障时间 MTBF来衡量,MTBF可以为两次故障之间的平均时间间隔,间隔越长说明存储器的性能越好。
(4)存储器的性能/价格比:是衡量存储器经济性能的一个综合性指标。
性能主要是指存储容量、存储速度和可靠性。
第3章习题参考答案
第3章 程序设计初步习题参考答案1、(略)2、解#include <iostream>#include <iomanip>using namespace std;const float pi=3.1415926; //也可定义为符号 #define pi 3.1415926void main ( ){float h,r,l,s,sq,vq,vz;cout<<"please enter r,h:";cin>>r>>h;l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;cout<<setiosflags(ios::fixed)<<setiosflags(ios::right)<<setprecision(2);cout<<"l= "<<setw(8)<<l<<endl;cout<<"s= "<<setw(8)<<s<<endl;cout<<"sq="<<setw(8)<<sq<<endl;cout<<"vq="<<setw(8)<<vq<<endl;cout<<"vz="<<setw(8)<<vz<<endl;}3、输入一个华氏温度,要求输出摄氏温度。
公式为C=95(F-32),输出要有文字说明,取两位小数。
解:#include <iostream.h>#include<iomanip.h>void main (){float c,f;cout<<"请输入一个华氏温度:";cin>>f;c=5.0/9.0*(f-32); //注意5和9要用实型表示,否则5/9值为0cout<<setiosflags(ios::fixed)<<setprecision(2)<<"摄氏温度为:"<<c<<endl; }4、编程序,用getchar 函数读入两个字符给c1,c2,然后分别用putchar 函数和cout 语句输出这两个字符。
(完整版)第三章作业-参考答案
3、在什么情况下需要使用作业控制块JCB?其中包含了哪些内容?答:为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块。
在JCB 中所包含的内容因系统而异,通常应包含的内容有:作业标识、用户名称、用户帐户、作业类型(CPU 繁忙型、I/O 繁忙型、批量型、终端型)、作业状态、调度信息(优先级、作业已运行时间)、资源需求(预计运行时间、要求内存大小、要求I/O设备的类型和数量等)、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。
6、在抢占调度方式中,抢占的原则是什么?抢占的原则有:优先权原则;短作业(进程)优先原则;时间片原则。
13、为什么说多级反馈队列调度算法能较好满足各方面用户的需要?(1) 所有类型的作业都会在很短的时间内启动,用户会获得响应;(2) 终端型用户作业、短批处理作业用户,能在较短的时间内完成;(3) 系统吞吐率高;(4) 长批处理作业,能够最终得到处理。
19、在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法资源利用率最高?“预防死锁”最容易实现;“避免死锁”资源利用率最高。
22、在银行家算法中,若出现下列资源分配情况:Process allocation need availableP0 0032 0012 1622P1 1000 1750P2 1354 2356P3 0332 0652P4 0014 0656试问:1)该状态是否安全?2)若进程P2提出请求request(1,2,2,2)后,系统是否将资源分配给它?(1) 该状态是安全的,这时可以找到一个安全序列:P0、P3、P4、P1、P2设置两个向量①工作向量work,它表示系统可提供给进程继续运行所需的各类资源数目,在执行算法开始时,work:= Available,②finish,它表示系统是否有足够的资源分配给进程,使其运行完成。
所以对上述分配资源情况进行分析如下:Process Allocation Need work work+Allocation finishP0 0032 0012 1622 1654 trueP3 0332 0652 1654 1986 trueP4 0014 0656 1986 199 10 trueP1 1000 1750 199 10 299 10 trueP2 1354 2356 299 10 3 12 14 14 true(2) 若进程P2提出上述请求,系统不能将资源分配给它,因为分配之后系统将进入不安全状态。
职业英语第三单元作文
职业英语第三单元作文下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copyexcerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!I have always been fascinated by the world of fashion. The glitz and glamour, the creativity and innovation, itall captivates me. From a young age, I knew that I wanted to pursue a career in this industry. And now, after years of hard work and dedication, I can proudly say that I am a fashion designer.Being a fashion designer is not just about creating beautiful clothes. It's about understanding the needs and desires of the people who wear them. It's about staying ahead of the latest trends and constantly pushing the boundaries of design. It's about being able to take inspiration from everyday life and turn it into something extraordinary.One of the most exciting aspects of my job is the opportunity to travel. I get to visit fashion capitals like Paris, Milan, and New York, where I can immerse myself in the vibrant and dynamic fashion scenes. It's a chance tosee what other designers are doing, to gain inspirationfrom different cultures and styles, and to network with industry professionals. These trips are not only a sourceof inspiration, but also a way to stay connected andrelevant in the ever-changing fashion world.Another important part of being a fashion designer is the ability to work under pressure. Deadlines are aconstant presence in this industry, and it's important tobe able to deliver high-quality work on time. Whether it's designing a collection for a fashion show or creating custom pieces for clients, there is always a sense of urgency and a need to perform at your best. It can be stressful at times, but the satisfaction of seeing your designs come to life makes it all worth it.Collaboration is also a key aspect of being a fashion designer. It's not a solitary job, but rather a team effort. Working with pattern makers, seamstresses, and other professionals is essential to bring a design from conceptto reality. It's about finding the right balance between your own vision and the input of others, and being open tonew ideas and perspectives. Collaboration not only enhances the final product, but also allows for personal and professional growth.In conclusion, being a fashion designer is a dream come true for me. It's a career that allows me to express my creativity, travel the world, and make a positive impact on people's lives through the clothes they wear. It's a challenging and demanding profession, but one that brings immense joy and fulfillment. I am grateful every day for the opportunity to do what I love and to be a part of the ever-evolving world of fashion.。
第3章参考答案
第3章参考答案本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March第3章 C51语言编程基础1.C51在标准C的基础上,扩展了哪几种数据类型2.C51有哪几种数据存储类型其中数据类型“idata,code,xdata,pdata”各对应AT89S51单片机的哪些存储空间3.说明3种数据存储模式(1)SMALL模式(2)COMPACT模式(3)LARGE模式之间的差别。
4.编写C51程序,将片外2000H为首地址的连续10个单元的内容,读入到片内40H 到49H单元中。
5.do-while构成的循环与while循环的区别是什么参考答案1. C51在标准C的基础上,扩展了4种数据类型:bit、sfr、sfr16、sbit。
2. 数据存储类型有:data、bdata、idata 、xdata 、pdata、code,其中“idata,code,xdata,pdata”各自对应的AT89S51单片机存储空间如下:idata:片内RAM的256字节,必须间接寻址的存储区;code:程序存储区,使用DPTR寻址;xdata:片外64kb的ram空间,使用@DPTR间接寻址;pdata:片外ram的256字节,使用@Ri 间接寻址。
3.(1)SMALL模式。
在该模式下,所有变量都默认位于51单片机内部的数据存储器,这与使用data指定存储器类型的方式一样。
在此模式下,变量访问的效率高,但是所有数据对象和堆栈必须使用内部RAM。
(2)COMPACT模式。
当使用本模式时,所有变量都默认在外部数据存储器的1页内,这与使用pdata指定存储器类型是一样的。
该存储器类型适用于变量不超过256字节的情况,此限制是由寻址方式决定的,相当于使用数据指针@Ri进行寻址。
与SMALL模式相比,该存储模式的效率比较低,对变量访问的速度也慢一些,但比LARGE模式快。
cw03作业
Coursework3This coursework is worth4%and is due on13December at16:00.You are asked to implement a compiler for the WHILE language that targets the assembler language provided by the Jasmin.This assembler is available fromThere is a user guide for Jasmin/guide.htmland also a description of some of the instructions that the JVM understands /instructions.htmlIf you generated a correct assemblerfile for Jasmin,for example loops.j,you can usejava-jar jasmin-2.4/jasmin.jar loops.jin order to translate it to Java byte code.The resulting classfile can be run withjava loopswhere you potentially need to give the path to the classfile.You need to submit a document containing the answers for the two questions below.You can do the implementation in any programming language you like, but you need to submit the source code with which you answered the questions. Otherwise the submission will not be counted.However,the coursework will only be judged according to the answers.You can submit your answers in a txt-file or as pdf.Question1(marked with2%)You need to lex and parse WHILE programs and submit the assembler instruc-tions for the Fibonacci program and for the program you submitted in Course-work2in Question3.The latter should be so modified that a user can input the upper bound on the console(in the original question it wasfixed to100).1Question2(marked with2%)Extend the syntax of you language so that it contains also for-loops,likefor Id:=AExp upto AExp do BlockThe intended meaning is tofirst assign the variable Id the value of thefirst arithmetic expression,then go through the loop,at the end increase the value of the variable by1,andfinally test wether the value is not less or equal to the value of the second arithmetic expression.For example the following instance of a for-loop is supposed to print out the numbers2,3,4.for i:=2upto4do{write i}There are two ways how this can be implemented:one is to adapt the code generation part of the compiler and generate specific code for for-loops;the other is to translate the abstract syntax tree of for-loops into an abstract syntax tree using existing language constructs.For example the loop above could be translated to the following while-loop:i:=2;while(i<=4)do{write i;i:=i+1;}In this question you are supposed to give the assembler instructions for the for the programfor i:=1upto10000do{for i:=1upto10000do{skip}}Further InformationThe Java infrastructure unfortunately does not contain an assembler out-of-the-box(therefore you need to download the additional package Jasmin—see above).But it does contain a disassembler,called javap.A dissembler does the“opposite”of an assembler:it generates readable assembler code from Java byte code.Have a look at the following pile using the usual Java compiler,the simple Hello World program below:21class HelloWorld{2public static void main(String[]args){3System.out.println("Hello World!");4}5}You can use the commandjavap-v HelloWorldin order to see the assembler instructions of the Java byte code that has been generated for this program.You can compare this with the code generated for the Scala version of Hello World.1object HelloWorld{2def main(args:Array[String]){3println("Hello World!")4}5}Library FunctionsYou need to generate code for the instruction write and read.This will require to add some“library”functions to your generated code.Thefirst command even needs two versions,because you might want to write out an integer or a string.The Java byte code will need two separate functions for this.For writing out an integer,you can use the code.method public static write(I)V.limit locals5.limit stack5iload0getstatic java/lang/System/out Ljava/io/PrintStream;swapinvokevirtual java/io/PrintStream/println(I)Vreturn.end methodThis function will invoke Java’s println function for integers.Then if you need to generate code for write x where x is an integer variable,you can generate iload ninvokestatic XXX/XXX/write(I)V3where n is the index where the value of the variable x is stored.The XXX/XXXneeds to be replaced with the class name which you use to generate the code(for example fib/fib in case of the Fibonacci numbers).Writing out a string is similar.The corresponding library function is.method public static writes(Ljava/lang/String;)V.limit stack2.limit locals2getstatic java/lang/System/out Ljava/io/PrintStream;aload0invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V return.end methodand the code that needs to be generated for write"some string"commandsisldc"some_string"invokestatic XXX/XXX/writes(Ljava/lang/String;)VAgain you need to adjust the XXX/XXX part in each call.4。
第3章作业参考答案
第3章作业参考答案3.2写出下面程序的运行结果:#includeintmain(void){unsignedintx1=65535;intx2=-3;floaty1=123.4567,y2=123.4500;printf(\printf(\printf(\printf(\printf(\return0;}16十一位环境(题意预设为16十一位环境):x1=-1,177777,ffff,65535x2=-3,177775,fffd,65533y1=123.456700,123.457,123.457,123.457y2=123.450000,1.23450e+02,123.45x1(m)=-132位环境:x1=65535,177777,ffff,65535x2=-3,37777777775,fffffffd,4294967293y1=123.456700,123.457,123.457,123.457y2=123.450000,1.23450e+02,123.45x1(m)=655 353.3填入代码如下:(1)%c(2)%c(3)%f(4)%f(5)%lu(6)%hd(7)%d(8)%ld(9)%f(10)%lf3.4根据变量表明表示下面的语句哪些就是恰当的,哪些就是错误的。
charc='a';inti1=1;constinti2=-1;longi3=3;unsignedi4=0;floatx1=1;doublex2=3;longdoublex3=1000;printf(\//error:除数为零putchar(c-'a'+'a'+1);printf(\printf(\//error:输出longdouble类型的浮点数用%lfprintf(\//error:表达式值类型为longdouble,应用领域%lf输入scanf(\//error:x2类型为double,格式字符串中语句应为%lfprintf(\putchar(i2=getchar());//error:cannotmodifyaconstobjectprintf(\//e rror:第一个参数应用%u输出,第二个参数char类型用%f输出结果有误scanf(\3.5撰写一个程序,从终端输出一个字符,如果该字符时十六进制数字,则输入它对应的整数,否则输入它的字符码。
第三章 补充作业参考答案
补充作业参考答案1.有一个文件F,允许一个写者和一个读者对文件进行操作,试用P、V操作解决写者和读者的互斥问题。
①设置互斥信号量S;②S的初值为1。
③算法:BeginS:semphoneS=1CobeginProcess Reader Process WriterBegin BeginP(S) P(S)Read file F Write file FV(S) V(S)End EndCoendEnd若允许一个写者和多个读者对文件进行操作,试用P、V操作解决写者和读者的互斥问题。
①设置计数器R,R的初值为-。
②设置互斥信号量S,表示写者与读者互斥;S的初值为1。
设置互斥信号量S r,表示读者与读者互斥;S r的初值为1。
③算法:BeginS,S r:semphoneS=1S r=1R=0CobeginProcess Read i(i=1,2..)Process WriterBegin BeginP(S r ) P(S)R=R+1 Write file FIf R=1 then P(S) V(S)V(S r) EndRead file F CoendP(S r ) EndR=R-1If R=0 then V(S)End2.桌子上有一只空盘子,允许只放一只水果(桔子或苹果);爸爸放水果,儿子吃桔子,女儿吃苹果;问爸爸、儿子、女儿三个进程是什麽关系?试用P、V操作解决爸爸、儿子、女儿三个进程的关系。
同步关系。
设置三个信号量:①S表示盘子是否有空,S的初值为1。
②S o表示盘子是否有桔子,S o的初值为0。
③S a表示盘子是否有苹果,S a的初值为0。
算法描述:BeginS,S o,S a:semphoneS=1S o=0S a=0CobeginProcess Father Process SonBegin BeginP(S ) P(S o)放水果入盘中从盘中取桔子If 是桔子then V(S o) V(S)Else V(S a) 吃桔子End EndProcess DaughterBeginP(Sa)从盘中取苹果V(S)吃苹果EndCoendend3.写出P、V操作的定义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
书面作业3
习题3
一.选择题
1.能正确表示逻辑关系:“a≥10 或a≤0”的C 语言表达式是D。
A.a >= 10 or a <= 0B.a >= 0 | a <= 10
C.a >= 10 && a <= 0 D.a >= 10 || a <= 0
2.在嵌套使用if 语句时,C 语言规定else 总是C。
A.和之前与其具有相同缩进位置的if 配对B.和之前与其最近的if 配对C.和之前与其最近的且不带else 的if 配对D.和之前的第一个if 配对
3.下列叙述中正确的是D。
A.break 语句只能用于switch 语句
B.在switch 语句中必须使用default
C.break 语句必须与switch 语句中的case 配对使用
D.在switch 语句中,不一定使用break语句
4.有一函数
1 x > 0
y= 0 x = 0 ,以下程序段中错误的是C。
-1 x < 0
A.if(x > 0) y = 1; B.y=0;
else if(x == 0) y = 0; if(x > 0) y = 1;
else y = -1;else if(x < 0) y = -1;
C.y = 0; D.if(x >= 0)
if(x >= 0); if(x > 0) y = 1;
if(x > 0) y = 1 ; else y = 0;
else y = -1; else y = -1;
5.下列程序段的输出结果是C。
int main(void)
{
int a = 2, b = -1,c = 2;
if(a < b)
if(b < 0) c = 0;
elsec++;
printf("%d\n",c);
return 0;
}
A.0 B.1 C.2 D.3
6.下列程序段的输出结果是A。
int main(void)
{
int x = 1,a = 0,b = 0;
switch(x) {
case 0: b++;
case 1: a++
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
return 0;
}
A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2
7.在执行以下程序时,为使输出结果为:t=4,则给a 和b 输入的值应满足的条件是C。
int main(void)
{
inta,b,s,t;
scanf("%d,%d",&a,&b);
s = 1; t = 1;
if(a > 0) s = s + 1;
if(a > b) t = s + t;
else
if(a == b) t = 5;
else t = 2 * s;
printf("t=%d\n",t);
return 0;
}
A.a>b B.a<b<0 C.0<a<b D.0>a>b
二、填空题
1.表示条件:10<x<100 或者x<0 的C 语言表达式是x>10&&x<100||x<0。
2.若有int x; 请以最简单的形式写出与逻辑表达式!x 等价的C 语言关系表达式>x&&<x 。
3.已知a=7.5,b=2,c=3.6,则表达式a>b&&c>a||a<b&&!c>b 的值为0。
4.若从键盘输入58,则以下程序段的输出结果是585858。
int main(void)
{
int a;
scanf("%d",&a);
if(a > 50) printf("%d",a);
if(a > 40) printf("%d",a);
if(a > 30) printf("%d",a);
return 0;
}
5.下列程序运行的输出结果是9。
int main(void)
{
char c = ’b’;
int k = 4;
switch(c) {
case 'a': k = k + 1;break;
case 'b': k = k + 2;
case 'c': k = k + 3;
}
printf("%d\n",k);
return 0;
}。