找回密码
 注册
关于网站域名变更的通知
查看: 429|回复: 1
打印 上一主题 下一主题

迅为i.MX6ULL终结者进程基础-进程创建

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-3-3 14:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
进程指正在运行的程序,资源分配的最小单位,可以通过“ps ”或“top”等命令查看正在运行的进程,线程是系统的最小调度单位,一个进程可以拥有多个线程,同一进程里的线程可以共享此进程的同一资源。本章代码在process/目录下。+ H8 |4 M! e6 l8 N  I! D  u
进程类型:
% J6 |* d5 {" f1.交互进程:由shell启动,用户和计算机进行问答的进程。  a$ _( v& j% k" r9 h" O
2.批处理进程:不与特定终端相关联,将任务提交到等待队列按顺序执行的进程。9 P) q! L$ z7 g: q3 U8 ^) \
3.守护进程:后台运行的特殊进程,用户不能和它进行会话。
7 w  _9 \( t; c进程的三种状态:
* R5 h1 `  t4 v8 d% [+ x% l  H, [$ H* G* y$ m' w/ M* z3 a$ a  |6 G  s
1.运行态,正在运行或在运行队列中等待。% B* _+ B6 n& g& @' d$ v3 ~8 p% I
2.可中断等待态,休眠, 在等待申请的资源有效或等待中断,信号唤醒。7 Q( u  W; ?4 O
3.不可中断等待态,休眠等待资源有效,不能被中断或信号唤醒。
' N0 z# u1 F  T1 W  J( G4.终止态,进程被停止或者被跟踪状态,收到SIGCONT信号时,又会恢复运行状态。
$ E& I1 M: d1 C5.僵尸态,进程因某种原因而中止运行,但进程描述符仍存在,不可被Kill。
* t% }0 B2 c" K6 I' |, p如果想销毁某一进程,可在终端输入“ps -elf”查看进程号,如图 66.2:0 K' G" p. c8 D( t' ^. n0 s, O1 x

4 Q" H7 a6 ?6 j; y3 K如果要销毁qtcreator进程,使用“kill -9 3001”可以销毁它,1 ]: {7 O4 P5 t9 a$ V( ~
6 H3 u! }( _( z
1进程创建
) [" p7 N- h6 i4 g8 g4 B; |所有的进程都是由其他进程创建(除了pid为0号的idle进程),pid号为1的init进程是系统启动后运行的第一个进程,是所有进程的父进程,init进程会初始化一部分系统服务,创建其他进程。! \( K$ @2 `, w7 m% V! A! Z4 n4 R* d
创建新进程的那个进程称为父进程,新进程称为子进程,父进程和子进程拥有相同的代码段数据段,有各自独立的地址空间。采用写时拷贝技术,即创建的新进程不会立即把父进程的资源空间复制过来,只有在修改时才会复制资源,另外父进程挂起的信号和文件锁不会被子进程继承。! p! d- ~' M) Q3 l$ l2 T1 z1 R, ^
子进程结束后,它的父进程要回收它的资源,否则就会成为僵尸进程 。! v4 o  ?7 i9 m
如果父进程先结束,子进程会被init进程收养,称为孤儿进程。
1 E" g- _+ L- j0 N* }8 ~5 h. N0 A终端输入“ps -el”查看进程状态,PID为进程号,PPID为此进程的父进程号,如图 1.1,1505号进程的父进程为1366进程。
: |$ n7 D, N3 \7 J, e5 ~7 G, A) ]! \; M
* i& ?2 a4 S" k' |8 a
getpid():获取进程PID,
: \$ {& u  A) A. r* W) s
" K5 E9 g6 c3 ]! P8 x3 r( G返回值为PID号。+ y4 F  e9 O3 @# ?; T$ f* j
fork():系统调用,创建一个进程,
) S7 F7 k/ J- J; g, {) b, @#include9 k/ v9 k5 o6 {% D
pid_t fork(void);
$ x* j+ ?. o. @+ x! s2 o  t调用成功父进程返回子进程号,子进程返回0,失败返回-1。
5 N  U- _6 U, C/ H如以下代码:
* F' K5 i8 x2 v/ Z- p1 T- Xfor.c:
' G5 E: d4 {/ H
4 R0 e2 O( ~! t' U  \打印结果:! O3 |* E" ^# _6 M9 X9 _
+ Z4 L* ]" f. ~- a# x4 _
程序执行过程中第一次调用fork()进程2531创建子进程2532;第二次fork(),进程2531创建子进程2533,进程2532创建2534,创建过程如图 1.3:
5 Q( M! P: s, B$ B* }- a5 X; \9 i! s% R* |7 ^5 |$ G
) y1 b+ ?2 c) r; U: }$ h7 M
  • TA的每日心情
    开心
    2023-1-3 15:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2021-3-5 09:40 | 只看该作者
    进程指正在运行的程序,资源分配的最小单位
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 13:21 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表