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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
进程指正在运行的程序,资源分配的最小单位,可以通过“ps ”或“top”等命令查看正在运行的进程,线程是系统的最小调度单位,一个进程可以拥有多个线程,同一进程里的线程可以共享此进程的同一资源。本章代码在process/目录下。3 r' h* \& g' p+ S- R0 x* D
进程类型:8 _8 g- G, d6 Q2 O# a; C9 P+ [5 Y
1.交互进程:由shell启动,用户和计算机进行问答的进程。
4 {( c0 M0 P& w* b2 X- X0 B/ N2.批处理进程:不与特定终端相关联,将任务提交到等待队列按顺序执行的进程。! O) z  q# i$ R  ]: h% W
3.守护进程:后台运行的特殊进程,用户不能和它进行会话。) _. W+ \; R( P/ T5 I8 w: F
进程的三种状态:5 ^# i$ G% u4 I+ m, t$ o$ c& o# P  N0 |3 `" l
& F: W, B2 I# q7 O. j
1.运行态,正在运行或在运行队列中等待。
; H( O+ k1 W8 b5 L( y) `2.可中断等待态,休眠, 在等待申请的资源有效或等待中断,信号唤醒。
8 V& I# A7 Z: M* L' t7 d3.不可中断等待态,休眠等待资源有效,不能被中断或信号唤醒。# a- `  T4 P* c& z
4.终止态,进程被停止或者被跟踪状态,收到SIGCONT信号时,又会恢复运行状态。  E1 Q; m3 J; w$ |
5.僵尸态,进程因某种原因而中止运行,但进程描述符仍存在,不可被Kill。- Z6 n! e* r1 w4 e; z; m7 j" d
如果想销毁某一进程,可在终端输入“ps -elf”查看进程号,如图 66.2:
" [' [- w5 }1 ^$ M8 k, s/ s2 j6 V) V% h& p6 f* D
如果要销毁qtcreator进程,使用“kill -9 3001”可以销毁它,
7 B: e0 ~+ d5 q3 B8 B( D+ W7 e
2 Z+ |. L2 T% n' n2 l" l+ e1进程创建
& O- f  g2 ~5 I# d& Z$ b. P6 O8 ^所有的进程都是由其他进程创建(除了pid为0号的idle进程),pid号为1的init进程是系统启动后运行的第一个进程,是所有进程的父进程,init进程会初始化一部分系统服务,创建其他进程。
3 [; H# T7 D0 b/ I/ b% w: }" i  R创建新进程的那个进程称为父进程,新进程称为子进程,父进程和子进程拥有相同的代码段数据段,有各自独立的地址空间。采用写时拷贝技术,即创建的新进程不会立即把父进程的资源空间复制过来,只有在修改时才会复制资源,另外父进程挂起的信号和文件锁不会被子进程继承。7 r' y1 }3 d: |, ?6 J; {5 s
子进程结束后,它的父进程要回收它的资源,否则就会成为僵尸进程 。% Q; {3 |5 X8 K1 ?0 D& |0 r" Z' _
如果父进程先结束,子进程会被init进程收养,称为孤儿进程。
. L9 M+ m* K! X" j* J终端输入“ps -el”查看进程状态,PID为进程号,PPID为此进程的父进程号,如图 1.1,1505号进程的父进程为1366进程。% \: t' [0 }" m

# T+ }/ F  O- {5 N  d- T
- I3 O! z- V& {  [3 ngetpid():获取进程PID,; K: p+ [, x8 f- r

* \  a* E$ ]* y, I( i6 @; s返回值为PID号。
6 y2 _" Q. S: |4 ]0 ufork():系统调用,创建一个进程,% i  y9 v# p8 ^  C8 C
#include% W6 q# Z. a# ]" ]
pid_t fork(void);
3 _6 O+ F9 B; O+ c3 X调用成功父进程返回子进程号,子进程返回0,失败返回-1。0 q  U( z7 x1 n5 e3 C! E  s( u% k2 f
如以下代码:
$ U; V: C, x- f: _- N/ }for.c:& c* j& ], u" t9 A. }1 `/ R

" w2 U2 R* r5 i6 \! a/ i. f打印结果:# x* b7 y/ }, m' P5 R
' P, p! A: e4 A  P" |9 O" R7 i3 U
程序执行过程中第一次调用fork()进程2531创建子进程2532;第二次fork(),进程2531创建子进程2533,进程2532创建2534,创建过程如图 1.3:
9 e1 Q( v5 N, r1 O: G4 p; |, {
5 F7 j! i& E( B7 H0 K( K. h7 d* D4 m% C$ b
  • 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 18:40 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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