嵌入式Linux高级编程-03posix进程管理

嵌入式Linux高级编程-03posix进程管理

ID:46379774

大小:1.20 MB

页数:25页

时间:2019-11-23

嵌入式Linux高级编程-03posix进程管理_第1页
嵌入式Linux高级编程-03posix进程管理_第2页
嵌入式Linux高级编程-03posix进程管理_第3页
嵌入式Linux高级编程-03posix进程管理_第4页
嵌入式Linux高级编程-03posix进程管理_第5页
资源描述:

《嵌入式Linux高级编程-03posix进程管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、嵌入式Linux高级编程Linux进程管理王莉进程的定义和特征进程的定义进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。进程的实体结构(1)进程控制块(PCB)(2)程序段(3)数据段进程控制块进程控制块是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需的,用于描述进程进展情况及控制进程运行所需的全部信息。PCB是进程存在的惟一标志。一般把PCB存放在操作系统专门开辟的PCB区内。在进程控制块中,主要包括下述4方面的信息。(1)进程描述信息进程标识符。每个进程都有惟一的进程标识符,用以识别不同的进程。用户名或用户

2、标识号。每个进程都隶属于某个用户,有利于资源共享与保护。家族关系。标识进程之间的家族关系。进程控制块(2)处理机状态信息通用寄存器、指令计数器、程序状态字(PSW)、用户栈指针等(3)进程调度信息进程状态。指明进程的当前状态,以作为进程调度和进程对换时的依据。进程优先级。用于描述进程使用处理机的优先级别的一个整数,优先级别高的进程先获得处理机。进程调度所需的其他信息。如进程已等待CPU的时间总和、进程已执行的时间总和等。事件。指进程被阻塞的原因。(4)进程控制信息程序和数据的地址。指出该进程的程序和数据所在的内存或外存地址,以便再调度到该进程执行时,能从中找到

3、其程序和数据。进程同步和通信机制。指实现进程同步和进程通信时所必须的机制,如消息队列指针、信号量等。这些数据应全部或部分地存放在PCB中。进程的状态及其转换1.进程的基本状态(1)就绪状态当进程已分配到除处理机以外的所有必要的资源后,只要再获得处理机便可立即执行,这时进程的状态称为就绪状态。(2)执行状态执行状态是指进程已获得处理机、其程序正在执行的状态。(3)阻塞状态正在执行的进程因发生某事件而暂时无法继续执行时,便放弃处理机而处于暂停状态,这种暂停状态被称为阻塞状态。进程的状态及其转换命令行参数两种获得命令行参数的写法:main(intargc,char*

4、argv[]);main(intargc,char*argv,char*envp[]);获取进程标识#include#includepid_tgetpid(void);功能:获取当前进程ID返回:调用进程的进程ID#include#includepid_tgetppid(void);功能:获取父进程ID返回:调用进程的父进程ID进程创建#include#includepid_tfork(void);功能:创建一个新的进程。返

5、回:子进程中为0,父进程中为子进程ID,出错为-1说明:由fork创建的新进程被称为子进程(childprocess)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是子进程的进程ID。一般来说,在fork之后是父进程先执行还是子进程先执行是不确定的。这取决于内核所使用的调度算法。父、子进程之间的区别fork的返回值;进程ID、不同的父进程ID;父进程设置的锁,子进程不继承;子进程的未决告警被清除;子进程的未决信号集设置为空集。父、子进程之间的继承使用fork函数得到的子进程是父进程的处继承了整个进程的地址空间,包括:进程

6、上下文、进程堆栈、内存信息、打开的文件描述符、信号控制设置、进程优先级、进程组号、当前工作目录、根目录、资源限制、控制终端等。#include#include#includeintmain(void){pid_tpid;pid=fork();switch(pid){case-1:perror("forkerror");exit(1);case0:printf("Iamthechildprocess,myprocessidis%d",getpid());break;default:printf(

7、"Iamtheparentprocess,myprocessidis%d",getpid());break;}return0;}进程的终止进程的终止有以下几种方式:exit()_exit()由信号终止exit和_exitexit和_exit用于中止进程;_exit的作用:直接使进程停止运行,清除其使用的内存空间,并清除其在内核中的数据结构;exit与_exit函数不同,exit函数在调用exit系统之前要检查文件打开情况把文件缓冲区的内容写回文件中去。如调用printf()函数。进程运行调用退出处理函数清除I/O缓冲调用_exit系统调用进程终止运行_ex

8、itexitexec函数在用fork函

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

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

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