欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 13_03 _Linux进程管理之一【攻城狮论坛の免费分享】有大用

线性地址就是虚拟地址 

image.png

image.png

 内核数据结构

 任务结构


image.png


image.png

image.png


线性地址(就是虚拟地) 物理地址

image.png


本进程以为 4G(1G是内核使用),其余3G供本进程使用

image.png


image.png


不停的动态的增加的内存就是堆内存,是属于用户的

栈内存是属于系统的,是本地变量,比如函数内部的变量

全局的在 initiazed data 中存放


image.png

image.png

MMU memory Manggement Unit 内存管理单元 管理虚拟内存页面和真实的物理内存页面之间的对应关系

TLB是cpu缓存内 缓存虚拟内存页面和真实的物理内存页面之间的对应关系

image.png


image.png

进程上下文切换  Context Switch

    环境

image.png

从内往外0环到3环

0环供系统使用

3环供用户使用

1,2环用不到 没作用


image.png


进程

    进程号

    内存空间

    用户

    父进程

    CPU time   (cpu上运行的时间)

image.png


rss resident size 常驻内存集 事实上位于物理内存当中的数据的大小 (不包括共享库) (物理内存当中的,而且不能被交换出去的) (交换就是内存不够用的时候,把内存交换到硬盘) (打开的文件可以交换,但是指令,变量等核心状态数据是不能够被交换的)

vsz virtual size 虚拟内存集 虚拟内存大小  (包括共享库)

image.png

常驻内存集 不包括swap交换

指令 以及变量等核心状态数据是不能被交换出去的,打开的文件是可以被交换出去的


image.png

时间 其实有两种:一种是真正的运行时间 (较短)

                         另一种是时钟走过的时间(较长,因为还包括切换进程的时间)(挂钟 挂表时长)




image.png

如果是两个cpu的话 执行指令可以在两个cpu,但是不能同时执行,因为指令是从上往下执行的


image.png

两个cpu可以运行一个进程,但不能同时运行一个进程,这是什么意思?可以,但是不能同时运行

image.png



并行编程模型  进程(process) 线程(thread)  一个进程可以分成几个线程 



image.png

image.png


image.png

使用线程:一个进程打开三个文件,然后三个线程共用这三个文件(共享打开的文件),所以线程开销小,更节约内存

使用进程:三个进程打开这三个文件三次,那么浪费内存




多进程                单进程多线程

防止数据有问题, 线程要加锁

image.png


线程加锁

死锁:两个资源都加了锁,两个线程都等待对方先放手


image.png



image.png

进程的状态


进程及作业管理

Uninterruptible sleep 不可中断的睡眠 (I/O是不可中断的,必须等到文件全部加载进来,唤醒才起作用)

Interruptible sleep    可中断的睡眠   (数据库进程是可中断的,随时有用户来随时可以唤醒的,不是,外部I/O的调用来导致睡眠的)(不过本质上数据库进程有用户进来也算I/O,这里为了说明可中断的问题,不说它是I/O)

Zombie     僵尸进程  正常运行了,也结束了,但是占据的内存就是不释放  (物理内存共4G,但是占用了2G,就是告诉你内存没有空间可用了,这是内存泄漏的一种表现) 程序经常是僵死态(进程处于僵死状态),能够回收过来的就是正常的,否则,就是彻底成了僵尸进程


(一个进程死了,由它的父进程来回收子进程内存)


sleep 睡眠态


image.png



image.png


进程是有父子关系的

image.png

所有进程都是另一个进程的子进程


kernel

init:          init是由内核生成的第一个进程   (其它的进程都由init来clone生成)  init挂了,整个系统就挂了

    clone        任何一个进程都是操作系统上init的子进程

  


[root@localhost ~]# export

[root@localhost ~]# echo $LANG

en

[root@localhost ~]#pstree

image.png




普通分类: