嵌入式LINUX学习笔记.doc

嵌入式LINUX学习笔记.doc

ID:55705189

大小:614.00 KB

页数:39页

时间:2020-05-25

嵌入式LINUX学习笔记.doc_第1页
嵌入式LINUX学习笔记.doc_第2页
嵌入式LINUX学习笔记.doc_第3页
嵌入式LINUX学习笔记.doc_第4页
嵌入式LINUX学习笔记.doc_第5页
资源描述:

《嵌入式LINUX学习笔记.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、进程进程的特点:动态性、并发性、独立性、异步性状态(三态)进程ID:进程ID(PID):标识进程的唯一的数字父进程的ID:(PPID)启动进程的用户ID(UID)进程互斥:当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其它要使用该资源的进程必须等待直到该资源释放了该资源为止。(临界资源)临界资源:同一时刻只允许一个进程,访问的资源称为临界资源临界区:进程中访问临界资源的那段程序代码称为临界区为了实现对临界资源的互斥访问应保证诸进程互斥地进入各自的临界区进程的同步:一组并发的进程按一定的顺序执行的过程为进程间的同步。具有同步关系的一组并发进程称为

2、合作进程,合作进程间互相发送信号称为信号或事件进程的调度:概念:按一定的算法,从一组待运行的进程中选出一个来占有CPU运行调度方式:抢占式、非抢占式调度算法:先来先服务调度算法短进程优先调度算法(即运行时间短的优先)高优先级优先调度算法(数值越小优先级越高LINUX中)时间片轮转法(分时利用)死锁多个进程因竞争资源而形成的一种僵死局,若无外力作用,这些进程都将永远不能向前推进。竞争资源预防是防止死锁的最好的办法进程的控制编程#include#includepid_tgetpid(void)//获取当前进程的IDpid_

3、tgetppid(void)//获取当父进程的ID)(返回进程IDint型)进程的创建——fork()#includepid_tfork(void)//创建子进程注:fork函数一次调用两次返回#include#includevoidmain(void){pid_tpid;intcount=0;pid=fork();count++;prinft("count=%d",count);exit(0);}运行的结果:count=1count=1分析:子进程的数据空间、堆栈空间都会从父进程中得到一个拷贝

4、而不是共享。在子进程中对count+1并没有影响到父进程中的count的值,父进程中仍为0count++;prinft("count=%",count);这段程序分别将在父子进程中运行互相独立vfork()创建子进程#include#includepid_tvfork(void)forkPKvfork区别:1、fork子进程拷贝父进程的数据段vfork子进程共享父进程的数据段2、fork父、子进程执行的次序不确定vfork子进程先运行,父进程后运行#include#include

5、td.h>intmain(void){pid_tpid;intcount=0;pid=vfork();if(pid==0){count++;prinft("count=%",count);_exit(0);}elseif(pid>0){count++;prinft("count=%",count);exit(0);}}运行结果:count=1count=2count++;prinft("count=%",count);这段程序:先在子进程是运行count=1;然后在父进程中运行,由于调用vfork子进程共享父进程的数据段,所以count再次自增1,co

6、unt=2exec函数族:exec用被执行的程序替代调用它的程序forkPKexec区别:fork创建一个新的进程产生新的PIDexec启动一个新的程序,替换原有的进程因此进程的PID不会改变exec函数族:头文件:#include函数名函数原型execlintexecl(constchar*path,const*arg1,….)execlpintexeclp(constchar*path,const*arg1,….)execvintexecv(constchar*path,const*argv[])说明:execl:intexecl(cons

7、tchar*path,const*arg1,….)参数:path被执行程序名(含完整路径)arg1~~argn被执行程序所需要的命令行参数,含函数名,以空指针(NULL)结束eg:execl("/bin/ls","ls","-al","/etc/passwd",(char*)0);相当于命令行:ls–al/etc/passwdexeclp:intexeclp(constchar*path,const*arg1,….)参数:path被执行程序名(不含完整路径,将从path环境变量中查找该程序)arg1~~argn被执行程序所需要的命令行参数,含函数名,以空指针(NU

8、LL)结束

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

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

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