20155211 课下测试ch12补做

  • 有关线程图,下面说法正确的是()

A.图的原点表示没有任何线程完成一条指令的初始状态

B.向右向上是合法的转换

C.向左向下是合法的转换

D.对角线是合法的转换

E.一个程序执行的历史被模型化成状态空间中的一条轨迹线

F.进度图中,两个临界区的交集形成不安全区

正确答案: A B E F p701 合法的转换是向右或者向上的。对角线转换是不允许的。

  • 下面代码对于并发程序来说逻辑上是()条指令?

for(i=0;i<1000; i++) cnt++;

A.2

B.3

C.4

D.5

E.6

F.1

正确答案: D p699 我们将循环代码分解成五个部分。

  • 有关多线程的说法,正确的是()

A.竞争和死锁是并发程序中出现的难题

B.程序员错误的假设逻辑流该如何调度时就会发生竞争

C.当一个逻辑流等待一个永远不会发生的事件时就会产生死锁

D.程序使用PV的顺序不当,可能引发死锁

E.利用互斥锁加锁顺序规则可以避免互斥死锁

正确答案: A B C D E p721 程序员使用P和V操作顺序不当,以至于两个信号量的禁止区域重叠。死锁,指的是一组线程被阻塞了。

  • 下面Linux函数()是线程安全的?

A.rand()

B.ctime()

C.printf()

D.localtime_r()

E.scanf()

正确答案: C D E p718 可重入函数通常要比不可重入的线程安全的函数高效一些。

  • 线程不安全函数类包括()

A.不保护共享变量的函数

B.保持跨越多个调用的状态的函数

C.返回指向静态变量指针的函数

D.调用线程不安全函数的函数

E.调用可重入函数的函数

正确答案: A B C D p716可重入函数,线程安全函数和线程不安全函数之间的集合关系参照p717页图12-39.

  • 有关并发程序,下面说法正确的是()

A.程序可以分为并发程序和顺序程序两类

B.程序可以分为并行程序和顺序程序两类

C.并发程序是一种特殊的并行程序

D.并行程序是一种特殊的并发程序

正确答案: A D p711参见图12-30,所有程序的集合能够被划分为不相交的顺序程序集合和并发程序的集合。写顺序程序只有一条逻辑流,写并发程序有多条逻辑流。并行程序是一个运行在多个处理器上的并发程序。因此,并行程序的集合是并发程序集合的真子集。

  • 有关“生产者-消费者”和“读者-写者”模型,下面说法正确的是()

A.二者除处理的都是互斥问题

B.二者除处理的都是同步问题

C.二者都要保证对缓冲区的访问是互斥的

D.“生产者-消费者”模型要保证对缓冲区的访问是互斥的

E.“读者-写者”模型要保证读者对缓冲区的访问是互斥的

正确答案: B D p704读者-写者问题是互斥问题的一个概括。生产者和消费者线程共享一个有n个槽的有限缓冲区。

  • 有关使用信号量实现互斥的说法正确的是()

A.互斥是一种特殊的同步

B.使用二元信号量和PV原语可以实现互斥

C.对于信号量sem_t mutex;

Sem_init(&mutex, 0 , 2);把mutex初始化为二元信号量,用作互斥锁

D.对于共享变量volatile long cnt = 0;

for(i=0; i<ntiers; i++){
P(&mutex)
cnt++;
V(&mutex)
}

保证了对cnt的 访问是互斥的,cnt的计数是正确的

正确答案: A B D p704 D代码为p704例代码。

  • 有关信号量(semphore),下面说法正确的是()

A.信号量s是一个非负的全局变量

B.信号量只能通过P,V操作来处理

C.P,V操作确保信号量s非负

D.sem_post()完成P(s)的操作

E.sem_wait()完成V(s)的操作

正确答案: A B C p702 s是具有一个肺腑整数值的全局变量,只能有两种特殊的操作P和V来处理。

  • 有关下面的代码hello.c,编译后的可执行程序为phello,下面说法正确的是()

A.编译命令是:gcc hello.c -o phello

B.编译命令是:gcc hello.c -lpthread -o phello

C.编译命令是:gcc hello.c -pthread -o phello

D.phello运行时有一个线程

E.phello运行时有两个线程

F.phello运行时主线程先执行完

G.phello运行时对等线程先执行完

H.phello运行时对等线程和主线程执行顺序不确定

正确答案: B C E G 为家庭作业12.17

解析:多线程编译需要-lpthread或-pthread参数;pthread_join使得主线程等待对等线程先执行完

  • 有关线程控制,下面说法正确的是()

A.与进程一样,线程也有父子关系

B.与进程控制中fork() 等价的是pthread_create()

C.与进程控制中exit() 等价的是pthread_exit()

D.与进程控制中waitpid()等价的是pthread_join()

E.与进程控制中kill() 等价的是pthread_cancel()

F.与进程控制中getpid() 等价的是pthread_self()

正确答案: B C D E F

解析:线程只有主线程和对等线程,其他与进程的对比要理解。线程就是运行在进程上下文中的逻辑流。

  • 关于线程,下面说法正确的是()

A.线程是运行在进程中的逻辑流

B.每个线程有自己的线程上下文,包括TID、栈、栈指针、PC、通用寄存器和条件码

C.进程是程序级并发,线程是函数级并发

D.一个进程中的线程共享该进程的虚拟地址空间

正确答案: A B C D

解析:p691:注意并发粒度的不同:进程是程序级并发,线程是函数级并发。多线程的执行模型在某些方面和多进程的执行模型是相似的。

  • 一个状态机包含()

A.状态

B.事件

C.自循环

D.转移

正确答案: A B D p687 一个状态机就是一组状态,输入事件和转移。

  • 有关下面代码,编译后的可执行程序是echoserv,下面说法正确的是()

A.第19行中的STDIN_FILENO的值可以用grep -nr STDIN_FILENO /usr/include 查到为1

B.第24行select()会导到致程序阻塞,可以替代accept()

C.程序运行时,输入CTRL+D,可以让select返回

D.以上代码中加入csapp.h就能编译成功

正确答案: C

解析:grep -nr STDIN_FILENO /usr/include STDIN_FILENO为0 p686为图12-6该图展示了可以如何利用select来实现一个迭代echo服务器,它也可以接受标准输入上的用户命令。

  • 有关下面代码,编译后的可执行程序是echoserv,下面说法正确的是()

A.这是一个并发echo服务器

B.这是一个迭代echo服务器

C.第33行关闭已连接描述符

D.第33行关闭监听描述符

E.删除第33行会导致内存泄露

F.

./echoserv 5056 ,5056是连接的客户端进程的端口号

G.

./echoserv 5056 ,5056是连接的服务器进程的端口号

H.删除第30行会导致内存泄露

正确答案: A C E G p682, 习题12.2参考十一章

  • 现代操作系统提供的构造并发程序的方法有()

A.异常

B.进程

C.I/O多路复用

D.信号

E.线程

正确答案: B C E p681emm书上原话

20155211 课下测试ch12补做的更多相关文章

  1. 20155211 课下测试ch11补做

    20155211 课下测试ch11补做 Web服务器的实现基于HTTP协议,有关HTTP协议,下面说法正确的是() A.可以用telnet充当Web服务器的客户端进行调试 B.HTTP请求的GET和P ...

  2. 20155211课下测试ch10补交

    20155211课下测试ch10补交 1.假设下面代码中的foobar.txt中有6个ASCII字母,程序的输出是() A.c = f B.c = o C.c = b D.c = 随机数 答案:A 解 ...

  3. 20175333曹雅坤MyCP(课下作业,必做)

    MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...

  4. ###20175311MyCP(课下作业,必做)

    MyCP(课下作业,必做) 作业题目 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.b ...

  5. 20175314薛勐 MyCP(课下作业,必做)

    MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...

  6. # 课下测试ch02

    课下测试ch02 1.假设下面位串是基于IEEE格式的5位浮点表示,一个符号位,2个阶码位,两个小数位.下面正确的是(AD) A . 3.5的表示是[01011] B . -1.0的表示[01111] ...

  7. 20175221 MyCP(课下作业,必做)

    MyCP(课下作业,必做) 任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: - java MyCP -tx XXX1.txt XXX2 ...

  8. 迭代和JDB(课下作业,选做)

    迭代和JDB(课下作业,选做) 题目要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图 ...

  9. 20175314薛勐 MyOD(课下作业,选做)

    MyOD(课下作业,选做) 要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 思路 伪代码: 读取命令行输入的参数(文件名) 以16为每个字 ...

随机推荐

  1. 结对作业——随机生成四则运算(Core 第7组)

    结对作业 ——随机生成四则运算(core第7组) 吕佳玲 PB16060145 涂涵越 PB16060282 GITHUB地址 https://github.com/hytu99/homework_2 ...

  2. 第三届移动互联网测试开发大会 PPT合集下载

    PPT下载地址 http://www.51test.space/archives/2887 大会介绍 Mobile Testing Summit China(中国移动互联网测试开发大会)是一个以移动测 ...

  3. UML建模中简单消息、同步消息和异步消息

    两种消息在UML图中的表示方法如图: 1.同步方式 两个通信应用服务之间必须要进行同步,两个服务之间必须都是正常运行的.发送程序和接收程序都必须一直处于运行状态,并且随时做好相互通信的准备. 发送程序 ...

  4. django项目设计

    我们以前是只建立一个项目只建立一个app,如果我们要建立多个app的时候 并且这个app要写很多额视图的函数views内函数,要是建立很多种的时候就会造成很冗杂,不美观  我们未来增强解耦性,就把那个 ...

  5. Hadoop HBase概念学习系列之HBase的Shell(步骤非常清晰)(二十四)

    这部分知识点,是必须要熟练玩转的! 见 5 hbase-shell + hbase的java api 的进入HBase Shell   强烈建议,先看我上面的这篇博文,是实实际际的步骤. 另外,附上一 ...

  6. October 09th 2017 Week 41st Monday

    My motto is: Contended with little, yet wishing for more. 我的座右铭是:为一点点感到满足,但希望获得更多. If you can live y ...

  7. 64位操作系统下调用32位com的问题

    Hello Guys! I am trying to create a simple VBS script to automatically open some .tif images from a ...

  8. 【FLEX教程】#007 如何让JS调用SWF里的方法

    HTML中,JS如何调用SWF里面已经封装好的代码呢? 有一些事情Flex没办法实现的,需要通过调用JS来实现. eg: 当浏览器窗体关闭的时候,弹出一个对话框,提示用户是否退出?或者是否保存当前的操 ...

  9. 通过 Chrome 调试运行在 IOS-safari 上的页面

    本文重点讨论如何在 Windows 系统中通过chrome 浏览器调试运行在 iPhone Safari 浏览器中的网页.如果你有一台 iMac/MacBook,可忽略该文档.iMac 环境下,直接通 ...

  10. 将Python打包成可执行文件exe的心路历程

    导言: 我们有时候需要将做好的Python程序打包成为一个exe , 方便我们使用,查找了资料发现 pyinstaller .py2exe,最后还是选择的pyinstaller,用的时候踩过了挺多的坑 ...