编辑: 思念那么浓 | 2014-05-23 |
如果此刻该临界资源正被某进程访问,则本进程不能进入临界区.因此,必须在临界区前面增加一段用于进行上述检查的代码.相应地,在临界区后面也要加上一段代码,用于将临界区正被访问的标志恢复为未被访问标志. 11.什么是进程的同步与互斥? 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性.但互斥无法限制访问者对资源的访问顺序,即访问是无序的. 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问.在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的.少数情况是指可以允许多个访问者同时访问资源 12.为什么要在操作系统中引入线程? 答:在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具 有更好的并发性,提高CPU的利用率.进程是分配资源的基本单位,而线程则是系统调度的基本单位. 13.什么是线程?它与进程有什么关系? 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;
同一个进程中的多个线程之间可以并发执行. 14.试从调度性、并发性、拥有资源及系统开销方面,对进程和线程进行比较. 调度性,在os中调度分派拥有资源的基本单位都是进程,而线程作为调度和分派的基本单位而把进程作为资源拥有的基本单位;
并发性,在引入线程的os中不仅进程之间可以相互切换亦可并发执行;
资源拥有,进程是拥有资源的独立单位而线程一般不拥有资源但他可以访问其隶属其进程的资源;
系统开销,由于在创建或撤销进程时系统都要为之分配和回收资源,os所付出的开销将显著地大于在创建或撤销线程时的开销而线程切换只需保存和设置少量寄存器的内容并不涉及存储器管理方面的操作进程切换的开销也远大于线程切换的开销. 15.如何利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明之. 进程互斥 定义:两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥. 在多道程序环境下,存在着临界资源,它是指多进程存在时必须互斥访问的资源.也就是某一时刻不允许多个进程同时访问,只能单个进程的访问.我们把这些程序的片段称作临界区或临界段,它存在的目的是有效的防止竞争条件又能保证最大化使用共享数据.而这些并发进程必须有好的解决方案,才能防止出现以下情况:多个进程同时处于临界区,临界区外的进程阻塞其他的进程,有些进程在临界区外无休止的等待.除此以外,这些方案还不能对CPU的速度和数目做出任何的假设.只有满足了这些条件,才是一个好的解决方案. 访问临界资源的循环进程可以这样来描述: Repeat entry section Critical sections;
exit section Remainder sect........