Advertisement

0x10 同步

阅读量:

多道程序设计技术是现代操作系统的基础。在进程并发执行时。各个协同进程运行次序的不同会导致不同的运行结果,从而出现运行错误。

数据不一致性

在现代操作系统的应用中得到了多种多样化的技术手段的支持。当前系统运行的常见特征是若干个进程中既可同时又可依次地执行任务。任何进程中一旦被中断后,在运行过程中仅有其自身相关的代码块能够继续执行。

共享资源的并发/并行访问 :一致性问题又称为不可重复性:同一个系统实例在同一时间段内对相同资源执行的不同操作会产生不同的结果。

数据不一致性例子:有界缓冲

例子:n个缓冲区的有界缓冲问题

  • 定义变量counter并将其初始化为0;
    • 当向缓冲区添加一项时,则counter增1;
    • 当从缓冲区移除一项时,则counter减1。
在这里插入图片描述
  • 数据结构:
复制代码
    Shared data
    #define BUFFER SIZE 10
    typedef struct{
    	...
    }item; 
    item buffer[BUFFER_SIZE]; 

全部评论 (0)

还没有任何评论哟~