1. 进程间同步是指多个进程在系统中
系统中进程队列分为3类:
1 就绪队列。
2 等待队列。
3 运行队列。在单机系统中整个系统只有一个。实际上,一个运行队列中只有一个进程。进程同步是进程之间一种直接的协同工作关系,是一些进程相互合作,共同完成一项任务。进程之间间接相互作用构成进程同步。各个进程互相排斥使用这些资源,进程之间的这种关系是进程的互斥。进程之间的间接相互作用叫做进程的互斥。
2. 进程间同步是指多个进程在系统中进行
同步是阻塞模式,异步是非阻塞模式。同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。
3. 进程间的同步是指并发进程之间存在一种( )关系
进程同步:并发进程在执行次序上的协调,以达到有效的资源共享和相互合作,使程序执行有可再现性。
4. 进程间的同步是指
由于进程具有独立性和异步性等并发特征,计算机的资源有限,导致了进程之间的资源竞争和共享,也导致了对进程执行过程的制约。
5. 操作系统中,要对并发进程进行同步的原因是
Baci定理
C语言中的平台
BACI是一个可以编写并发程序的环境,在这种并行的编译环境中,可以把BACI中的一些语句嵌入到C++,C,Java等高等程序中,使程序可以并行执行。
基本介绍
BACI提供了一个可以编写并发程序的环境,在这个平台上,我们可以很容易的模拟程序的并发执行。
基于C++的BACI语法(C—BACI Compiler)该语法结构是在C++语法结构的基础上,增加一些并发语句扩展而来,一下是一些常用的并发语句
1. cobegin函数
在BACI系统中,并发进程与并发线程同步,多个进程可以并发的在cobegin 块中来并发执行,该函数必须在主函数中,语法结构为:cobegin {
proc1(...);proc2(...);. . . . procN(...);}
其中每个进程并发随机执行,每次执行的顺序可能会不一样,当所有的进程接受后,该函数结束。
2. Semaphores/Binarysem
信号量的(Semaphores)机制可以更方便的实现进程同步,Semaphores是一种如C中”int”一样的类 型,可以用来定义信号量类型的变量,Binarysem是一种二进制信号量,它所定义的变量只能取1或 0,用来表示互斥。
1).信号量的声明和初始化semaphores a;binarysem s;
上面声明了两个信号量a,b,其中b为二进制信号量信号量按如下方式初始化:
Initialsem(semaphores , interger);
Initialsem(binarysem , 0/1);
2)P(wait)/V(signal)函数强大的PV操作与信号量一次很方便的解决了并发进程同步与互斥问题
函数原型:
void p(semaphores &s); or void wait(semaphores &s);
void v(semaphores &s); or void signal(semaphores &s);
函数说明:
p(sem): 如果sem > 0,则sem减1,调用P的进程可以继续执行,如果sem=0,则该进程阻塞,该函数操作是原子性的.v(sem): 如果v=0,或有进程阻塞,则将其唤醒,如果没有进程等待,将sem加1,在任何时候调用v的进程可以继续执行,其操作也是原子的.
3.atomic
atomic关键字定义了原子操作,即该函数操作不可剥夺,每次只能一个进程访问用法:在要原子执行的函数前加atomic即可,如:atomic int sum(){. . . ..}
则sum()函数就可以原子操作了
4.void suspend(void)suspend函数将调用的线程挂起
5.void revive (int process_number)
该函数用于唤醒某个进程,其进程号为process_number
6. 进程的同步是指并发进程之间的一种
一个信号量只能置一次初值,以后只能对之进行p操作或v操作。
由此也可以看到,信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。信号量机制功能强大,但使用时对信号量的操作分散, 而且难以控制,读写和维护都很困难。加重了程序员的编码负担;核心操作P-V分散在各用户程序的代码中,不易控制和管理;一旦错误,后果严重,且不易发现和纠正。(b)自旋锁: 旋锁是为了保护共享资源提出的一种锁机制。调用者申请的资源如果被占用,即自旋锁被已经被别的执行单元保持,则调用者一直循环在那里看是否该自旋锁的保持着已经释放了锁。自旋锁是一种比较低级的保护数据结构和代码片段的原始方式,可能会引起以下两个问题;1、死锁
2、过多地占用CPU资源 传统自旋锁由于无序竞争会导致“公平性”问题 (c)管程: 信号量机制功能强大,但使用时对信号量的操作分散,而且难以控制,读写和维护都很困难。因此后来又提出了一种集中式同步进程——管程。其基本思想是将共享变量和对它们的操作集中在一个模块中,操作系统或并发程序就由这样的模块构成。这样模块之间联系清晰,便于维护和修改,易于保证正确性。(d)会合: 进程直接进行相互作用 (e)分布式系统: 由于在分布式操作系统中没有公共内存,因此参数全为值参,而且不可为指针。(f)原语 是不可中断的过程。
7. 进程的同步是进程的什么关系
一、方式1、管道(Pipe)及有名管道(mkpipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
2、信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身。
linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction。
实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数。
3、消息队列(Message):消息队列是消息的链接表,包括Posix消息队列systemV消息队列。
有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。
消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
4、共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。
是针对其他通信机制运行效率较低而设计的。
往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
5、信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
6、套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。
起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和SystemV的变种都支持套接字。二、概念进程间通信概念:IPC—-InterProcessCommunication 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到所以进程之间要交换数据必须通过内核。
在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。扩展资料1)无名管道:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)。
管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,构成两进程间通信的一个媒介。
数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。
写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。
2)有名管道:不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。
这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIFO的创建进程之间)。
因此,通过FIFO不相关的进程也能交换数据。值得注意的是,FIFO严格遵循先进先出(firstinfirstout),对管道及FIFO的读总是从开始处返回数据,对它们的写则把数据添加到末尾。
它们不支持诸如lseek()等文件定位操作。
8. 进程同步主要是对多个相关进程在什么上进行协调
进展同步是指在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。
进展同步的任务就是对多个相关进程在执行顺序上进行协调,使并发执行的多个进程之间可以有效的共享资源和相互合作,保证程序执行的可再现性。
进展分析是确定项目工作未完成部分最早和最晚的开始和完成日期的过程。包括识别关键路径和有负时差的活动路径,及与预定进度偏离的路径。
9. 同步是指进程之间逻辑上的
会话层。
OSI(Open System Interconnect)即开放式系统互联。一般称之为OSI参考模型,1985年ISO(国际标准化组织)组织研究的网络互连模型。此构造标准定义了网络通信互联的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层)。
10. 进程间同步是指多个进程在系统中的
进程同步是指在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。进展同步的任务就是对多个相关进程在执行顺序上进行协调,使并发执行的多个进程之间可以有效的共享资源和相互合作,保证程序执行的可再现性。
进展分析是确定项目工作未完成部分最早和最晚的开始和完成日期的过程。包括识别关键路径和有负时差的活动路径,及与预定进度偏离的路径。
11. 进程的同步是指进程间在逻辑上的相互
所谓同步信号,即传输待接收的数据和时钟信号均由发送方产生。FPGA应用中,常常需要产生一些源同步接口信号传输给外设芯片,这对FPGA内部产生时钟或数据的逻辑和时序都有较严格的要求。
而对于一些FPGA采集信号的应用中,常常也有时钟和数据均来自外设芯片的情况,此时对数据和时钟的采集也同样需要关注FPGA内部的逻辑和时序。当然,无论何种情况,目的只有一个,保证信号稳定可靠地被传送或接收。
- 相关评论
- 我要评论
-