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. LeetCode题解之Unique Morse Code Words

    1.题目描述 2.题目分析 将words 中的每一个string  直接翻译成对应的Morse 码,然后将其放入 set 中,最后返回set的大小即可,此处利用的set 中元素不重复的性质. 3.代码 ...

  2. laravel session的几个特点

    1. 只要访问了网站,就会创建一个临时的session 2.用户登录后sessionid就会发生变化 3.在这期间,即使使用4g网络,ip地址会不断发生变化,只要cookie中包含了sessionid ...

  3. Oracle常见等待事件

    1Buffer busy waits从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个Buffer(数据块),但是导致这个现象的原因却有很多种.常见的两种是: ·         当一个会话视图 ...

  4. [翻译] AAPullToRefresh

    AAPullToRefresh 效果: Requirement - 需要的环境 ARC. iOS 6 or higher(tested on iOS 6, 7 and 8). Install - 安装 ...

  5. 用UITextView加载rtfd文件

    用UITextView加载rtfd文件 效果 说明 使用此方法可以实现十分简易的富文本显示效果,包括图文混排等等效果. 源码 // // ViewController.m // Rtfd // // ...

  6. Aiseesoft Data Recovery 1.1.6 专业数据恢复软件破解版

    Aiseesoft Data Recovery是专业的数据恢复软件,它可以帮助你恢复几乎所有删除/丢失的文件,如照片,文件,电子邮件,音频,视频且支持从计算机,硬盘驱动器,闪存驱动器,存储卡,数码相机 ...

  7. Mongo.exe 无法定位程序输入点terminate于动态链接库 *.dll的解决办法

    Win7 或者Winserver 上安装新版的Mongo后,总是提示如上问题,可使用如下方法解决: 一是系统更新到SP1,并安装了KB2999226这个更新包(重要): 二是安装安装 Visual C ...

  8. NTRIP协议学习(一)

    这篇博客讲得很清晰.  https://blog.csdn.net/sinat_19447667/article/details/67637167 可以参考的文献包括:<多系统GNSS实时数据质 ...

  9. c++中堆、栈内存分配

    转自:https://blog.csdn.net/qingtingchen1987/article/details/7698415 一个由C/C++编译程序占用内存分为以下几个部分1.栈区(stack ...

  10. 如何让邮件营销平台成为EDM神器?

    任何一家做邮件营销的企业都希望自己的投入获得超乎想象的回报,出现打开率.点击率和伴随而来的成交量能够节节攀升的现象,这些数据我们当然可以通过监测各种平台的反馈而得到确切的报表.当然,作为邮件营销平台运 ...