一起答

全国自考操作系统(进程通信)模拟试卷4

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 28. 银行家算法是死锁预防算法。( )

    • 正确
    • 错误
  2. 27. 能将信号发送给消息队列。( )

    • 正确
    • 错误
  3. 26. 信号处理程序能在用户态下运行。( )

    • 正确
    • 错误
  4. 24. 为了实现计算进程和打印进程之间的相互同步,就需要设置一个信号量S。( )

    • 正确
    • 错误
  5. 25. 读者和写者问题是进程间的同步与互斥问题。( )

    • 正确
    • 错误
  6. 22. 在分配磁盘等共享设备时,可能会引起死锁。( )

    • 正确
    • 错误
  7. 23. 锁有三个状态值:-1,0,1。( )

    • 正确
    • 错误
  8. 19. 编一个C程序,使用户进程的全局变量作为输入输出的缓冲区,线程1一次读入一个字符串,将其存入缓冲区,线程2从缓冲区取出数据,输出打印,用线程的条件变量实现两个线程间的同步。程序调试成功后用I/O转向再测试程序,标准输入输出都改为文件。

    可以用条件变量实现线程之间的同步。条件变量就像是一面旗子,用于通知需要同步的进程。条件变量函数总是和互斥锁在一起使用。与一般的锁变量不同,与条件变量相关锁的常态是锁住的,而在执行了pthread_cond_wait(&flag,&lock)等待条件变量后,互斥锁lock就打开了,然后等待条件变量的变化。如果在调用此函数之前,互斥量没有被锁住,函数执行的结果是不确定的。在该函数返回之前,该函数自动将指定的互斥量重新锁住。

    pthread_cond_slgnal函数通过条件变量发消息。若有多个线程都在等待,只唤醒它们中的一个,但一般只用于一个线程等待该条件变量。

    有关的函数和操作定义如下:

    #include<pthread.h>

    #include<ctype.h>

    pthread_mutex_tmutex=PTHREAD_MOTEX_INITIALIZER;/*初始化锁*/

    pthread_cond_tcond=PTHREAD_COND_INITIALIZER;/*初始化条件变量*/

    pthread_cond_wait(pthread_cond_t*cond,pthread_mutex_t*mutex);

    /*等待条件变量cond,开互斥锁mutex*/

    pthread_cond_signal(pthread_cond_t*cond);/*通知条件变量cond状态变化*/

  9. 21. 编一个UNIX平台上的C程序。在程序的开始部分设置信号SIGUSR1的处理方式为执行delete程序。在创建子进程后,父进程向子进程发送信号SIGUSR1,并在子进程终止后显示子进程传来的返回参数。子进程发现已收到信号,就执行信号SIGUSR1所对应的处理程序delete,该程序删除当前目录下的core文件,如删除失败,终止本进程,传给父进程的参数为1,否则从delete程序返回后,子进程显示Success,传给父进程的参数为0。

  10. 20. 假如一个阅览室最多可容纳n个人,读者进入和离开阅览室时,都必须在每次只允许一个人写的登记表上做进入登记和离开登记,系统对读者进入和离开两个过程各建立一个控制进程,试用semWait、semSignal操作实现读者进入与读者离开间的协调关系。

  11. 18. 考虑有三个进程共享9个资源,它们的占有量和最大需求量如表所示。

    如三个进程均再申请两个资源,按照银行家算法,应该分配给谁?

  12. 17. 试说明资源的按序分配策略能防止死锁的原因。

  13. 16. 简述远程过程调用的步骤。

  14. 15. 在两个进程间的同步,如计算进程和打印进程的经典例子中,为什么对一个缓冲区要设置两个变量,是否能只设置一个变量,例如,当为0(缓冲区没数据)时P1执行,为1(缓冲区有数据)时,P2执行,可以这样实现吗?

  15. 14. 为什么单用布尔变量的锁是不安全的?

  16. 13. M个同类资源被n个进程共享时,设z为每个进程申请该类资源的最大量。只要不等式_______成立,则系统一定不会发生死锁。

  17. 10. 有m个进程共享一个同类临界资源,如使用信号量解决进程间的互斥问题,那么信号量的取值范围为_______。

  18. 11. 信号量当前值大于零时其数值表示_______。

  19. 12. 与E-mail类似的进程间数据通信机制是_______。

  20. 8. 相继地剥夺进程所占的资源,直至相关进程能继续运行是一种_______方法。

    • A.死锁预防
    • B.死锁避免
    • C.死锁检测
    • D.死锁解除
  21. 9. 在进程的同步和互斥问题中,可以用布尔变量实现_______。

  22. 5. 在_______情况下,计算机系统一定出现了死锁。

    • A.系统中所有的进程都处于封锁状态
    • B.进程申请的资源数大大超过资源总数
    • C.计算机硬件或软件系统发生重大故障
    • D.两个进程互相等待对方占有的资源
  23. 6. 在某一时刻,进程P1和P2执行或将执行各处于下列关于互斥资源的操作序列:进程P1申请到资源S1,申请资源S2,释放资源S1;进程P2已申请到资源S2,申请资源S1,释放资源S2,系统继续并发执行进程P1、P2,系统将_______。

    • A.必定产生死锁
    • B.可能产生死锁
    • C.不会产生死锁
    • D.无法确定是否会产生死锁
  24. 7. 系统共有9个磁带机,如每个进程最多分配3台磁带机,系统要限制_______个进程使用,就没有死锁的危险。

    • A.1
    • B.2
    • C.3
    • D.4
  25. 3. 下列机构中不能用于进程间数据通信的是_______。

    • A.消息
    • B.共享存储
    • C.信号量
    • D.管道
  26. 4. 在下面的Socket远程通信的系统调用中_______是客户端程序中要用到的系统调用。

    • A.bind
    • B.1isten
    • C.accept
    • D.connect
  27. 2. 若执行信号量S操作的进程数为3,信号量S初值为2,当前值为-1,表示有_______个等待相关临界资源的进程。

    • A.0
    • B.1
    • C.2
    • D.3
  28. 1. 不能利用_______实现父子进程间的互斥。

    • A.文件
    • B.外部变量
    • C.信号量
    • D.锁