1 / 15
文档名称:

进程线程笔记.doc

格式:doc   大小:589KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

进程线程笔记.doc

上传人:文库旗舰店 2020/4/9 文件大小:589 KB

下载得到文件列表

进程线程笔记.doc

相关文档

文档介绍

文档介绍:DAY1进程的基本概念::程序:存储在磁盘上可执行指令的集合,是一个文件。例如:。进程:程序一次执行的过程,伴随着资源的分配和释放。区别:<1>进程是动态的,运行在内存中,并伴随着资源的分配与释放。<2>程序是静态的,一般存在在磁盘上,没有执行的概念。:进程所有需要的条件已经准备完成,等待CPU的调度。运行态(R-->running):进程占用CPU,并在CPU上运行。可中断等待态(S):进程正在休眠,等待某个资源来唤醒它。也可以被其他信号中断唤醒。不可中断等待态(D):进程正在休眠,等待某个资源来唤醒它。不能被其他信号中断唤醒。停止态(T):进程暂停接受某种处理。例如:gdb调试断点信息处理。僵尸态(Z):进程以及结束但是还没有释放进程资源。例如:PID,PPID等未释放。+:表示该进程在前台运行。例如:S+,R+等,没有+表示在后台运行。各个状态之间的转换如下图:时间片:CPU分配给一个进程所运行的时候。实现消耗完成后,进程处于等待态。(1)常用:pstree-p.<2>ps(processstatus),来查看我们的PID号ps-ef|grep“进程名/进程ID”。ps-ef|head-|grep“进程名/进程ID”<3>kill给指定的PID进程发送信号使用方法:kill-信号的宏名 PID或者kill-信号的编号PID号常用宏:宏名编号功能SIGKILL 9 杀死进程。SIGCONT 18 让信号继续运行。SIGSTOP 19 让信号停止。SIGCHLD 17 子进程结束的时候,给父进程发送该信号。<4>bg(backgroud) 将一个挂起的进程在后台的运行。使用方法:bgjob号把挂起的进程放到后台运行。<5>fg(foreground) 将后台的进程到前台运行。./。我们可以在启动的时候让我们的程序在后台运行。./&让程序在后台运行。这里的&符合表示把我们的程序放到后台来运行。fg的使用方法:fgjob号 把后台的进程放到前台运行。常用概念了解:ctrl+z给当前前台执行的命令放到后台,并且将进程暂停挂起。jobs看出当前后台运行的程序,<1>创建进程[pid_t是int类型]#include<>pid_tfork(void);功能:在当前进程中,创建子进程返回值:成功给父进返回子进错的pid号给子进错返回0,失败返回-1,并且置errno,注意:<1>fork是通过对当调用fork()的进程的复制来实现对新进程的创建子进程:新创建的进程父进程:调用fork()函数的进程。<2>子进程创建的过程:拷贝父进程的堆,栈,rodata段,data段,bss段, 系统相关信息,代码段共享。<3>fork之后父,子进程谁先执行是不确定,取决系统的调度算法<4>fork之后,父子进程都是从fork下一条语句开始执行<5>fork之后,父子进程拥有独立的4G虚拟地址空间。互相不影响<6>fork之后,子进程会继承父进程的打开的文件描述符集合,共用相同的文件表项。思考:我们如何根据pid来判断当前进程是父进程还是子进程呢?pid>0表示此时是父进程的运行空间。pid==0表示此时是子进程的运行空间僵尸子进程:子进程结束的时候,父进程没有进行收尸操作(父进程还存在),此时占用资源。孤儿进程:父进程结束了,子进程会变成孤儿进程,会自动被init进程所收养。<1>写时拷贝简介详见《》<2>vfork#include<sys/>#include<>pid_tvfork(void);功能:创建子进程参数:无返回值:成功,对父进程而言。返回子进程的PID好。对子进程而言。,返回-1。fork与vfork的区别:<1>fork函数父子进程谁先运行不确定,由系统调度决定。vfork函数子进程先运行,此时父进程会阻塞,子进程会一直运行在父进程的地址空间,直到子进程调用exit结束后才会运行,如果这时子进程修改了某个变量,这将影响到父进程的变量。<2>fork函数的正文段共享,其他段被子进程复制。vfork函数的子进程直接共享父进程的虚拟地址空间。六、exec函数簇exec函数簇函数[]<1>功能简介exec函数族提供了一种在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段、和堆栈段。