进程同步

 

      本篇博客参考书籍:操作系统概念 第七版  高等教育出版社

 

       首先我们应该搞懂几个概念然后再进行讨论进程同步

       首先什么是进程? 

     进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。    进程在执行时的状态包括:新的,运行,等待,就绪,终止。进程区别于线程,一个进程是一个只能进行单个执行线程的程序。进程一次只能执行一个任务。

     什么是进程调度?

     进程调度是选择一个可用的进程(可能从多个可用进程集合中选择)到CPU上执行。

     什么是线程?

   线程是CPU的基本单元,它由线程ID,程序计数器,寄存器集合和栈组成。它与属于同一进程的其他线程共享代码段,数据段,和其他操作系统资源。如打开文件和信号。

 下面我们还是讨论进程同步

      协作进程是可以与在系统内执行的其他进程相互影响的进程。互相协作的进程可以直接共享逻辑地址空间(即代码和数据)或者只通过文件或消息来共享数据。前者可通过轻量级进程或线程实现。共享数据的并发访问可能会产生数据的不一致。下面我们们讨论一下各种机制,以确保共享同一逻辑地址空间的协作进程可有序的执行,从而能维护数据的一致性。

    多个进程并发访问和操作同一数据且执行结果与访问发生的特定顺序有关,成为竞争条件。为了避免这种情况,需要确保一个时间内只有一个进程能操作变量。为了实现这种保证,要求进行一定形式的进程同步。因此引出了临界区问题。

临界区问题

  假如某个系统有N个进程,每个进程有一个代码段称为临界区(不同进程访问同一共享数据的代码段),在该区中进程可能改变共同变量,更新一个表,写一个文件等。临界区问题是护色剂一个以便进程协作的协议。 

 一个进程的通用结构。

do{
   进入去
   临界区 
   退出区
   剩余区
}
while(TRUE);

 临界区必须满足如下三项要求:

   互斥,如果进程Pi在其临界区执行那么其他进程就不能在其临界区执行、

   前进,如果没有进程在其临界区内执行,且有进程需要进入临界区,那么只有那些不在剩余区内执行的进程可以参加选择,以确定谁能进入临界区,且这种选择不能无限推迟

   有限等待,从一个进程做出进入临界区的请求,直到该请求允许为止,其他进程允许进入临界区的次数有限。

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值