Linux进程的概念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tian_Luo_Girl/article/details/82145551

1 操作系统

设计OS的目的:
1.管理计算机软硬件资源
2.为用户程序提供一个良好的执行环境

1.1 OS如何管理计算机资源

1.描述被管理的对象
2.组织被管理的对象

1.1.1 如何描述被管理的对象

用struct结构体

1.1.2 如何组织被管理的对象

用链表或者其他更高效的数据结构

1.2 系统调用

系统调用:由操作系统提供的接口
库函数:开发者对部分系统调用进行适度封装,形成库函数

2 进程

概念:正在执行的程序

2.1 OS如何描述进程

struct——进程控制块(PCB)
在Liunx系统下PCB是task_struct

2.1.1 认识task_struct

task_struct内容分类
标识符:描述本进程的唯一标识符,用来区别其他进程
状态:任务状态,退出代码,退出信号等
优先级:相对于其他进程的优先级
程序计数器:记录下一条将被执行的指令的地址
内存指针:包括程序代码和进程相关数据的指针
上下文数据:进程执行时处理器的寄存器的数据
I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表
其他信息

2.2 进程状态

R运行状态:进程在运行中或者在运行队列中
S睡眠状态:进程在等待事件完成
D磁盘休眠状态:进程在等待IO结束
T停止状态:发送SIGSTOP信号给进程来停止进程,发送SIGCONT使进程继续
Z僵尸状态:进程退出并且父进程没有读取子进程退出的返回代码

2.2.1 僵尸进程的危害

1.进程的退出状态属于进程基本信息,也保存在PCB中,僵尸进程一直存在,就要一直维护着它的PCB,造成内存资源的浪费
2.内存泄漏

3 环境变量

在操作系统中用来指定操作系统运行环境的一些参数

环境变量可以被子进程继承

3.1常见的环境变量

PATH:指定命令的搜索路径
HOME:指定用户的主工作目录
HISTSIZE:指定保存历史命令记录的条数
SHELL:指定当前shell

猜你喜欢

转载自blog.csdn.net/Tian_Luo_Girl/article/details/82145551