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. Angular-学习。

     今天刚学了点关于Angular的知识,就迫不及待的想跟大家来分享. 1.angular.extend ( )方法可以把一个或多个对象中的方法和属性扩展到一个目的对象中. <script typ ...

  2. [WINCE|VS2008] 用在PC上调试WINCE程序

    http://www.danielmoth.com/Blog/deploy-to-my-computer.aspx 作者:The Moth 步骤: 1. 在VS2008中打到 Device Optio ...

  3. mysql-5.7 持久化统计信息详解

    一.持久化统计信息的意义: 统计信息用于指导mysql生成执行计划,执行计划的准确与否直接影响到SQL的执行效率:如果mysql一重启 之前的统计信息就没有了,那么当SQL语句来临时,那么mysql就 ...

  4. [控件] CircleView

    CircleView 效果图: 源码: // // CircleView.h // YXMWeather // // Created by XianMingYou on 15/2/17. // Cop ...

  5. [翻译] TGLStackedViewController

    TGLStackedViewController A stack layout with gesture-based reordering using UICollectionView -- insp ...

  6. OC实用转换model的工具

    OC实用转换model的工具 说明 这是本人写的一个专门用来将json数据直接转换生成Model文件的工具,目的是为了让你从写Model文件的繁琐过程中解脱出来,提升效率以及减少出错的几率,工具的特点 ...

  7. php常用算法和数据结构

    </pre><pre name="code" class="php"><?php /** * Created by PhpStor ...

  8. 17:54 思维导图coggle布置好了

    钱不是好赚的,要赚钱就要冒险,就会有损失.为了家庭还是旱涝保收一点好,没有现金流什么都是白搭,通过博客来学习也是件不错的是,问题是我现在完全没有想法,比如冒泡算法什么的,没有概念,背不出来,其实可以推 ...

  9. Spring源码分析之IOC容器(一)

    Spring作为当今风靡世界的Web领域的第一框架,作为一名Java开发程序员是一定要掌握的,除了需要掌握基本的使用之外,更需要掌握其实现原理,因为我们往往在开发的过程中,会出现各种各样的异常问题.而 ...

  10. 鲜为人知的 Python 语法

    所有人(好吧,不是所有人)都知道 python 是一门用途广泛.易读.而且容易入门的编程语言.   但同时 python 语法也允许我们做一些很奇怪的事情.   使用 lambda 表达式重写多行函数 ...