一起答
主观

19. 在解决死锁的方法中,哪种方法最浪费资源?哪种方法最容易实现?如果死锁发生的可能性很小,用哪种方法最好?

参考答案
查看试卷详情
相关试题
  1. 27. 信号可以直接传送信息内容。( )

    • 正确
    • 错误
  2. 28. 若进程资源分配和等待图中含有圈,则一定有进程处于死锁状态。( )

    • 正确
    • 错误
  3. 25. 利用信号量既能实现进程间的同步,也能实现进程间的互斥。( )

    • 正确
    • 错误
  4. 26. 中断和信号都有优先级。( )

    • 正确
    • 错误
  5. 24. 普通用户能用文件的creat系统调用实现锁操作。( )

    • 正确
    • 错误
  6. 23. 锁可以用于控制临界段的互斥执行。( )

    • 正确
    • 错误
  7. 21. 有两个生产者a、b不断向仓库存放产品,由销售者c取走仓库中的产品(仓库初态产品数为0,仓库容量为无限大)。请写出通过semWait、semSignal操作实现三个进程间的同步和互斥的框图或伪程序,并写出信号量的初值和意义。

  8. 22. 变量也可以是一个临界资源。( )

    • 正确
    • 错误
  9. 19. 在解决死锁的方法中,哪种方法最浪费资源?哪种方法最容易实现?如果死锁发生的可能性很小,用哪种方法最好?

  10. 20. 用纯用户软件实现进程的互斥。对共享资源的访问要互斥进行,进程级的互斥可以通过系统提供的锁和信号量等实现,也可通过纯软件实现。用纯软件实现进程互斥地进入临界段的方法既可用于单处理机环境,也可用于多处理机环境,只要这些处理机能共享同一个存储区,且诸进程对同一主存单元的访问是串行地进行的,除此以外不需要任何硬件、操作系统或程序设计语言的特殊支持。

    通过纯软件来实现进程间的互斥所需共享存储区,就要通过共享内存的系统调用shmget、shmat获得。父进程的全局变量在创建子进程后,两者也是分开存放的,故即使父子进程之间也不能通过全局变量进行通信。

    线程能有效地增强不同执行程序之间的通信效率。在大多数的操作系统中,独立进程之间的通信需要与核心交互,以提供进程通信所需的机制。可是,由于在同一进程中的线程共享内存,它们之间的通信就不需要调用核心。

    由于同一个进程中的所有线程共享进程的资源,它们驻留在相同的地址空间和访问相同的数据。如一个线程修改了存储空间中的一项数据,其他线程访问该数据项时也会获得改变了的结果。故子线程之间就能通过进程的全局变量进行通信,也能用全局变量实现纯软件的安全锁。

    试编一个多线程并发的程序,用纯软件来实现对共享资源的访问计数,最简单的互斥共享资源就是共享计数变量。