- 堆栈段:用来存放子程序的返回地址、子程序的参数以及程序的局部变量。还包括进程控制块PCB,PCB处于进程的核心堆栈的底部,不需要额外分配空间。
可以看我的另一篇博客:代码段(codesegment/textsegment)、数据段(datasegment)、bss段(bsssegment)、rodata段、栈(stack)、堆(heap)
四、进程的种类
-
交互进程:有一个shell启动的进程,既可以在前台运行,也可以在后台运行;
-
批处理进程:不与特定的终端相关联,提交到等待队列中顺序执行进程;
-
守护进程:在Linux启动时初始化,需要时运行于后台的一些服务进程
五、进程的创建
使用fork()函数创建进程,这个函数名是“分叉”的意思,具体使用格式如下
#include <sys/type.h> //提供类型pid_t的定义
#include <unistd.h> //提供函数的定义
pid_t fork(); //创建进程
调用fork()函数后,Linux系统会赋值一个与父进程完全相同的子进程,这两个进程共享代码空间,但数据空间是相互独立的,子进程的数据空间中的内容是父进程的完整复制,指令指针也完全相同。唯一不同的是子进程fork的返回值是0,父进程fork的返回值是子进程的进程号,如果fork不成功,父进程会返回错误。
六、 Linux进程控制块task_struct的结构描述
Linux在内核空间专门开辟了一个指针数组task,用来有效的管理所有进程控制块task_struct结构的指针。Task数组大小限制了系统并发执行的进程总数。task_struct结构包含如下信息:
-
进程当前的状态;
-
调度信息:进程的类别、调度策略、优先级等调度属性;
-
进程标识:进程标识号PID、组标识号GID、用户标识UID;
-
进程通信信息:Linux支持多种通信机制,也存储在其中;
-
进程的家族关系:有许多进程指针,分别指向祖先进程(初始化进程)、父进程、子进程及新、老进程的task_struct结构;
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
总结
就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!
金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。
整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。**
[外链图片转存中…(img-kk1dTneU-1711147633850)]