1.解释并发与并行,并说明两者关系。
并发:老师甲先给学生A去讲思路,A听懂了自己书写过程并且检查,而甲老师在这期间直接去给B讲思路,讲完思路再去给C讲思路,让B自己整理步骤。这样老师就没有空着,一直在做事情,很快就完成了三个任务。与顺序执行不同的是,顺序执行,老师讲完思路之后学生在写步骤,这在这期间,老师是完全空着的,没做事的,所以效率低下。
并行:直接让三个老师甲、乙、丙三个老师“同时”给三个学生辅导作业,也完成的很快。
2.进程间有哪几种关系?分别要采取什么策略?
进程间存在竞争关系和协作关系,竞争关系可能会引发死锁和饥饿问题。解决饥饿问题最简单的策略是FCFS资源分配策略,这样,进程可以依次排队占用资源.。由于资源竞争引发的两个控制问题,需要向并发进程提供锁机制,在使用共享资源之前表达互斥要求,即对进程之间抢占资源进行规划竞争制约。
3.为什么说进程的互斥也是一种同步?
在操作系统中,当某一进程正在访问某一存储区域时,就不允许其他进程进行读写或者修改该存储区的内容,否则就会发生后果无法估计的错误。进程之间的这种相互制约的关系成为进程互斥。并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通信息称为进程同步。实际上进程互斥也是一种同步,他协调多个进程互斥进入同一个临界资源对应的临界区。
4.解释死锁与“饥饿”,并说明两者关系。
死锁:一组进程因增夺资源陷入永远等待的状态。
饥饿:由于其他进程总优先于某一进程,导致该进程长时间无法获取资源来进行调度,被无限期的拖延。
饥饿是因为优先级太低,其他进程一直在你之前抢夺资源,而死锁是两个或者多个进程,相互等待对方占有的资源,而又不能释放自己的资源,所以这些进程都进入死锁状态。
5.什么叫做临界区?如何解决进程对临界资源的访问冲突?
临界区:指的是一个访问共用资源的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待,有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用。
(1)一次至多只有一个进程进入临界区内执行。
(2)如果已有进程在临界区中,试图进入此临界区的其他进程应等待。
(3)进入临界区内的进程应在有限时间内退出,以便让等待队列中的一个进程进入。
6.信号量的物理意义是什么?
信号量是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。信号量分为单值和多值两种,前者只能被一个线程获得,后者可以被若干个线程获得。利用信号量和PV操作即可解决并发进程竞争问题,又可解决并发进程协作问题。
浙公网安备 33010602011771号