5.1 列出与并发相关的四种设计问题
进程间的交互,共享资源之间的竞争,多个进程的同步问题,对进程的处理器时间分配问题
5.2 列出并发的三种上下文
多个应用程序,结构化应用程序,操作系统结构
5.3 执行并发进程的最基本要求是什么?
加强互斥的能力
5.4 列出进程间的三种互相知道的程度,并简单地给出各自的定义。
进程间互相不知道对方:这是一些独立的进程,他们不会一起工作。
进程间间接知道对方:这些进程并不需要知道对方的进程ID号,但他们共享访问某些对象,如一个I/O缓冲区。
进程间直接知道对方:这些进程可以通过进程ID号互相通信,用于合作完成某些活动。
5.5 竞争进程和合作进程进程间有什么区别。
竞争进程需要同时访问相同的资源,像磁盘,文件或打印机。合作进程要么共享访问一个共有的资源,像一个内存访问区,要么就与其他进程相互通信,在一些应用程序或活动上进行合作。
5.6 列出与竞争进程相关的三种控制问题,并简单地给出各自的定义。
互斥:竞争进程仅可以访问一个临界资源(一次仅有一个进程可以访问临界资源),并发机制必须满足一次只有一个进程可以访问临界资源这个规则。
死锁:如果竞争进程需要唯一的访问多于一个资源,并且当一个进程控制着一个进程,且在等待另一个进程,死锁可能发生。
饥饿:一组进程的一个可能会无限期地拒绝进入到一个需要资源,因为其他
成员组成垄断这个资源。
5.7 列出对互斥的要求。
1.必须强制实施互斥:在具有关于相同资源或共享对象的临界区的所有进程中,一次只允许一个进程进入临界区。
2.一个在临界区停止的进程必须不干涉其他进程。
3.绝不允许出现一个需要访问临界区的进程被无限延迟的情况,即不会饿死或饥饿。
4.当没有进程在临界区中时,任何需要进入临界区的进程必须能够立即进入。
5.对相关进程的速度和处理器的数目没有任何要求和限制。
6.一个进程驻留在临界区中的时间是有限的。
5.8 在信号量上可以执行什么操作。
1.一个信号量可以初始化成非负数。
2.wait操作使信号量减1,如果值为负数,那么进程执行wait就会受阻。3signal操作使信号量增加1,如果小于或等于0,则被wait操作阻塞的进程被解除阻塞。
5.9 二元信号量与一般信号量有什么区别。
二元信号量只能取0或1,而一般信号量可以取任何整数。
5.10 强信号量与弱信号量有什么区别。
强信号量要求在信号量上等待的进程按照先进先出的规则从队列中移出。弱信号量没有此规则。
5.11 .什么是管程。
管程是由一个或多个过程,一个初始化序列和局部数据组成的软件模块。
5.12 对于消息,有阻塞和无阻塞有什么区别?
发送者和接收者任一方阻塞则消息传递需要等待,都无阻塞则不需等待。
5.13 通常与读者-写者问题相关联的有哪些条件?
1.任意多的读进程可以同时读这个文件
2.一次只有一个写进程可以往文件中写
3.如果一个写进程正在往文件中写时,则禁止任何读进程读文件。