Linux系统编程基础知识

程序:编译好的二进制文件,在磁盘上,不占用系统的资源(CPU,内存,设备,打开的文件,锁等)
进程:与操作系统原理联系紧密,进程是活跃的程序或者正在运行的程序,占用系统资源,在内存中执行

程序是剧本,进程是戏

1.PCB的 task_struct 结构
(1)pid_t类型的pid
(2)进程的状态:就绪态,运行态,挂起态,终止态
(3)进程切换时的需要保存和回复的一些寄存器内容
(4)描述虚拟地址空间的信息
(5)当前工作目录的位置
(6)umask掩码
(7)文件描述符表,包含很多指向file结构体的指针
(8)和信号相关的信息
(9)用户的id和组id
(10)会话(Session)和进程组
(11)进程可以使用的资源上限。ulimit -a(查看Linux各资源上限)
2.环境变量(每个进程都有自己的环境变量)
(1)extern char **environ(用环境变量时必须有此声明,environ以NULL结尾)
(2)getenv()获取环境变量的值
setenv() 设置环境变量的值
unsetenv() 删除环境变量name的定义
3.进程共享:读时共享,写时拷贝(拷贝0-3G用户空间)
gdb调试多进程:set follow-fork-mode chilld
set follow-fork-mode parent

发布了38 篇原创文章 · 获赞 13 · 访问量 4339

猜你喜欢

转载自blog.csdn.net/YanWenCheng_/article/details/103929794