自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 11_线程(1)

同一个程序中的所有线程均会独立执行相同程序,且共享一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的UNIX进程只是多线程程序的一个特例,该进程只包含一个线程)调用fork来创建进程的代价相对较高,即便利用写时复制技术,仍然需要复制诸如内存页表和文件描述符之类的多种进程属性,这意味着fork调用在时间上的开销依然不菲。线程是轻量级的进程(LWP:Light Weight Process),在Linux环境下线程的本质是进程。6、连接已经终止的线程,用来回收子线程资源。

2022-12-14 17:50:06 242 1

原创 09_进程控制

其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵尸进程,将因为没有可用的进程号而导致系统不能产生新的进程,此即为僵尸进程的危害,应当避免。每当出现一个孤儿进程的时候,内核就把孤儿进程的父进程设置为init(也就是pid为1的进程),而init进程会循环的wait()它已经退出的子进程。在每个进程退出的时候,内核释放该进程所有的资源、包括打开的文件、占用的内存等。父进程运行结束,但子进程还在运行(未运行结束),这样的子进程就称为孤儿进程(Orphan Process)。

2022-12-12 17:15:37 76

原创 08_exec函数族

exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段,堆栈等都已经被新的内容取代,只留下进程ID等一些表面上的信息仍保持原样。看上去还是旧的躯壳,却已经注入了新的灵魂。只有调用失败了,它们才会返回-1,从原程序的调用点接着往下执行。exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,换句话说,就是在调用进程内部执行一个可执行文件。(写代码时一般都是先用fork创建一个子进程,然后再调用exec函数族来执行exec中的可执行文件)

2022-12-12 13:00:51 174

原创 07_进程创建

使用GDB调式的时候,GDB默认只能跟踪一个进程,可以在fork函数调用之前,通过指令设置GDB调试工具跟踪父进程或者时跟踪子进程,默认跟踪父进程。注意:fork之后父子进程共享文件,fork产生的子进程与父进程共享文件描述符,引用计数增加,共享文件描述指针。默认为on,表示调试当前进程的时候,其他进程继续运行,如果为off,调试当前进程的时候,其他进程被GDB挂起。系统允许一个进程创建新进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构模型。切换当前调试的进程:inferior id。

2022-11-23 17:10:40 444

原创 06_进程

task_struct结构体内部成员:进程id,进程状态,进程切换时需要保存和恢复的一些CPU寄存器,描述虚拟地址空间的信息,描述控制终端的信息,当前工作目录,umask掩码,文件描述符,和信号相关的信息,用户id组id,会话和进程组,进程可以使用的资源上限。并发:在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得宏观上具有多个进程同时执行的效果,但微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。进程号总是唯一的,但可以重用,当一个进程终止后,其进程号就可以再次使用。

2022-11-15 12:46:43 72

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除