进程概念(下)

四、进程状态
简单地说,每个进程都会有描述运行的状态信息,通过状态信息,告诉操作系统这个进程在干什么。
linux中的进程状态:
1.运行状态( R):正在运行或者拿到时间片就可以运行
休眠:暂时不需要CPU调度,让出CPU资源,休眠也会有唤醒条件,如果进程状态为休眠,操作系统就会查看是否满足唤醒条件,如果满足则将进程置为运行状态,反之则转到下一进程。
2.可中断休眠状态(S):可以被打断的休眠(满足某些条件就会运行或者被一些中断打断休眠后运行)
3.不可休眠状态(D):不会被一些中断打断休眠,只能等待唤醒条件满足才能运行(自然醒)。
4.停止(T):什么都不做,只能手动唤醒(与休眠不一样)。
5.僵尸状态(Z):进程退出,但是进程资源没有完全释放,而等待处理的一种状态。
特殊进程
僵尸进程:一个进程先于父进程退出,父进程未关注子进程的退出状态,导致子进程资源无法完全释放,最终会导致资源泄露(出去僵尸状态的进程)。
孤儿进程:父进程先于子进程退出,子进程成为孤儿进程,让出终端,进入系统后台,并且父进程成为1号进程。
五、环境变量
概念:终端shell中进行系统运行环境配置的变量
作用:
1.使得环境变量配置更加灵活
2.可以通过环境变量向子进程传递数据
指令介绍:
1.env-----查看所有环境变量
2.echo-----打印某个变量的内容,例如echo $ PATH,$表示后边的字符为一个变量名称
3.set-----查看所有变量
4.export-----设置一个环境变量
5.unset-----清除一个环境变量
注意:运行一个程序时,若没有指定路径,只有程序名称,则shell会在PATH环境变量中去找该程序,若没有则会报错,可以通过给PATH环境变量加上程序所在目录,这样就可以直接运行所在目录下的程序,如图:
在这里插入图片描述

关于环境变量的代码语言:
1.getenv:通过变量名称,获取该变量是否为环境变量,如不是,则返回NULL如图:
在这里插入图片描述
2.main函数的第三个参数是指向每一个环境变量的字符串指针数组(库中的environ与其类似,不过environ需要声明),如图:
在这里插入图片描述
六、程序地址空间
首先我们画个内存的空间分布图:
在这里插入图片描述
32位的操作系统最大支持的内存为4G,因为32位操作系统,指针大小为4个字节,即2^32.每一个地址指向空间的对应位置。并且用户空间占3G,内核空间占1G。
注意:
内存地址:对内存以字节为存储单元的一个编号
程序:一堆代码,保存在硬盘中,只有程序运行时,才会将对应的指令和数据放入指定的内存地址位置,CPU就会根据地址偏移逐步执行指令,以及对数据进行处理
程序运行才会占据内存,因此程序地址空间也被称为进程地址空间
进程地址空间为虚拟的地址空间,其不具备存储能力,需要通过虚拟地址找到对应的物理地址,对数据进行存储。
为什么要用虚拟地址以及虚拟地址与物理地址的关系等等,这些读者可以自行探究,查阅资料,在这里不多谈。
关于进程概念就谈到这里,读者如果想要了解更多,可以查阅相关的书籍,进行深入学习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值