欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux操作系统

程序员文章站 2022-06-20 08:44:55
...

描述进程

  1. task_struct – >进程控制块 -->PCB
  2. 进程标识符(pid):进程产生时, 在操作系统分配唯一的 pid
  3. 进程状态:就绪状态 运行状态 阻塞状态
  4. 程序计数器:保存下一个指令
  5. 内存指针:指向进程地址空间
  6. 上下文数据:保存上次执行的寄存器信息,当下一次获得时间片时,从上下文数据获得寄存器的值
    7.IO信息 & 记账信息
    /proc/[pid]/fd :查看当前打开文件描述符信息,操作是管理我们软件,会创建一个与pid数值一直的文件夹,保存进程信息
    cpu密集型程序:高频使用CPU IO密集型程序

获取当前进程的pid
#include<unistd.h>
pid_t getpid(void); //当前节点的id
pid_t getppid(void); //获取父节点的id
前台进程 & 后台进程
eg: "./out &"执行程序的时候加一个&符号将进程放到后台去运行
fg: 将后台进程调到前台进行
fork:(直接复制PCB和内存 复制相同的)
抢占式执行, 抢 cpu 去执行
代码共享,数据独有
kill + [pid] 杀死正在运行的进程 kill -9 [pid]强杀任何进程
进程状态
R(Running):运行状态,在就绪队列及正在运行的的进程
S(Sleep):睡眠状态,(可以打断睡眠)
D(Disk Sleep):磁盘睡眠状态,(要打醒)等待IO资源的时候
T(Stopped):暂停状态,(ctrl + z)
t(trace):跟踪状态,(例如GDB进行调试)
X(dead):死亡状态
Z(zombie):僵尸状态,会造成内存泄漏(无法释放PCB) (为什么会有僵尸状态)
孤儿进程:它的父进程变成init进程 (pid 为 1)
环境变量:
作用:为了保证OS能顾正常的运行所设立的一些变量
常见的环境变量:(使用指针数组进行存储)
PATH:命令或者可执行程序的搜索路径
HOME:刚登陆上来的工作目录
LD_LIBRARY_PATH:动态库或者静态库的一个搜索路径
SHELL:获取当前SHELL
常见的命令
echo []envexportPATH=[环境变量] env 查看系统的环境变量 (临时生效)export PATH=PATH:[一个路径] 添加环境变量
(永久生效)/etc/bashrc ~/.bashrc(隐藏文件) ~./bash_profile
sourse (~/.bash_profile) 使刚刚改变的环境变量生效

    set     设置环境变量
    unset $环境变量               去除环境变量

如何使用代码获得环境变量
1. main函数的参数 char* env[]
2. libc库中的全局变量environ
3. getenv(const char* name)
程序地址空间

进程优先级:
top 查看 PR ,PR值越低,优先级越高 进入后 r 更改priority(root去更改)
PR(new) = PR(old) + NI(nice) NI取值范围:-20 ~ 19
更改优先级:
renice -n 更改的值 -p [pid] (进程调度的解释权归操作系统)

相关标签: linux