初识进程

进程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

1. 特征

动态性: 进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
并发性: 任何进程都可以同其他进程一起并发执行
独立性: 进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
异步性: 由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征: 进程由程序、数据和进程控制块三部分组成。

2. 进程和程序的差异

进程程序
由程序、数据和进程控制块(PCB)三部分组成一组有序的指令集合
动态的静态的
有生命周期长期保存的,永久存在
进程可以创建新的进程程序不可创建新程序

3. Linux中的进程

创建进程:Linux中,实际上创建了一个task_struct结构体
进程基本运行状态
运行态,就绪态,阻塞态
运行态R: 正在运行或者轮转到时间片则能够运行统称运行态
可中断休眠态S: 可以被中断的休眠状态(满足唤醒条件,或者休眠被中断则进入运行态)
可中断休眠态D: 不能被中断的休眠状态(满足唤醒条件之后才会进入运行态)
停止态T: 程序停止运行的状态(依然会被调度,但是什么都不做)
死亡态: 一闪而逝的状态;已退出;
僵尸态Z: 进程已经退出不在调度了,是一种退出了,但是资源没有完全被释放的进程;
产生: 子进程先于父进程退出,,但是父进程没有关注到子进程的退出,因此系统不会完全释放子进程的资源,这个子进程进入僵尸状态;子进程退出后,在进程pcb中保存了自己的退出返回值,在父进程没有关注处理的情况下,pcb资源不会被释放;
危害: 资源泄露(一种是pcb所占的内存资源一直无法被回收,一种是一个用户所能创建的进程数量是有限制的)
解决方案:
处理:退出父进程
避免:进程等待
孤儿进程: 父进程先于子进程退出,子进程就会成为孤儿进程,运行在后台,父进程成为1号进程 (早期的名字叫init进程,后期叫systemd) 不需要被处理;在后台运行;(有自己的应用方向)
精灵进程: 工作中有时候可能会写一些这样的程序,它作为后台进程运行,生命周期比一般的进程要长,它在系统开机时运行,直到被强制关闭或者系统关机时退出。它就是精灵进程或者也叫做守护进程----(daemon process)

4.控制进程的命令

fork 创建一个新进程
clone 按指定条件创建子进程
execve 运行可执行文件
exit 中止进程
_exit 立即中止当前进程
getdtablesize 进程所能打开的最大文件数
getpgid 获取指定进程组标识号
setpgid 设置指定进程组标志号
getpgrp 获取当前进程组标识号
setpgrp 设置当前进程组标志号
getpid 获取进程标识号
getppid 获取父进程标识号
getpriority 获取调度优先级
setpriority 设置调度优先级
modify_ldt 读写进程的本地描述表
nanosleep 使进程睡眠指定的时间
nice 改变分时进程的优先级
pause 挂起进程,等待信号
personality 设置进程运行域
prctl 对进程进行特定操作
ptrace 进程跟踪
sched_get_priority_max 取得静态优先级的上限
sched_get_priority_min 取得静态优先级的下限
sched_getparam 取得进程的调度参数
sched_getscheduler 取得指定进程的调度策略
sched_rr_get_interval 取得按RR算法调度的实时进程的时间片长度
sched_setparam 设置进程的调度参数
sched_setscheduler 设置指定进程的调度策略和参数
sched_yield 进程主动让出处理器,并将自己等候调度队列队尾
vfork 创建一个子进程,以供执行新程序,常与execve等同时使用
wait 等待子进程终止
wait3 同wait
waitpid 等待指定子进程终止
wait4 同waitpid
capget 获取进程权限
capset 设置进程权限
getsid 获取会晤标识号
setsid 设置会晤标识号

好了,欢迎大家来评论,共同进步!在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值