进程与线程

上传人:aa****6 文档编号:52247781 上传时间:2018-08-19 格式:PPT 页数:104 大小:668.50KB
返回 下载 相关 举报
进程与线程_第1页
第1页 / 共104页
进程与线程_第2页
第2页 / 共104页
进程与线程_第3页
第3页 / 共104页
进程与线程_第4页
第4页 / 共104页
进程与线程_第5页
第5页 / 共104页
点击查看更多>>
资源描述

《进程与线程》由会员分享,可在线阅读,更多相关《进程与线程(104页珍藏版)》请在金锄头文库上搜索。

1、六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习进程及线程基本定义v进程(process)处于执行期的程序及其所包含资源的总称程序:可执行程序代码资源:打开文件、挂起信号、地址空间、数据段等 v线程(thread)进程中活动的对象有独立的程序计数器、进程栈及一组进程寄存器六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习进程与线程的区别v从形态角度一个进程可包含一个或多个线程 v从调

2、度角度进程是资源分配的基本单位线程是处理器调度的独立单位 v从虚拟化角度进程提供两种虚拟机制虚拟处理器:进程独享处理器的假象虚拟内存:进程拥有系统内所有内存资源的假象线程之间可共享虚拟内存,但各自拥有独立虚拟处理器对对LinuxLinux系统而言,线程只是一种特殊的进程!系统而言,线程只是一种特殊的进程!六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习进程构成要素v正文段 存放进程运行的代码,描述进程需完成的功能 v进程数据段存放正文段在执行期间所需的数据和工作区包括全局变量、动态分配的

3、空间(调用malloc函数)用户栈也在该数据段开辟,存放函数调用时的栈帧、局部 变量等 v系统堆栈每个进程捆绑一个,进程在内核态下工作时使用保存中断现场、执行函数调用时的参数和返回地址等其中最重要的数据结构是进程控制块六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习进程虚拟地址结构v以Linux系统为例(共4G空间)用户空间(0x 0000 0000 0x bfff ffff)可执行映象进程运行时堆栈进程控制信息,如进程控制块内核空间(0x c000 0000以上)内核被映射进程内核空间

4、只允许进程在核心态下访问六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习Linux进程描述符v进程描述符数据结构:task_struct定义位置:include/linux/sched.h v进程描述符向量结构数据结构:taskNR_TASKS定义位置: include/linux/sched.h定义格式 struct task_struct *taskNR_TASKS = pid_t vfork(void);int clone(int (*fn)(void * arg), void *

5、stack, int flags, void * arg); 创建轻量级线程 v三函数都调用同一内核函数do_fork( ) /kernel/fork.cfork( ) vfork( )fork( ) vfork( ) clone( ) clone( )do_fork( ) 六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习do_fork()内核函数原型v函数调用形式do_fork(unsigned long clone_flag, unsigned long stack_start, s

6、truct pt_regs *regs, unsigned long stack_size, int _user *parent_tidptr, int _user *child_tidptr); v参数说明clone_flag:子进程创建相关标志stact_start:将用户态堆栈指针赋给子进程的espregs:指向通用寄存器值的指针stack_size:未使用(总设为0)parent_tidptr:父进程的用户态变量地址,若需父进程与新轻 量级进程有相同PID,则需设置CLONE_PARENT_SETTIDchild_tidptr:新轻量级进程的用户态变量地址,若需让新进程 具有同类进程的

7、PID ,需设置CLONE_CHILD_SETTID六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习子进程创建CLONE参数标志说明六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习fork()函数v说明子进程完全复制父进程的资源子进程的执行独立于父进程进程间数据共享需通过专门的通信机制来实现 v返回值父进程执行fork()返回子进程的PID值子进程执行fork()返回0调用失败返回

8、-1六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习fork()调用代码结构vforktest.c六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习父子进程执行线索六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习vfork()调用v说明vfork()创建的子进程与父进程共享地址

9、空间子进程作为父进程的一个单独线程在其地址空间运行子进程从父进程继承控制终端、信号标志位、可访问 的主存区、环境变量和其他资源分配子进程对虚拟空间任何数据的修改都可为父进程所见 父进程将被阻塞,直到子进程调用execve()或exit() v与fork()的关系功能相同,但vfork()但不拷贝父进程的页表项子进程只执行exec()时,vfork()为首选六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习vfork()系统调用示例vvforktest.c1 data is 0 2 data

10、 is 1 六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习clone()系统调用v函数原型int clone(int (*fn)(void *), void *child_stack, int clone_flag, void *arg); v参数说明fn:待执行的程序 child_stack:进程所使用的堆栈clone_flag:由用户指定,可以是多个标志的组合arg:执行fn所需的参数 v功能创建轻量级进程(LWP)的系统调用通过clone_flag控制六年级数学上册课件-比的基本

11、性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习clone()函数对应的系统调用vfn及arg参数的获取do_fork()返回时,可通过进程切换机制(jmp+ret)使CPU 从stack中获取返回地址,并得到fn地址六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习clone()函数的常用CLONE标志v CLONE_VM:父子进程共享内存描述符及所有页表 v CLONE_FS:父子进程共享文件系统信息 v

12、CLONE_FILES:父子进程共享文件描述符表 v CLONE_SIGHAND:父子进程共享信号描述符 v CLONE_PTRACE:若父进程被跟踪,子进程也被跟踪 v CLONE_PARENT:父进程的real_parent登记为子进程的 parent和real_parent v CLONE_THREAD:子进程加入父进程的线程组 v CLONE_STOPPED:创建新进程但不运行之六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习clone()函数调用示例六年级数学上册课件-比的基本

13、性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习exec()函数v大多情况下子进程从fork返回后都调用exec()函数来 执行新的程序进程调用exec()函数时,该进程完全由新程序替代,新程 序从main开始执行exec()并不创建新进程,前后进程ID不变,但用另外一个 程序替代当前进程的正文、数据、堆栈等函数原型int execl( const char *path, const char *arg, .);int execlp( const char *file, const char *arg, .);in

14、t execle( const char *path, const char *arg , ., char* const envp );int execv( const char *path, char *const argv );int execve( const char *filename, char *const argv , char *const envp );int execvp( const char *file, char *const argv );六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动P

15、PT模板军队国防改革强军梦学习exec()函数调用示例vexeclptest.c六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习进程等待v函数原型pid_t wait(int *status);pid_t waitpid(pid_t pid, int *status, int options); v说明均通过wait4()系统调用实现进程终止时,会向父进程发送SIGCHLD信号 v调用wait( )和waitpid( )的进程的可能状态阻塞如果子进程还在运行正常返回返回子进程的终止状态(

16、其中一个子进程终止)出错返回没有子进程六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习进程等待示例vwaittest1.c六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习进程等待示例vwaittest2.c六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中学高一生物现代生物进化理论的主要内容课件八一建军节主题教育活动PPT模板军队国防改革强军梦学习进程等待示例vwaitpidtest.c六年级数学上册课件-比的基本性质和化简比江苏省连云港市田家炳中

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号