当前位置:  技术问答>linux和unix

操作系统的并发性

    来源: 互联网  发布时间:2016-04-20

    本文导语:  近日看操作系统由以下问题不解:请高手站出来让我等顿悟 题:两个并发执行的程序段完成交通流量的统计,其中“观察者"P1识别通过的车辆数,“报告者”p2定时将观察者的计数值清零,程序实现如下:    P1 ...

近日看操作系统由以下问题不解:请高手站出来让我等顿悟


题:两个并发执行的程序段完成交通流量的统计,其中“观察者"P1识别通过的车辆数,“报告者”p2定时将观察者的计数值清零,程序实现如下:

   P1                              P2

L1:if 有车通过 then             L2:Print Count;    
   Count:Count+1                   Count:0;
   Goto L1                         Goto L2;

结果:可能产生三种执行序列:
(1)Count:Count+1;Print Count; Count:= 0;
(2)Print Count; Coutn:0; Count:=Count+1;
(3)Print COunt; Count:=Count+1;Count:=0;


请问应如何理解这三个结果?
对(3)我的理解是已开始观察者开始计数直到定时时间到,这是开始执行报告者的Print Count;Print Count由于属与输出设备,所以不占CPU,这时观察者继续计数,但是Print Count比计数后少1或者几个数,打印完毕后,Count=0,清零,观察者从零开始计数,但是中间漏打印1或好几个车辆。

对(1),(2)应如何解释? 以上解释是否正确?  
并发的具体概念是同一时间间隔内的执行, 是不是结束的时间是相同的,但不是同一时间开始?

[size=24px]请高手领悟吾等愚昧之辈[/size]
           

|
并发并且没有加锁的执行序列:任何可能都有,即P1执行任何指令的后面都可能插入P2的指令执行,反之依然。当然P1,P2自己的指令执行的逻辑顺序是不变的。

(1)P1先执行到Count:Count+1,操作系统任务调度挂起P1,让P2执行,于是P2执行:Print Count;Count:= 0;
(2)P2先执行Print Count;Count:= 0;操作系统任务调度挂起P2,让P1执行,于是P2执行Count:Count+1;
(3)P2先执行Print Count;操作系统任务调度挂起P2,执行P1,于是P1执行:Count:=Count+1;然后操作系统任务调度又挂起P1,执行P2,于是P2执行下一条指令:Count:=0; 

并发简单地讲就是:同一时间间隔内有多个任务在"同时"执行;这里的同时只有在多CPU上才是真的同时,在单CPU上,每一个时刻上只有一个任务运行,但是在从宏观的一端时间看,是多个任务在交错执行;

不太可能这几句话就说清除了,建议楼主动手写个多线程或者多进程程序自己体验下应该比较深刻!
good luck!


    
 
 

您可能感兴趣的文章:

  • 用RMI进行远程对象调用的时候,可不可以实现多个调用远程对象的并发操作
  • 如何在linux进行串口操作,并发AT命令?
  • 求助。。。怎样保证并发的多线程不要同时操作同一个文件?
  • java 集合并发操作出现的异常ConcurrentModificationException
  • 使用JAVA实现高并发无锁数据库操作步骤分享
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • 谁有操作系统PV操作的例子???谁有操作系统PV操作的例子???谢谢!!
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • windows 系统是否是多用户操作系统,如何理解“多用户操作系统”的“多用户”?
  • Linux下u盘文件系统相关操作
  • 正在学操作系统原理,做操作系统方面的实验用那种工具较好?
  • windows7操作系统介绍及各种使用技巧总结
  • 请问16位操作系统和32位操作系统的区别?
  • linux 操作系统下ps命令介绍
  • java执行操作系统命令的问题:如何判断多个操作系统?
  • Linux操作系统和Hurd操作系统
  • 怎样在装有红帽操作系统的机子进行格式化,重新装Windows操作系统?
  • 请问各位,我想学习linux,是装linux操作系统还是在虚拟机下装操作系统呢?那种好点啊
  • 可不可以这样认为!c语言是一道唯一指向操作系统的语言,精通了它,就了解了操作系统?
  • 已安装了Windows操作系统,还想安装Linux。却还想在开机选择操作系统时由Windows引导,请问如何操作。在线等待
  • windows操作系统做服务器,客户端是unix操作系统,如何配置unix才能上网
  • ARM系列开发板是不是一定要用LINUX操作系统。windows操作系统可以吗?
  • 在window 的操作系统里,应该有个软件可以实现,安装一个虚拟的linux操作系统
  • 32位操作系统和64位操作系统字符存贮的区别?急
  • 请问netware 是不是操作系统, 为什么csdn 的操作系统栏里面没有设置它的。
  • itron与rtlinux实时操作系统各自的优点与缺点。我现在有一个项目。想权衡综合考虑用那一个操作系统。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Stacks(堆栈) 成员 操作:比较和分配堆栈
  • 什么样的操作最耗费服务器的IO操作?
  • C++ Strings(字符串) 成员 Operators:操作符,用于字符串比较和赋值
  • 请问命令行操作下怎么改Linux操作系统的日期和时间?
  • C++ I/O 成员 flags():操作flags
  • 基于linux操作系统之上操作LCD问题,急???
  • C++ I/O 成员 width():操作域宽度
  • 哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • c#对象中两种copy操作:深拷贝(Deep Copy)与浅拷贝(Shallow Copy)
  • 如何在一个用户对application操作时防止别的用户对它操作?(好难啊)
  • Xcode介绍及创建工程和工程依赖操作步骤
  • 1哪位大侠知道Linux里的有名管道传送数据快不快?有名管道操作的过程是否有读写硬盘的操作?
  • MyEclipse如何查看和设置文件编码格式相关操作
  • C#操作txt文件,进行清空添加操作的小例子
  • Html checkbox标签如何设置默认选中以及用js操作checkbox代码示例
  • linux 的命令操作和 windows的命令提示行有什么不同呢?? 为什么windows一般都不用命令提示行操作呢??
  • c/c++ 操作符优先级参考
  • linux 怎么也能用鼠标操作?? 我的系统是Ubuntu ,不是说linux都用代码操作么??
  • javascript操作html复选框checkbox:如何判断复选框是否被选中
  • 请问我本机操作系统是2K,如何远程操作RedHat9?
  • Plesk 中操作和设置 Docker 容器
  • 关于设备操作的一点迷惑:计算机如何知道驱动程序要操作的设备正好是指定的设备?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3