Linux 进程操作系统 进程状态(僵尸进程) 环境变量 程序地址空间
Posted -A7
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 进程操作系统 进程状态(僵尸进程) 环境变量 程序地址空间相关的知识,希望对你有一定的参考价值。
1.操作系统
概念:软件–管理计算机上的软硬件资源
定位:让计算机更加好用
讨论:操作系统是如何管理这些软硬件资源的?
管理:描述+组织
系统调用:操作系统向用户提供的用于访问内核的接口
库函数:大佬们针对典型功能的封装接口
库函数与系统调用的关系:库函数封装了系统调用接口
2.进程状态
概念:描述进程当前处于什么状态应该如何被操作系统调度管理
种类:就绪,运行,阻塞
linux分类:
运行态-R:正在运行的,以及拿到时间片就能运行的
可中断休眠态-S:可以被打断的阻塞状态
不可中断休眠态-D:不可被打断的阻塞状态
停止态-T:停止运行
僵尸态-Z:程序退出后的中间等待处理状态
僵尸进程:僵尸态的进程,退出后资源没有被完全释放的进程
产生:子进程先于父进程退出,为了保存自己的退出返回值,因此没有完全释放资源,等待父进程处理。
避免:进程等待
处理:退出父进程
危害:资源泄露(内存+进程数量)
查看进程指令: ps -ef -aus
创建进程:pid_t fork(void)
给父进程返回子进程的pid(大于0),给子进程返回0;失败返回-1;
现在主程序只打印一次 子进程退出
子进程3278 变成了僵尸进程-Z
孤儿进程:父进程先于子进程退出,子进程成为孤儿进程
特性:运行在后台,父进程成为1号进程
在父进程中写入exit(0);
孤儿进程退出后不会成为僵尸进程
守护进程-精灵进程:是一个特殊的孤儿进程,运行在后台,与终端脱离关系。
3.环境变量
概念:保存程序运行环境的变量
环境变量的相关指令:
env:查看所有的环境变量
set:查看环境中所有的变量
echo:打印某个指定变量的数据
export:用于声明环境变量
unset:删除变量
重要环境变量:PATH-程序的默认运行路径
环境变量的特性:具有进程之间的传递性
在程序中获取环境变量的接口
chargetenv(charname);
name:环境变量名称
返回值:对应name环境变量的数据,如果找不到返回NULL
4.程序地址空间
程序地址空间,本质上是操作系统为进程通过mm_struct描述的虚拟地址空间,让每个进程都能访问一个独立的完整的虚拟地址,通过映射之后,实现在屋里内存上的离散存储,提高内存利用率,提高了内存访问控制
5.虚拟地址组成
在虚拟地址空间中将整个空间划分为一个个小的分页
通常大小是4096字节
段页式内存管理:
概念:将虚拟地址空间先进行分段管理,然后再每个段进行分页式管理,集合了分段分页的优点
地址中包含:段号,段内页号,页内偏移
1.通过段号在段表中找到段表项
2.在段表项中找到段内页表地址
3.通过段内页号在段内页表中找到页表项
4.通过页表项中的物理块起始地址加上页内偏移得到物理地址
以上是关于Linux 进程操作系统 进程状态(僵尸进程) 环境变量 程序地址空间的主要内容,如果未能解决你的问题,请参考以下文章
Linux 进程操作系统 进程状态(僵尸进程) 环境变量 程序地址空间
Linux 进程操作系统 进程状态(僵尸进程) 环境变量 程序地址空间
Linux 进程操作系统 进程状态(僵尸进程) 环境变量 程序地址空间