- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux操作系统精讲 大连理工大学软件学院 邱铁 综合楼413,Tel:0411E_mail: qiutie@dlut.edu.cn 参考教材: 《Linux应用与开发典型实例精讲》 清华大学出版社. 2010.5 第8章 进程操作 学习本章要达到的目标: 1.了解Linux进程工作的原理。 2.掌握Linux进程操作函数的使用。 3.熟悉Linux信号量的相关知识。 4.掌握Linux信号量操作的函数,理解并掌握P、V操作。 8.1 Linux进程工作原理 Linux是一个多任务的操作系统,在Linux中采用进程作为任务调度的单位 进程与程序的区别 进程是一段运行的有生命力的程序,它是一个动态的概念; 程序是存储在磁盘或其他存储介质中的静态代码,是一种静态的概念 Linux进程有五种状态,Linux通过维护者五个状态来调度进程的运行。这五个状态分别为:运行、可中断、不可中断、僵死、停止 Linux的进程在宏观上是并行的,Linux可以同时运行多个进程 在微观上,各个进程是串行的,在同一时刻只能有一个进程处于“正在运行”的状态 Linux通过进程号PID来标识不同的进程的,Linux中每一个进程都有一个唯一的进程号 8.2 进程操作函数 创建子进程,生成的子进程是父进程的完全复制 #include unistd.h pid_t fork(void); pid_t vfork(void); 执行命令 #include unistd.h int execv(const char *path, char * const argv[]); int execl(const char *path, const char *arg, ...); 在新的环境变量下执行命令 #include unistd.h int execve(const char *filename, char * const argv[], char * const envp[]); 根据环境变量执行命令。 #include unistd.h int execvp(const char *filename, char * const argv[]); int execlp(const char *filename, const char *arg, ...); 取得当前进程的进程号 #include unistd.h pid_t getpid(void); 取得当前进程父进程的进程号 #include unistd.h pid_t getppid(void); 获取指定进程(getpgid)或当前进程(getpgrp)的组识别码 #include unistd.h pid_t getpgid(pid_t pid); pid_t getpgrp(void); 取得指定进程、进程组或用户的优先级 #include sys/time.h #include sys/resource.h int getpriority(int which, int who); 设置指定进程的组识别码 #include unistd.h int setpgid(pid_t pid, pid_t pgid); 设置指定进程、进程组、用户的优先级 #include sys/time.h #include sys/resource.h pid_t setpriority(int which, int who, int prio); 暂停当前进程的执行,等待子进程的中端或结束 #include sys/types.h #include sys/wait.h pid_t wait(int *status); 暂停当前进程的执行,等待子进程的中端或结束 #include sys/types.h #include sys/wait.h pid_t waitpid(pid_t pid, int *status, int options); 结束当前进程 #include unistd.h void _exit(int status); 设定当进程结束时需要运行的函数 #include unistd.h int atexit(void (*function)(void)); 设定当进程正常结束时需要运行的函数 #include unistd.h int on_exit(void (*function)(int ,void *), void *arg); 8.3 信号量 操作系统需要解决进程之间资源合理分配的问题 Linux采用信号量(Semaphore)来解决这一问题,一个信号量表示可用资源的数量 对信
您可能关注的文档
- 第7讲财产保险21024家财险和企财险1课件(322KB).ppt
- 第7讲深入使用Hibernate(1832KB).ppt
- 第7讲说明文阅读(893KB).ppt
- 第7课zcs一年级ZCS课件(4307KB).ppt
- 第7课第1框财产属于谁人教版8下(2499KB).ppt
- 第7课第1框造福人民的经济制度人教九年级全一册(3182KB).ppt
- 第7课第一次工业革命课件(2143KB).ppt
- 第7课东西方文化交流的使者6份打包第7课东西方文化交流的使者(1270KB).ppt
- 第7课东西方文化交流的使者课件+教案22张3份打包第7课东西方文化交流的使者(19528KB).ppt
- 第7课东西方文化交流的使者我的课件(1410KB).ppt
最近下载
- 2020春部编版四年级语文下册看拼音写词语附日积月累默写.docx
- 中医儿科学题库山东省第四批西学中第四学期期末考试题库.pdf VIP
- 《小猪生病了》优秀绘本故事.pptx
- (完整版)高压开关柜技术协议(10KV配电所10KV高压成套开关柜设备供货).pdf
- 铁路货车的常见故障(完整版).ppt
- 《An old man tried to move the mountains》教案-教学设计.docx
- 2024年华能庆阳煤电有限责任公司招聘笔试真题.docx VIP
- 年产12万吨醋酸乙烯酯工艺设计.doc
- 名校学术联盟高考模拟信息卷&冲刺卷(五)生物学含答案.pdf
- 中医妇科学题库山东省第四批西学中第四学期期末考试题库.pdf VIP
文档评论(0)