Linux环境编程

进程与程序
程序就是存储在磁盘上的可执行文件,程序被加载到内存中开始运行叫进程。一个程序可以被多次加载生成多个进程,进程就是处于活动状态的计算机程序
进程的分类
进程一把分为三种类型:交互进程,批处理进程,守护进程。
守护进程一般都处于活跃状态,运行在后台,由于系统在开机时通过启动脚本自动创建的。
查看进程
简单形式:ps 显示当前用户有控制终端的进程信息
列表形式:ps auxw 显示进程详细信息
a 所有用户的有控制终端的进程
x 无终端控制的进程
u 显示详细信息
w 以更大列宽显示
显示的信息有:USER 进程的属主;PID 进程的编号;%CPU CPU使用率;%MEM 内核使用率;VSZ 虚拟内存使用的字节数, RSS 物理内存使用的字节数, TTY 终端设备号,?表示无终端控制, STAT 进程的状态 其中(O 就绪,等待被调度, R 运行,Linux系统没有O,就绪也用R表示, S 可被唤醒的睡眠,如系统中断,获得资源,收到信号都可以唤醒它转入运行状态。 D 不可被唤醒的睡眠,只能被系统唤醒。 T 暂停状态,收到SIGSTOP信号进入暂停状态,收到SIGCONT信号转入运行状态。W 等待内存分页(2.6内核以后被废弃了) ;X 死亡状态 ;Z 僵尸状态 ;< 高优先级; N 低优先级; l(小L)多线程的进程;s 交互进程的首进程; L 有内存被锁进内存分页 ; + 在前台进程级中。) START 进程启动的时间 TIME 进程运行的时间 COMMAND 启动进程的命令。

父进程,子进程、孤独进程、僵尸进程
一个进程可以被另一个进程创建,创建者叫父进程,被创建者叫子进程,子进程被父进程启动后在操作系统的调用同时运行。当子进程先于父进程结束,子进程会向父进程发送SIGCHLD信号,此时父进程应该去回收子进程的相关资源,如果没有收回子进程就会进入僵尸状态。
僵尸进程:该进程已经死亡,但他的父进程没有立即回收它的相关资源,该进程就进入了僵尸状态。
孤儿进程:父进程先于子进程结束,子进程就变成了孤儿进程,孤儿进程会被孤儿院(init:守护进程)领养。init就是孤儿进程的父进程。

进程标识符
每个进程都有一个以非负整数表示的唯一标识,即进程ID/PID。
进程ID在任意时刻都是唯一的,但是可以重用,进程一旦结束,它的进程ID就会被回收。过一段时间后,重新分配给其它新创建的进程。
pid_t getpid(void);获取进程ID
pid_t getppid(void);获取父进程ID
init 的进程永远是1

创建进程:
pid_t fork(void);
返回值:一次调用两次返回,子进程返回0,父进程返回子进程ID
注意:通过fork创建的子进程会拷贝父进程的(数据段,堆、栈、I/O流缓冲区)等数据。与父进程共享代码段。子进程会继承父进程的信号处理。
pid_t vfork(void);
类似于fork,但vfork会继承父进程的数据段,堆栈缓冲区等数据,同时在子进程结束后才返回

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值