13粤嵌Linux下C编程:“侠肝义胆”之进程

13粤嵌Linux下C编程:“侠肝义胆”之进程

ID:37836045

大小:51.00 KB

页数:3页

时间:2019-06-01

13粤嵌Linux下C编程:“侠肝义胆”之进程_第1页
13粤嵌Linux下C编程:“侠肝义胆”之进程_第2页
13粤嵌Linux下C编程:“侠肝义胆”之进程_第3页
资源描述:

《13粤嵌Linux下C编程:“侠肝义胆”之进程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux下C编程:“侠肝义胆”之进程  粤嵌教育(http://www.gec-edu.org/#)是专门从事产品研发的嵌入式培训基地,随着近年来嵌入式行业的火爆,越来越多的人投入嵌入式大军中,粤嵌教育也为社会输送了大量的嵌入式人才。众所周知,嵌入式的门栏比较高,需要一定的C语言基础,现在粤嵌从多方面带你各个击破,一步一步进入嵌入式大门。  如果我们把计算机上的操作系统及各种各样的软件看成一系列的有机生命,而不是指令集,那么这就是一个进程的世界,在进程的世界中同样有“道德”和“法制法规”,窥探进程世界,看它的侠肝义胆,风雨江湖路~~~~~  lin

2、ux支持多个进程同时进行,也就是我们常说的现代操作系统中的多道程序设计,所谓同时是linux系统调度各个进程分别占用cpu的时间。由于每个时间片的时间很小和宏观时间相比,给人的感觉是多个进程在运行。  注:总结下就是在微观是串行,在宏观上是并行。  为了提高程序的运行效率,程序往往分成多个部分组成,这也就是说的并发程序设计。并发程序中各进程是相互独立的,在必要的时候会通过相应的机制进行通信。若进程间要共享资源,为了避免出现冲突,常通过相应通信机制使它们轮流使用共享资源。在进程进行通信时,会出现一个进程等另一个进程完,才能继续运行的情况,这也需要进程间

3、通信以了解对方的运行情况。有时进程间会出现互斥现象,这是会用到锁机制。在并发程序设计中,进程的创建和结束是由用户决定的。这也就出现了父进程和子进程概念。  进程的创建:  #include  pid_tfork(void);  pid_tvfork(void);在这简述,fork创建的子进程是父进程的一个拷贝,但是和父进程使用不同的数据段和堆栈。vfork和fork基本相同但是vfork不会复制父进程的数据段,它们共享数据段。这是因为vfork常和exec函数使用去调用一个程序如ls命令,开启一个新的进程。vfork后父进程会等待子进程运行结束或调用

4、了exit。fork后父进程和子进程的运行顺序是不确定的。下面是体现它们性质的程序:#include  #include  #include  #include  main()  {  pid_tpid;  char*pchar="beforefork";  inttest_va=1;  if((pid=fork())<0)  {  printf("forkerror!!");  exit(1);  }  elseif(pid==0)  {  printf("childprocess");  pchar="childpchr";  pri

5、ntf("%s",pchar);  test_va=2;  printf("%d",test_va);  _exit(2);  }  else  {  printf("parentprocess");  //sleep(1);  printf("%s",pchar);  printf("%d",test_va);  }  }把上面的fork改为vfork即可fork:  vfork:

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

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

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