资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Java进程怎么理解-创新互联

这篇文章主要介绍了Java进程怎么理解的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java进程怎么理解文章都会有所收获,下面我们一起来看看吧。

成都创新互联公司专注于松桃企业网站建设,响应式网站建设,商城网站开发。松桃网站建设公司,为松桃等地区提供建站服务。全流程按需网站设计,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

进程描述


广义上讲,所有进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。

进程控制块

每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。

task_struct结构体

task_struct是Linux内核下的一种数据结构,它会被装载到RAM里并且包含着进程的信息,每个进程把它的信息放在task_struct结构体里task_struct包含了这些内容:

标示符:描述本进程的唯一标示符

状态:任务状态,退出代码,退出信息等。

优先级:相对于其他进程的优先级

程序计数器:程序中被执行的下一条指令的地址。

内存地址:包括程序代码和进程相关的数据的指针,还有和其他进程共享内存块的指针

上下文数据:进程执行时处理的寄存器中的数据

I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表

记账信息:包括处理器时间总和,使用时钟数总和、时间限制、记账信号等。

保存进程信息的数据结构叫做task_struct,所有运行在系统里的进程都以task_struct链表的形式存在内核中进程的信息可通过/proc系统文件夹查看,要获取PID为400的进程信息,需要查看/proc/400这个文件夹。大多数进程同样可以使用top和ps这些用户级工具获取。

进程标示符


进程id(PID)

父进程id(PPID)

进程位置

  1. 进程内存映像


Linux下C程序生成主要由4个步骤组成:预编译、编译、汇编、链接。编译器gcc经过预编译、编译、汇编3个步骤将源程序文件转换成目标文件。如果程序有多个目标文件或程序中使用了库函数,则编译器还需要将所有目标文件及所需的库文件链接起来,最后生成可执行程序。当程序执行时,操作系统将可执行程序复制到内存中。程序转为进程通常需要以下几个步骤:

*内核将程序读入内存,为程序分配内存空间;

*内核为该进程保存PID及相应的状态信息,把进程放到运行队列中等待执行。程序转化为进程后就可被操作系统的调度程序执行了。
进程的内存映像是指内核在内存中如何存放可执行程序文件。在将程序转化为进程的过程中,操作系统将可执行程序从硬盘复制到内存中。布局如下:

Java进程怎么理解

2.进程映像位置依赖于使用的内存管理

3.可执行程序与进程内存映像的不同之处在于:

a.可执行程序位于磁盘中而内存映像位于内存

b.可支持行程序没有堆栈,因为程序程序被加载到内存中才会分配堆栈。

c.可执行程序虽然也有未初始化数据段但它并并不存储于硬盘中的可执行文件中。

d.可执行程序是静态的,不变的,而内在映像随着程序的执行是静态变化的,比如数据段随着程序执行要存储的变量值,栈在函数调用时也是在不断变化的。

#include 
#include 
int g_val = 100;
void test()
{
int a = 10;
int b = 10;
printf("test stack1 address : 0x%x\n", &a);
printf("test stack2 address : 0x%x\n", &b);
}
void (*fp)();
int main()
{
int a = 10;
int *heap = malloc(sizeof(int));
fp = test;
printf("code address : 0x%x\n", fp);
printf("data address : 0x%x\n", &g_val);
printf("heap address : 0x%x\n", heap);
printf("main stack0 address : 0x%x\n", &a);
fp();
return 0;
}

Java进程怎么理解

关于“Java进程怎么理解”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java进程怎么理解”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:Java进程怎么理解-创新互联
标题链接:http://cdkjz.cn/article/dhsssi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220