当前位置: 首页 > news >正文

建设网站项目的目的便捷的网站建设软件

建设网站项目的目的,便捷的网站建设软件,网站即将上线 模板,wordpress列表页显示tag1#xff0c;进程同步的几种方式 1.1信号量 用于进程间传递信号的一个整数值。在信号量上只有三种操作可以进行#xff1a;初始化#xff0c;P操作和V操作#xff0c;这三种操作都是原子操作。 P操作(递减操作)可以用于阻塞一个进程#xff0c;V操作(增加操作)可以用于…1进程同步的几种方式 1.1信号量 用于进程间传递信号的一个整数值。在信号量上只有三种操作可以进行初始化P操作和V操作这三种操作都是原子操作。 P操作(递减操作)可以用于阻塞一个进程V操作(增加操作)可以用于解除阻塞一个进程。 基本原理是两个或多个进程可以通过简单的信号进行合作一个进程可以被迫在某一位置停止直到它接收到一个特定的信号。该信号即为信号量s。 为通过信号量s传送信号进程可执行原语semSignal(s);为通过信号量s接收信号进程可执行原语semWait(s);如果相应的信号仍然没有发送则进程会被阻塞直到发送完为止。 可把信号量视为一个具有整数值的变量在它之上定义三个操作 一个信号量可以初始化为非负数semWait操作使信号量s减1.若值为负数则执行semWait的进程被阻塞。否则进程继续执行。semSignal操作使信号量加1若值大于或等于零则被semWait操作阻塞的进程被解除阻塞。 1.2管程 管程是由一个或多个过程、一个初始化序列和局部数据组成的软件模块其主要特点如下 局部数据变量只能被管程的过程访问任何外部过程都不能访问。一个进程通过调用管程的一个过程进入管程。在任何时候只能有一个进程在管程中执行调用管程的任何其他进程都被阻塞以等待管程可用。 管程通过使用条件变量提供对同步的支持这些条件变量包含在管程中并且只有在管程中才能被访问。有两个函数可以操作条件变量 cwait©调用进程的执行在条件c上阻塞管程现在可被另一个进程使用。csignal©恢复执行在cwait之后因为某些条件而阻塞的进程。如果有多个这样的进程选择其中一个如果没有这样的进程什么以不做。 1.3消息传递 消息传递的实际功能以一对原语的形式提供 send(destination,message)receive(source,message) 这是进程间进程消息传递所需要的最小操作集。 一个进程以消息的形式给另一个指定的目标进程发送消息 进程通过执行receive原语接收消息receive原语中指明发送消息的源进程和消息。 2、进程互斥 由于进程具有独立性和异步性等并发特征计算机的资源有限导致了进程之间的资源竞争和共享也导致了对进程执行过程的制约。 1.临界区相关概念 临界资源也就是一次只允许一个进程操作使用的计算机资源这里的资源可以是物理资源也可以是逻辑上的变量等。 临界区把不允许多个并发进程交叉执行的一段程序称为临界区critical region或临界部分critical section。 当一个进程使用该临界资源时其他需要访问该资源的进程必须阻塞直到占用者释放该资源。 2、间接制约 把这种由于共享某一公有资源而引起的在临界区内不允许并发进程交叉执行的现象称为由共享公有资源而造成的对并发进程执行速度的间接制约。这里的“间接”二字主要是指各种并发进程的速度受公有资源的制约而非进程之间的直接制约。 3.进程互斥 在并发进程中一个或多个进程要对公用资源进行访问时必须确保该资源处于空闲状态也就是说在并发进程中临界区只允许一个进程进入而其他进程阻塞等待该共享临界资源释放。 4.并发进程之间必须满足以下特征 **平等竞争**即各并发进程享有平等地、独立地竞争共有资源的权利且在不采取任何措施的条件下在临界区内任意指令结束时其他并发进程可以进入临界区。互斥使用当并发进程中的时候 多个进程同时申请进入临界区时它只允许一个进程进入临界区。**不可独占**当进程不在临界区后它不能阻止其他进程进入临界区。**有限等待**也就是在就绪队列中的进程等待资源时间必须是有限的。并发进程中的某个进程从申请进入临界区时开始应在有限时间内得以进入临界区。 3、互斥的实现 2.1互斥的加锁实现 对互斥的临界区进行加锁处理即当一个进程进入了 临界区之后对此临界区进行加锁直到该进程退出临界区为止。而其他并发进程在申请进入临界区之前必须测试该临界区是否加锁如果是则阻塞等待 加锁实现是系统的原语lock(key[S])和Unlock(key([S]))均保持原子操作。系统实现时锁定位key[S]总是设置在公有资源所对应的数据结构中的。 2.2互斥加锁实现的缺点 1.在进行锁测试和定位中将耗费CPU资源 2、进程加锁实现可能会对进程不公平 例如 进程A: lock(key[S]) S unlock(key[S]) Goto A进程B lock(key[S]) S unlock(key[S]) Goto B如上面所示进程A和B之间的一个进程运行到Goto之后会使得另一个进程无法得到处理机资源运行。而处于永久饥饿状态starvation。 分析可以知道一个进程能否进入临界区取决于进程自己调用lock过程去测试相应的锁定位。也就是说每个进程能否进入临界区是依靠进程自己的测试判断。这样没有获得执行机会的进程当然无法判断从而出现不公平现象。 那么是否有办法解决这个问题呢当然很明显办法是有的我们可以为临界区设置一个管理员由这个管理员来管理相应临界区的公有资源它代表可用资源的实体这个管理员就是信号量。 2.3信号量和P、V操作 信号量和P、V原语是荷兰科学家E. W. Dijkstra提出来的。 **P原语**P是荷兰语Proberen**测试的首字母。为阻塞原因负责把当前进程由运行状态转换为阻塞状态直到另外一个进程唤醒它。操作方法申请一个空闲资源把信号量减1若成功则退出若失败则该进程会被阻塞 V原语V是荷兰语Verhogen增加的首字母。为唤醒原语负责把一个被阻塞的进程唤醒它有一个参数表存放着等待被唤醒的进程信息。操作为释放一个被占用的资源把信号量加1如果发现有被阻塞的进程则选择一个唤醒之。 【信号量semaphore】 在操作系统中信号量sem是一个整数。 sem 0时代表可供并发进程使用的资源实体数sem 0时表示正在等待使用临界区的进程数。 显然用于互斥的信号量sem的初值应该大于0而建立一个信号量必须说明所建信号量代表的意义赋初值以及建立相应的数据结构以便指向那些等待使用该临界区的进程。sem初值为1。 【P、V原语】 信号量的数值仅能由P、V原语操作改变。采用P、V原语可以把类名为S的临界区描述为When S do P(sem) 临界区 V(sem) od。 一次P原语操作使信号量sem减1一次V原语操作使信号量sem加1 P原语操作 sem减1 若sem减1后仍大于或等于0则P原语返回该进程继续执行 若sem减1后小于0则该进程被阻塞后进入与该信号相对应的队列中然后转进程调度。 V原语操作 sem加1 若相加结果大于0V原语停止执行该进程返回调用处继续执行 若相加结果小于或等于0则从该信号的等待队列中唤醒一个等待进程然后再返回原进程继续执行或转进程调度。 这里给出一个使用加锁法的软件实现方法来实现P、V原语 P(sem):begin封锁中断;lock(lockbit)val[sem]val[sem]-1if val[sem]0保护当前进程CPU现场当前进程状态置为“等待”将当前进程插入信号sem等待队列转进程调度fiunlock(lockbit);开放中断end V(sem):begin封锁中断;lock(lockbit)val[sem]val[sem]1if val[sem]0local k从sem等待队列中选取一个等待进程将其指针置入k中将k插入就绪队列进程状态置位“就绪”fiunlock(lockbit);开放中断end2.3用P、V原语实现进程互斥 设信号量sem是用于互斥的信号量且其初始值为1表示没有并发进程使用该临界区。显然由前面论述可知只要把临界区置于P(sem)和V(sem)之间即可实现进程之间的互斥。 用信号量实现两个并发进程PA和PB互斥的描述如下 1设sem为互斥信号量其取值范围为10-1。其中sem1表示进程PA和PB都未进入类名为S的临界区sem0表示进程PA或PB已进入类名为S的临界区sem-1表示进程PA和PB中一个进程已进入临界区而另一个进程等待进入该临界区。 2实现过程 Pa:P(sem)SV(sem)... Pb:P(sem)SV(sem)...4进程互斥的软件实现方法 1单标志法 1在进入区只检查不上锁 2在退出区把临界资源的使用权交给另一个进程 3主要问题不遵循空闲让进的原则 2双标志先检查 1在进入区先检查后上锁退出区解锁 2主要问题不遵循原则等待原则 3双标志后检查 1在进入区先 上锁后检查退出区解锁 2主要问题不遵循空闲让进有限等待原则可能导致饥饿 4Peterson算法 1在进入区主动争取——》主动谦让——》检查对方是否想进己方是否谦让 2主要问题不遵循让则等待原则会发送忙等 5、进程同步 【进程间的直接制约】一组在异步环境下的并发进程各自的执行结果互为对方的执行条件从而限制各进程的执行速度的过程称为并发进程间的直接制约。这里的异步环境主要是指各并发进程的执行起始时间的随机性和执行速度的独立性。 【进程间的同步】把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合作、互相等待使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程合作进程间相互发送的信号称为消息或事件。 用消息实现进程同步 用 wait(消息名) 表示进程等待合作进程发来的消息。 用 signal(消息名) 表示向合作进程发送消息。 过程wait的功能是等待到消息名为true的进程继续执行而signal的功能则是向合作进程发送合作进程所需要的消息名并将其值置为true。 进程互斥和进程同步】 进程同步不同于进程互斥进程互斥时它们的执行顺序可以是任意的。一般来说也可以把个进程之间发送的消息作为信号量看待。与进程互斥时不同的是这里的信号量只与制约进程及被制约进程有关而不是与整租并发进程有关。因此称该信号量为私用信号量private semaphore。一个进程Pi的私用信号量semi是从制约进程发送来的进程Pi的执行条件所需要的信息。与私用信号量相对应称互斥时使用的信号量为公用信号量。 【用P、V原语实现进程同步】 首先为各并发进程设置私用信号量然后为私用信号量赋初值最后利用P、V原语和私用信号量规定各进程的执行顺序。 进程之间发送的消息作为信号量看待。与进程互斥时不同的是这里的信号量只与制约进程及被制约进程有关而不是与整租并发进程有关。因此称该信号量为私用信号量private semaphore。一个进程Pi的私用信号量semi是从制约进程发送来的进程Pi的执行条件所需要的信息。与私用信号量相对应称互斥时使用的信号量为公用信号量。 【用P、V原语实现进程同步】 首先为各并发进程设置私用信号量然后为私用信号量赋初值最后利用P、V原语和私用信号量规定各进程的执行顺序。
http://www.w-s-a.com/news/77254/

相关文章:

  • 淄博网站制作企业高端长沙企业网站制作服务报价
  • 网站服务理念中外商贸网站建设
  • 如何自己建立网站中国建设银行网站忘记密码
  • 什么是a站如何在12366网站上做实名认证
  • 斗蟋蟀网站建设谭谭心怎么建设网站
  • 优秀网站开发商郑州网站建设套餐
  • 做伤残鉴约号网站购物网站建设新闻
  • 黄江网站建设公司自己房子做民宿挂什么网站
  • 手游网站做cpc还是cpm广告号宣武郑州阳网站建设
  • vs连接数据库做网站建立网站
  • 电商网站设计图片素材p2p网站建设石家庄
  • 莲塘网站建设如何文字推广一个婚恋网站
  • 医院网站建设工作汇报WordPress不发邮件了
  • 怎么做外语网站个人网页设计作品ps
  • 网站原型怎么做vps如何建两个网站
  • 商城网站建设源码嘉兴seo计费管理
  • 城乡建设网站证件查询系统wordpress 时间代码
  • php网站建设 关键技术做网站哪家正规
  • 网站开发用什么写得比较好谷歌的英文网站
  • 青岛网站建设公司在哪vivo手机商城
  • 兼职刷客在哪个网站做哪个网站做淘宝客
  • 眼科医院网站开发网络营销特点是什么
  • 提交网站给百度增加wordpress插件
  • 网站建设企业官网体验版是什么Wordpress哪个模板最快
  • 美丽说网站模板湖北可以做网站方案的公司
  • 北京西站进站最新规定建设网站的提成是多少
  • wordpress站点如何加速网站建设描述怎么写
  • 如何免费建造网站免费vi模板网站
  • 商丘做网站多少钱扬州大发网站建设
  • 网站建设哪家性价比高自己做项目的网站