某C程序定义了一个全局变量int data[256],其并创建有两类进程Ai(0<=i<=5)、bj(0<=j<=5)、分别循环式地对data数组元素依次进行设置(写)和提取(读)操作。具体而言,a类进程循环式地依次对data数组元素进行设置操作,也即设置data[0]、设置data[1]、设置data[2]、.......、设置data[255]、设置data[0]、设置data[1]、.......、设置data[255]、设置data[0]、设置data[1]、.......;b类进程循环式地依次对data数组元素进行提取操作,也即提取data[0]、提取data[1]、提取data[2]、.......、提取data[255]、提取data[0]、提取data[1]、.......、提取data[255]、提取data[0]、提取data[1]、.......;一个数据元素被写入一次后,必须被取走后该元素才可被再次写操作,同时,a类进程写入的数据必须要被某个b类进程取走且仅需取走一次。在设计和实现这两类进程对data数据共享访问同步问题的正确最高效解决方案中,关于临界资源及对应临界区操作的分析,正确无误的说法是(> A、设立进程Ai共享的data数组下标变量x,设立进程Bj共享的data数组下标变量y,并将x和y作为这两类进程的临界资源,并定义一个互斥信号量对其访问操作进行保护
B、全局变量data、i和j都是临界资源
C、全局变量data作为上述两类进程的临界资源,且把它们对data的操作都封装在相同的互斥信号量mutex保护的临界区中
D、设立进程Ai共享的data数组下标变量x,设立进程Bj共享的data数组下标变量y,并将x作为Ai类进程之间的临界资源(故而定义互斥信号量mutexX实现Ai类进程对x的互斥访问)、y作为Bj类进程之间的临界资源(故而定义互斥信号量mutexY实现Bj类进程对y的互斥访问)
第3题
有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是struct node { int data; struct node *next; }*p, *q, *r;
A、r->next=q; q->next=r->next; p->next=r;
B、q->next=r->next; p->next=r; r->next=q;
C、p->next=r; q->next=r->next; r->next=q;
D、q->next=r->next; r->next=q; p->next=r;
第9题
程序功能:采用面向对象程序设计方法,编写C++程序,模拟CPU按地址对主存单元进行读写操作的过程。 用户能够进行的操作:(1)对主存指定单元的写入操作;(2)对主存指定单元的读出操作;(3)在成批显示主存所有单元的数据。 模块结构: computer.h 用于声明所有的类型、类和接口 computer.cpp 用于定义函数体内部代码 main.h 用于测试代码的正确性 公有数据类型: addressword int类型 dataword char类型 常数定义: MEMORYSIZE ,值为256 类结构: 1、 Computer类,公有类,外部可以访问。 (1) 私有数据成员:一个Cpu 类的实例,一个Memory类的实例。 (2) 公有函数成员: void writeMemory(addressword,dataword),能够实现将dataword参数数据写入由addressword参数指定的内存单元的操作; dataword readMemory(address) ,能够实现对主存指定单元的读出操作; displayMemoryAll() ,能够实现显示主存所有内存单元的内容的操作。 2、 Cpu类,为Computer类的内部类,私有类,除Computer类以外,其他类不能访问,外部不能访问。 (1) 私有数据成员:AR,addressword类型,表示地址寄存器;DR,dataword类型,表示数据缓冲寄存器。 (2) 公有函数成员:setAR() 、getAR()、setDR()、getDR(),自行设计所需的参数和返回值及其类型。 3、 Memory类,为Computer类的内部类,私有类,除Computer类以外,其他类不能访问,外部不能访问。 (1) 私有数据成员:memoryBody[MEMORYSIZE],char类型,每个数组元素代表一个内存单元,元素下标即内存单元地址,按字节编址。 (3) 公有函数成员:inputMemeory()、outputMemory(),修改或输出指定内存单元的值,自行设计所需的参数和返回值及其类型。 注意:内部类中,即使公有成员,也只能在其外部类中访问,用户不能访问。 要求: 程序设计应能模拟CPU访问存储器的过程。如: 写内存的操作应该包含如下过程:(step1)修改数据寄存器DR,(step2)设地址寄存器AR,(step3)将数据寄存器DR中的数据写入指定内存单元。 读内存的操作应该包含如下过程:(step1)设地址寄存器AR,(step2)将指定内存单元的内容送入数据寄存器DR。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!