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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
进程指正在运行的程序,资源分配的最小单位,可以通过“ps ”或“top”等命令查看正在运行的进程,线程是系统的最小调度单位,一个进程可以拥有多个线程,同一进程里的线程可以共享此进程的同一资源。本章代码在process/目录下。
0 ~3 c3 x  F( D8 M! q; K2 |进程类型:
! B4 k3 G% K; w# f+ \) E1.交互进程:由shell启动,用户和计算机进行问答的进程。9 ^) H+ X5 B# X+ {& I3 X' z
2.批处理进程:不与特定终端相关联,将任务提交到等待队列按顺序执行的进程。: K! n6 G, B, A$ e/ A
3.守护进程:后台运行的特殊进程,用户不能和它进行会话。
' G0 D9 d: R: {2 N! Z; I8 u$ K进程的三种状态:! q: f# Y! ]9 n/ j

3 b% B5 Y4 _" n, l- n& X1.运行态,正在运行或在运行队列中等待。
: q! {8 Z: \+ Y1 c7 x" P2.可中断等待态,休眠, 在等待申请的资源有效或等待中断,信号唤醒。: u4 k( a5 N% Y6 N' O! y1 ?) `- J
3.不可中断等待态,休眠等待资源有效,不能被中断或信号唤醒。
6 c, e4 f7 b1 n8 i4.终止态,进程被停止或者被跟踪状态,收到SIGCONT信号时,又会恢复运行状态。0 G/ b0 K% S0 n7 N( }
5.僵尸态,进程因某种原因而中止运行,但进程描述符仍存在,不可被Kill。
9 L# U0 f' K& q如果想销毁某一进程,可在终端输入“ps -elf”查看进程号,如图 66.2:
7 z* i+ L6 R1 B% t8 {4 g8 i# M0 d8 {9 `9 ~# G
如果要销毁qtcreator进程,使用“kill -9 3001”可以销毁它,
" E# T7 r, z% K1 o) y! t: k% Z6 E3 N/ B9 Y% D- A# H
1进程创建
, J$ s/ F2 ]3 {! a所有的进程都是由其他进程创建(除了pid为0号的idle进程),pid号为1的init进程是系统启动后运行的第一个进程,是所有进程的父进程,init进程会初始化一部分系统服务,创建其他进程。
$ b( e0 H$ R1 V) O, e! a创建新进程的那个进程称为父进程,新进程称为子进程,父进程和子进程拥有相同的代码段数据段,有各自独立的地址空间。采用写时拷贝技术,即创建的新进程不会立即把父进程的资源空间复制过来,只有在修改时才会复制资源,另外父进程挂起的信号和文件锁不会被子进程继承。+ F+ s) Y1 F) b3 I, M" m
子进程结束后,它的父进程要回收它的资源,否则就会成为僵尸进程 。' i$ s4 P- _9 ]5 O) M
如果父进程先结束,子进程会被init进程收养,称为孤儿进程。- k$ g- H. _% B- y- \
终端输入“ps -el”查看进程状态,PID为进程号,PPID为此进程的父进程号,如图 1.1,1505号进程的父进程为1366进程。( Z/ J+ p, u" f, b! ~0 i% E

2 f0 F' `0 c( O3 u- }; n2 D  o+ k$ t3 I: J
getpid():获取进程PID,2 `1 Z# d6 {5 _* P9 G. U- `% m
0 j4 G3 g: }, C/ S7 L9 a
返回值为PID号。
. c  z; B0 h/ Zfork():系统调用,创建一个进程,
& x  o0 E$ J! y1 V# ?) R5 c#include
1 x' `! [1 }7 C+ q# Y  Opid_t fork(void);: q8 L0 X2 o& J7 z' Y* L
调用成功父进程返回子进程号,子进程返回0,失败返回-1。* s6 Z- A/ G* Q; R$ e$ k9 e# j
如以下代码:! P5 Q7 p! ?9 u9 \0 N6 B" [
for.c:
" {: G, d' S( a7 Y, S5 z9 @' \" [1 M  S! e# B( C9 v, Q$ l
打印结果:6 l- }3 r" g4 f
" A& S  ~- |/ z6 A9 g* D* K
程序执行过程中第一次调用fork()进程2531创建子进程2532;第二次fork(),进程2531创建子进程2533,进程2532创建2534,创建过程如图 1.3:
5 r, [$ ~* L% K0 r8 d
3 I$ @) v- o) p7 E( j
; |1 e7 B2 N" g
  • 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 19:00 , Processed in 0.171875 second(s), 25 queries , Gzip On.

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

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

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