Linux操作系统

描述进程

  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 [ 环 境 变 量 ] e n v 查 看 系 统 的 环 境 变 量 ( 临 时 生 效 ) e x p o r t P A T H = [环境变量] env 查看系统的环境变量 (临时生效)export PATH= []envexportPATH=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] (进程调度的解释权归操作系统)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值