linux操作系统内核.ppt

linux操作系统内核.ppt

ID:48737965

大小:292.00 KB

页数:14页

时间:2020-01-21

linux操作系统内核.ppt_第1页
linux操作系统内核.ppt_第2页
linux操作系统内核.ppt_第3页
linux操作系统内核.ppt_第4页
linux操作系统内核.ppt_第5页
资源描述:

《linux操作系统内核.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一个进程创建的实例和 一个并行程序实例1:进程的创建与使用实现的功能:1.子进程打印自身的pid和父进程的pid;2.子进程打印系统日期;3.父进程等待子进程执行完后,打印自身的pid和子进程的pid。需要使用的函数:fork()//创建子进程,返回其pidgetpid()//获取进程自身的pidgetppid()//获取父进程的pidexeclp()//运行指定的可执行文件实例1:进程创建和使用代码#include#include#includeintmain(intargc,char*argv[]){pid_tpid;pid

2、=fork();if(pid<0){fprintf(stderr,"ForkFailed");exit(-1);}elseif(pid==0){printf("inchildprocess...");printf("mypidis%d,parentprocesspidis%d",getpid(),getppid());execlp("/bin/date","date",NULL);}else{printf("inparentprocess,waittingforchildprocesscompleting...");waitpid(pid);printf("childcomp

3、lete");printf("mypidis%d,childprocesspidis%d",getpid(),pid);exit(0);}}运行结果实例2:linux下开发的一个并行程序——Eratosthenes筛法简介并行计算是指用多个处理器并发执行的计算,通过提高计算速度和扩大问题规模,解决大型而复杂的计算问题。主要的并行编程模型有数据并行(HPF)、共享变量(OpenMP)和消息传递(MPI)。消息传递编程MPIMPI是一种并行编程标准和一个函数库,可以理解为在原来串行语言基础上扩展得到的并行语言。并行粒度是进程级大粒度。可被C/C++/FORTRAN调用。什么是并行计算

4、?Eratosthenes筛法该算法的串行版本是由古希腊数学家Eratoshenes发明的,伪代码:1.创建自然数列表:2,3,4……n,所有自然数未被标记2.令k=2,为列表中第一个未被标记的数3.重复下面步奏直到k2>n为止:1)在k2和n之间为k倍数的数都标记出来2)找出比k大的未被标记的数中最小数,令k等于该数4.列表中未被标记的数即为素数改进算法:由于除2外的偶数均不是素数,所以在步骤1创建只包含奇数的自然数列表:3,5……n。因此存储空间减少一倍,标记速度提高一倍。并行化思路1、数据按块分解例如整数n=41,进程数p=3。数据分块如下:进程0进程1进程2自然数下标2、当需要计

5、算的整数n较大、进程数p较小时,只需进程0计算k值,并将该值广播给其他进程。实验结果对比10^210^310^410^510^610^710^8算法0.0164300.0174600.0199780.0399790.0900070.4252813.911710改进算法0.0165410.0178570.0152550.0199690.0538770.2265961.935568运行环境:CentOS6.5,物理机,Intel奔腾双核运行4个进程,筛选整数10^2到10^8,执行时间对比:代码1/3#include"mpi.h"#include#include

6、h>#include#defineMIN(a,b)((a)<(b)?(a):(b))intmain(intargc,char*argv[]){intcount;doubleelapsed_time;intfirst;intglobal_count;inthigh_value;inti;intid;intindex;intlow_value;char*marked;intn,m;intp;intproc0_size;intprime;intsize;MPI_Init(&argc,&argv);MPI_Comm_rank(MPI_COMM_WORLD,&id);MPI_C

7、omm_size(MPI_COMM_WORLD,&p);MPI_Barrier(MPI_COMM_WORLD);elapsed_time=-MPI_Wtime();//计时开始if(argc!=2){if(!id)printf("Commandline:%s",argv[0]);MPI_Finalize();exit(1);}代码2/3n=atoi(argv[1]);m=n;//n=(n%2==0)?(n/2-1):((n

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。