现代操作系统中的多进程技术及其应用.pdf
《现代操作系统中的多进程技术及其应用.pdf》由会员分享,可在线阅读,更多相关《现代操作系统中的多进程技术及其应用.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实践与经验周炎涛,李立明(湖南省计算机高等专科学校,长沙4 1 0 0 1 2)摘要:进程作为资源的拥有者和操作系统中被调度的基本单元,是现代操作系统的重要概念;掌握多进程编程并应用于实际,可以加深对操作系统的认识,是每个优秀程序员必备的素质。本文通过基于K P C 的C l i e n t S e r v e r 进程应用程序的编写,讲述了实现进程并发的分布式计算。关键词:进程;远程过程调用;分布式计算;操作系统引言以多道程序设计技术为基础的现代操作系统应尽可能地发掘、控制实现计算机系统并发的活动,以充分利用计算机系统资源;并发程序设计语言作为一种高级语言,无论是对用户程序设计还是对系统程序
2、设计均有着极其重要的意义,而真正使并发程序并发地执行,还要依赖操作系统的进程或线程机制【”。U n i x 是多用户分时操作系统,多个用户同时在计算机上操作,共享计算机系统资源,其中进程作为系统资源管理和调度基本单位的复合实体,在内存里有“代码段”(存放程序代码的数据)、“堆栈段”(存放子程序的返回地址、参数以及程序局部变量)和“数据段”(存放程序全部变量、常数以及动态数据分配数据空间)三部分的数据 2 1,它在分时多用户系统中按时间片使用C P U 资源,在使用时每个进程都有自己的运行环境和运行状态。掌握进程知识、熟悉现代操作系统中多进程编程技术将加深对操作系统的认识,是每个优秀程序员必备的
3、素质。1进程的调用简单地说,一个进程由:一个可执行的程序;一个私用地址空间;至少有一个执行线程组成【3】。U n i x 中将一个可执行程序由系统内核读入系统存储区并加以执行时,它就成为一个进程。W i n d o w s 9 5 中进程就是一个e x e 文件的执行过程。当程序开始执行时,系统为它创建一个进程,分配相应的资源(c P u、内存等);在进程执行过程中,进程由系统的(进程)调度程序决定是否获得C P U,一个进程有用户态和核心态两种不同方式的运行状态;程序执行完毕,进程终止,系统收回所分配的资源。进程之间通过优先关系来定义执行次序,仅仅独立的进程可以并发执行。进程间是否满足B e
4、 m s t e i n 条件f 3】决定进程间的相互无干扰性。对确定性进程系统,由定理3 3 1 3 1 可以构造出与原始系统等价的具有最大并发性的进程系统。U n i x 系统中,用户创建一个新进程的系统调用就是f o r k()函数。调用f o r k()的进程称为父进程,而新创建的进程叫做子进程。父进程和子进程均在下一条语句上继续运行,f b r k()是惟一的调用一次、返回二次的系统调用;其中父进程接受到子进程的P I D(进程标识号),而子进程收到0 值,如果f o r k()系统调用失败,则返回一1 值。通过另一个系统调用e x e c(),子进程可以拥有自己的可执行代码;当进程
5、完成其代码时,在M O D E R NC O M P U T E R2 0 0 2 57 5 I现代计算机总第_-:一九期-万方数据实践与经验m a i n()中会执行一个返回,或通过一个系统调用e x i t()结束进程。多进程编程时可使用的系统调用很多,以下仅为执行几个基本U n i x 命令而编写的s h e l l 程序:#i n c l u d e#i n c l u d e#i n c l u d e#i n c l u d e#-d e f i n eM A X2 5 6#d e f i n eC M DM A X1 0c h a r+v a l i d _ e m d s=q
6、sp sd e h a tm a i n(v o i d)c h a rl i n e _ i n p u t M A X ,t h e _ e m d C M D _ M A X ;c h a r+n e w _ a r g s C M D _ M A X +e p;i n ti;w h i l e(1)p r i n f f(e m d ;i f(s e t s(1 i n e _ i n p u t)!=N U L L e p=l i n e _ i n p u t;i _ 0:i f(n e wa r g s i =s t r t o k(c p,1)!=N U L L)s p r i
7、 n f f(t h e _ _ e m d,s ,n e w _ a r g s i );i f“s t r s t r(v a l i d _ e m d s,t h e _ c m d)-v a l i d _ e m d s)4=1 d o+i:c p=N U L L;n e w _ a r g s i =s t r t o k(c p,1;1w h i l e(i C M D _ M A X-1&n e w _ a r g s i !=N U L L);n e wa r g s i】=N U L L;s w i t c h(f o r k()fc a s e0:e x e c v p
8、(n e w _ a r g s 0 ,n e w _ a r g s);p e r r o r(e x e cf a i l u r e 3;e x i t O);c a s e 一1 Ip e r r o r(f o r kf a i l u r e”);b r e a k;d e f a u l t:;)Je l s ep r i n f f(h a v en oi n p u t?、n 3;)l7 6M O D E R NC O M P U T E R2 0 0 2 51 一eJ虽然U n i x 环境有预定义的s h e l l,但通过上述类似程序编写,用户可以获得便于控制的环境。2
9、进程间的通讯(IP C)进程之间交换信息就称之为进程间通讯。要实现这种传递,必须要通过操作系统才能进行。信号机制是U n i x 进程间最基本最古老的通讯手段,其作用是实现进程间异步事件的通讯,系统调用k i H()和s i g n a l()构成了信号的基本操作。由于信号的特点,它并不能给进程直接传递任何数据,因此它本身不能作为一项通用的进程通讯机制,而是归为进程控制更为准确【4】。管道(p i p e)也是很常用的进程通讯形式,所有U n i x 系统都提供此种通讯机制,但它只能用于有“亲缘”关系的进程间;解决不相关进程间的数据交换使用有名管道(n a m e dp i p e)F I F
10、 O,其特点是适应进程间大量数据的传递,但不满足高速传送的要求。U n i x 操作系统进程间通讯机制I P C 提供三套进程通讯方法:消息队列其特点是格式化的通讯数据和收发消息的随意性,进程可以将消息发送给任意进程,接受进程可以按要求接受消息队列中的部分消息而不必全部接受。信号量它是一种用于不同进程间或一个给定进程的不同线程间进行同步的手段,为复杂的进程同步控制提供了良好的支持。共享内存特点是通讯的高速性,这种机制在内存里动态地分配了一个共享内存段,将该共享内存段分别映射到通讯进程间各自的地址空间,通过对自己的地址空间访问来达到进程间通讯目的。共享内存段是速度最快的进程间通讯手段,但当需要解
11、决读写内存段时的竞争问题时,常常用信号量来实现其互斥。分布式系统中,实现进程间通讯功能不能采用上述集中式操作系统中实现进程通讯的方法阁,此时进程问通讯原语集分为三种:基于信息传递;蕊师婵h:曾畀机兰脚竹斥一:一-F扎相州v 万方数据基于远程过程调用;基于事务处理。3基于R P C 的客户服务器进程远程过程调用(R P C)是基于C l i e n t S e r v e r 通讯模型的一种同步通信方式,它为客户透明地访问服务器方的过程提供了有效的手段和支持机制,我们可以利用R P C 机制来实现单窍白进程和单服务器进程间的通讯,并将其扩充成具有多客户多服务器进程的系统。作为一种编程接口,R P
12、 C 类似于标准和局部过程(函数)调用;调用时,客户端进程(发出请求的进程)调用通常称为客户存根(c l i e n ts t u b)的本地进程,服务器端进程(处理请求的进程)也有一个类似的服务器存根(s e r v e rs t u b),其中包含了网络通信细节。使用R P C 的客户端进程和服务器端进程的关系如图1 所示。客户进程r中鼻译威船R 格式崎抉成本地客户表示盥鼍务善端进程#安鹰本地厦务霉表矛谭成X D R 格舞图IR P C 客户服务器通讯以下是一个将计算阶乘的程序转换为C l i e n t S e r v e r 形式的应用程序,其中客户端向远程的阶乘计算服务器端提出计算阶
13、乘的请求:首先书写R P C 协议定义文件a p p x(它是C 和P A S C A L 混合语言);使用协议编译器(如S U N 的r p c g e n)产生三个文件:h 的头文件、客户端存根文件和服务器存根文件;编写(或通过模板修改)客户端组件和服务器端组件程序;编译客户端组件和服务器端组件程序形成客户端和服务器端执行体;运行服务器端程序保证a p p _ s e r v e r 进程存在,接着调用阶乘计算的客户端进程(客户进程要求用户输入一个整数),客户端进程对服务器端进程执行远程调用(将该整数传给服务器进程),然后服务器端进程计算阶乘值并将该值返回给客户端进程;最后由客户端进程将其
14、显示在屏幕上。服务器端进程一旦被调用将一直在内存中。实践与经验客户端组件a p p _ c l i e n t C 程序如下:#i n c l u d e a p p h“#i n c l u d e l o n g i n tf a c t o r i a l l(i n tc a l c _ f a c 一1 _ a r g,c h a r+h o s t)C L I E N T+c l m;l o n g+r e s u l t _ l;i n tc a l c _ f a c,1 _ a r g;#i f n d e fD E B U Gc I n t=c I n t _ c r e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 操作系统 中的 进程 技术 及其 应用
限制150内