栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

小陈谈Java-进程到底是个啥???

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小陈谈Java-进程到底是个啥???

一.什么是进程

 

在计算机运行的过程中并不是一个一个软件的运行,是有很多软件一起进行运行,那么我们暂时可以把一个软件的运行叫一个进程。

二.进程的组成 

进程 = 描述(PCB)+ 组织

1.描述(PCB)

pcb可以理解为一个c语言的结构体或者是Java的一个类

class PCB {
// 进程的唯一标识 —— pid;
// 进程关联的程序信息,例如哪个程序,加载到内存中的区域等
// 分配给该资源使用的各个资源
// 进度调度信息
}

其中,pid是进程的唯一的身份标识,它由以下几个属性组成

内存指针:描述了这个进程使用的内存空间是哪个范围

文件描述符表:描述了进程打开了哪些文件

进程的状态:

进程的优先级:安排时间表的时候先安排谁,后按安排谁

进程的记账信息:安排同时考虑历史记录

进程的上下文:进程可能执行了某个操作,执行了一半就被调度走了,过一段时间回来吗需要从上次的地方继续往下

 2.组织

操作系统再通过这种数据结构,例如线性表、搜索树等将 PCB 对象组织起来,方便管理时进行增删查改的操作。

三.进程的虚拟地址空间

计算机的能存空间是有限的,那么当给进程分布内存空间的时候难免会有重复,但是我们却并没有发现进程之间的互相干扰,那么这个就得益于进程的虚拟地址。

从图中我们可以看到,通过mmu(保证访问地址的正确性),操作系统将一个地址转换为一段虚拟地址, 进程就在这一段虚拟地址上操作,确保了进程之间的互不影响。那进程就是通过我们前面所说的内存指针来找到这一段地址。

这样就体现了进程的隔离性

四.进程间的通信

上面我们可以看到了,进程都是在自己的虚拟空间中运行,那么进程之间的合作又是怎么完成的呢。我们可以想想,工厂的流水线之间都是相互独立的,相互不干涉的,那么我们就有一个公共区域,将自己做好的东西放在公共区域上,然后,另外一条流水线上的就会来拿,(外卖柜也是同理)。那么进程之间的通信也是如此,通过一个公共区域,两个进程来同时访问,就可以做到进程之间的相互合作和通信。

五.进程的调度

说到进程的调度,就不得不提到两个概念“并发”,“并行”

并发:宏观上同时,微观上不同时,轮流占用cpu

并行:两个或多个进程在cpu上同时进行

那么真正的在操作系统中,并发和并行是都存在的。进程的调度就是既有并发又有并行,操作系统会尽量让每个进程都能做上事。具体的调度过程还是比较复杂的,这里就不具体展开啦

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031510.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号