嵌入式课程设计_第1页
嵌入式课程设计_第2页
嵌入式课程设计_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、心幷尿并厝嵌入式课程设计课程名称授课学期嵌入式系统设计与实践2016学年至 2017学年一学期第学院XX专业XX学号XX姓名XX专题嵌入式系统设计与实践任课教师XX交稿日期2017年01月11日成绩阅读教师签名日期广西师范大学电子工程学院制1、实验目的通过编写多进程程序,使读者熟悉掌握fork ()、exec ()、wait ()和waitpid ()等函数的使用,进一步理解在Linux中多进程编程的步骤。2、实验内容该实验有4个进程,其中一个为父进程,其余3个是该父进程创建的子进程,其中第一个子进程运行ls -I”指令,第二个子进程暂停3s后运行Ps -ef”指 令,第三个子进程在暂停7s之

2、后异常退出,父进程先用阻塞方式等待第一个子 进程的结束,并打印第一个子进程退出信息;然后再用阻塞方式等待第二个子进 程的结束,并打印第二个子进程退出信息;最后用非阻塞方式等待第三个子进程 的退出,待收集到第三个子进程结束的信息,打印第三个子进程退出的信息后, 父进程就返回。本实验需要打开1个虚拟终端运行程序 multie_proc_1657 。此时观察这 个进程的运行结果。本次实验运行的系统平台是Ubu ntu-12.04 。3、实验步骤(1、使用visio软件画出实验流程图;图1实验流程图(2)使用visio软件画出父进程繁衍子进程的流程图;<-"开始父进程Z 结束 :图2繁

3、衍子进程流程图(3)启动虚拟机中的Linux操作系统,使用root用户登录系统,使用图形界面模式。打开终端,新建一个以自己的学号建立的用户名(以下简称为stude nt1657 )。钞*骨 root(g)stu-virtual*fnachine: /homestustu-virtual-machine:su - root 密码:rootgstu * virtual * machine:-# useradd -fi studentl657 rootgstu*virtual-machine:-# passwd studentl657 输入新的UNIX密码: 重新输人新的UNIX密码: passwd

4、:已成功更新密码 rootgstu-曾itcd /home rootstu-virtual-machine:/home# ll 总用量20drwxr-xr-xSrootoot0961月921:06Jdrwxr-xr-x23rootroot1月915:11/drwxr-xr-x3Ip】Ipl40961月921:0 41PVdrwxr-xr-x21stustu4096i月929:40stu/drwxr-xr-x2studentl657student!6574096i月921:06studentl657/raotgstu-virtual-na匚htn亡:/homE# |图3添加用户student16

5、57(4) 在/home/student1657目录下创建名为2016011657 的文件夹。创建一个权限可读写的 multie_proc_1657.c 文件;a. 创建2016011657 文件夹。畲 # “ root(ffistu-virtval-machine: /home/student 1657/2016011657rootstu- virtual-nachtne:/homeff IsIpl stu studentl657rootstu-virtual'machine:/home# cd studentl657rootstu-virtual-machine:/home/stu

6、dent1657# mkdtr 2016011657 rootgstu-virtual-machine:/home/student1657# cd 2016611657 rootstu-vtrtual-machine:/home/student1657/2016011657# |图4创建学号文件夹b. 创建multie_proc_1657.c文件,并更改权限为可读可写可执行rootstu-virtual-machine:/hone/studentl657/20160116571? touch mcltieproclfiS?.c rootgstu-virtu al-nachine: /horie

7、/tuden甜 Is -1总用量0-rw-r- -r- - 1 root root 01.月 9 21:49 nultie_proc_1657 * crootstu-virtual-machine:/hone/sttid&ntl6S7/26160116571? chnod a+rwx multi亡_pot_l 657.crootstu-virtual-nachine:/hoine/studentlfi57/2616eil657# Is -I总用量0-rwxrwxrwx 1 root root 01月 9 21:49 multte_proc_1657*crootstu-virtual-m

8、achine:/home/student!657/2616011657# |图5 (1) 创建C文件和更改权限原先是修改为可读可写可执行,后期按要求再次修改权限为可读可写roo/home/student1657/2D16O116S7stustu-virtual-machine:su - root密码:raotstu-vtrtual-machine:-# cd /hone/student1657/2016011657rootstu-virtual-machine:/hone/student1657/2016011657# Is -I 总用量20-rw-r-r - - 1 -rwxr-xr-x 1

9、 -rwxrwxrwx 1 -rw-r-r- 1root root 167 root root 7356 mt root 2192 root root 25401月 16 11:19 Makefile1 月 1© 11:25(nultte_proc_16571 月 10 &9:44 multte_proc_1657»c1 月 10 11:25 hultte_proc_1657.crootstu-virtual-machine:/home/student1657/2016011657# chmod 666 multie_proc_165root5tu-vtrtual&

10、#39;Piachtne:/home/studentl6S7/2016011657# Is -I 总用量20-rw-r-r- 1 root-rwxr-xr-x 1 root root 7356 1.月 10 11:25 Fiultte_proc_16S7 -rw-rw-rw' 1 root root 2192 1月 16 09:44 fiultte_proc_1657.croo t1671月 IO 11:19 Makefile*rw*r-*r- 1 root root 25401月 15 11:25 nultte_proc_1657,orootstu-virtual-machine:/

11、hone/student1657/2016011657# |图5( 2)按要求修改的权限c. 编写 multie_proc_1657.c 程序rootstu-virtual-machine: /home/student1657/20160116S73tnclude<stdio * h> #tnclude<stdlib.h> fftnclude<sys/types h> #include<unistd* h> #i_n clude<sys/wait htnt natn(votd)(pidt chtldl, chtldi,chtld3f chi

12、ld;childl = fork();iffchlldl = -1)printf(Mchildl fork errorn"); exit(l);else if (childl = 8)prlntf("In childli execute *ls if(execlp("Is"±nlsM /h-l".NULL) < 0) printf (r'childl execlp errorn" ;child; = fork(); 讦ma =小图6编写程序通过make工具编译生成1 个名为 multie_proc_1657的目

13、标文件;(5) 以vi作为编辑器,编写关于上述程序的Makefile 文件,编写完后a. 创建Makefile文件a - rootstu* virtual-machine: /home/student 1657/2016011657# vi MakefileBais rootstu-virtual - machine : /hone/studen11&57/Z01601 1657# |图7创建Makefile 文件b. 编写生成Makefile文件root)st u-virtua l-m acliine: /home/stu dent 1657/2016011657multie_pro

14、c_1657:multie_proc_1657,ogcc Hultie_proc_1657.o -o multte_proc_1657 piultie_proc_1657. o :Piultte_proc_1657< 匚gcc y multte_proc_1657*c *o multie_proc_1657*o图8编写Makefile 文件rootstu-virtual-machine:/home/studen七1657/2巴16011窈5了萍 vt Makefile rootstu- virtual-machine:/home/student1657/2016011657ff Is -

15、1 总用量8-rw-r-r- 1 root root 179 i月 ID 10:15 Makefile-rwxrwxrwx 1 root root 2192 1月 10 日¥:44 nultte_proc_1657*c rootstu-virtual-machine:/home/student1657/2016011657# |图9查看Makefile文件c. 执行make 命令roctstu-virtual-machine:/hone/student1657/2G16011657# vi. Makefile roatstu-virtual-machine:/hone/student

16、1657/2616&11657# make -f Makefile gcc -匸 Piultte_proc_1657.匚-o multi.e_proc_1657 + o gcc multteproclfiST.o -o nultleproclfiS?rw-r-,八1rootroot1671月101&:57Makefilerwxr-xr-x1rootroot73561月10ie:ssmultte_prQc_1657rwxrwxrwx1rootroot21921月1009:44multie_proc_16S7.Crw-r*汀一1rootroot25401月1010:58nultie

17、_proc1657.0 roovirtual-machine:/home/student1657/2616&11657ff |rootgs tu - virtual-machine:/hopie/studentl6 57/20160116 57# Is -1 总用畳20图10 执行make命令(6 )打开虚拟终端运行程序 multie_proc_1657rootstu*vtrtual - machine: /hone/student 16 57/2016011657# */nultie_proc_1657图11运行程序11:292©822then then1月 l月1月1月0

18、060©00001 root1 root1 root 1 root exit PIDfather chtldJ chtld2 chtldiroot root root roo t cade PPID0 ' Q '2CMD /sbtn/tntt kthreadd kscfttrqd/D ntgratton/o ;watchdog/e cpuset ;khelper kdevtnpfs netns'syncsupers :bdt-default ;kkntegrityd kblockdlMakefile nultie_proc_16S7 nultte_proe_1

19、657 Eultie_prac_16S7multie_proc_16S7miilPtte_proC_lfi57nultie_proc_16S7 *o /2016&11657fr ,/nulttejprac_1657rootstu-virtuahmchine; /home/student 1657/20160116571月 10 11 : 21月 10 B9i41月 IB 11:2-rwxr-xr-x 1 root -vfjcr刿耳广甲耳1 root 'rw-r- -r- - 1 root rootstu-vtrtual- in In In in 总用虽 -rw-r-rwxr-x

20、r-x -rwxrtjxrvix ' rw - r' - r - gmt chtldi ID root root root root rao t root root root root root root root root图12 (1)运行结果roottu-virtual-machine: /home/student 1657/2016011657囱漫 * t| 即)11:30 JIroot212e091;37i迢;帥:GO khunQtaskdroot222e09:37700:;60:00'kswapderoot232009:37?00:00::&0ksmd

21、.root242e09;:37?00;迫0:iee |khug亡pag亡droot2520©9:37700:00::DO fsnottfy_markroot262e眇:37?00:00 ::00 |ecryptfs-kthrearoot272e-09:37?日日;100 ::00 |;cryptoroot352009:37700::00:&0kthrotldroot382009:37?ee:66::&0scst_eh_fl11 root392e旳;:3?7日日;:00 :ooscst_eh_lroot402a09:37?00::00:00scsi_eh_21 root

22、412e眇;37了9眈;;卿::00scsi_eh_3root422e09;:37700;00:oescst_eh_41 root432009:37?00:00::&0scsi_eh_5root442e09;:37?eo;001100 |scst_eh_6| root452009:37700::00::00scst_eh_7'root4620眇:37?00::0Q ::00scsieharoot472e09:37?妙100 ::00 I;scst_eh_9root<IS2009:37700:100:00scsiehlt)root492e09:37?e&:tQ&am

23、p;::&0scst_eh_liIrootSO2e旳;:377日日;:00 :QQ |;scst_eh_12rootSI2009:37700::00::&0scsiehlE111 root522e旳:;37了a昶;:66:eescsi_eh_lI1rootS32e09;:377eej;00::oescst_eh_15>1rootSA2009:37?00::00:00scsi_eh_l<i1root552e09:37?©0;00::00 I;scst_eh_llrrootS62009:37700:00::00scst eh IEroot572e09:37?0

24、0::00 :00scsi eh IS图12 (2)运行结果root)st u-vi rt u a I-machin e: /home/£tudentl6S7/20lticl1657理固$ 4锄1131 ±琲root root root root root root root root root root root root root root root root root oo七 root 162 root root syslog oot avhi avaht root root5 142 3 62 2 22009:37 ?2009:37 ?2 a 09:37 ?2009

25、:37 ?2009;37 ?29?2.&09:37 ?2009:37?2609:37?2009:37?2 O 09:37 ?2009:37?2 Q 09:37 ?2909137?2009:37?Z 0 09:37 ?2 日 9i37 ?1009:37?1009:3711 a 09:37 ?1009:37?1009:37?1 B 0:37 ?1&09:37?1009;37?6&7 fl 09:37 ?1 0©9:37?2 009137?000009 eo0099SO00aa00eoOfl009030eo000000 9SOeoas00eo00000006 ee

26、ee oe oe oe oo oo ee ee ee 00 oe oe OG oo OB ee oe oe 06 oe oe oo oe oe 06 oe0000Q000 eo89eo00 ee DO09 eo oo00 前00aa eo ooe00 oo0001Ql eo0100|scst_eh_23' >csteh_24 $cst_eh_25'|scsi_eh_2&' 'scsl_eh_27j scst_eh_2B|scii_eh_29';scst_eh_39; scst_eh_3ilkworker/u: 32 |;kworker/u:

27、33 I'devf req_wq |>pt_poU_0 l>pt/O I'scsi eh 32Jbdz7sdaL-8 ext4-dio-unwrtt upstart*udev-bridge *-daenon /sbin/udevd -daemon dbus-daemon -system -fork -act /usr/5bin/node,i-nanager /usc/sbin/bluetoothd ryslogd -cSNetworkManagervahldaeMort: running stu-vtrtua avahi-daemon: chroot helper

28、/usr/lib/policykit-1/polkitd -no krfconndl图12 (3)运行结果他4 1604 1064 1GG4 1064 1阴4 1阿 1&64 1064 1GG4 root root root 1&&4 root root 1064 roo t root root roo t get the the the the get rootstu-vi-rtual-nachtne:/hone/stjdentl657/2016eil&57# |chtldZ uhtld3 chttdJ chlldS child? childS2169 221

29、5 2J36 2265242B 2斗2 5Z742 2743 27S 274927SA 2762 2825 29 S6 29S6 2964 30783183 5250 3J52 3253 exit0 s 0001515I96027422713273Z7492754274329502956proce process process process296432503250 code has has has hasexit code0 6 06 00 野 e o&& e a0009090909690910IS lfi101310ie10101010 ie u u11not not n

30、ot notpts/0 pts/O Pts/Opts/1 pts/1 Pts/lpts/1pts/1Pts/1exited exited I exited Iexited 100 so 00 o© oo ao oe so oo GO 00 o 野日 oo a© oo oo 00 00 GO o©00: 0000:DO00:00 ee:oo ee:oe Q0:0O aa:22 ea:oo 00:00 90:0000:00 &a:eo ea:ee BB :©G ee:oe00:07 oe:oo 00:DO 0fl:OO Bfl :66/usr/bln/python /usr/ltb/uctty-le /usr/lib/urtty-lens-nusic/tjntty-n /sr/btn/python /usr/ltb/unity-sc /us

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论