ps:上一篇的知识没有讲全 此篇为补充~
目录
什么是进程?
进程 顾名思义就是正在运行的程序~ 像桌面上许许多多的“图标”
这些文件平时不使用的时候 就会安安静静的躺在硬盘上 当我们点击运行这些文件的时候 操作系统会将文件所需的指令加载到内存中 开始执行一些具体的工作 当一部分加载完毕之后 就会在桌面上显示出来 此时便称这些正在运行的程序叫“进程”
进程是资源分配的基本单位,各进程内存空间彼此独立 一个进程不能随意访问其它进程的地址空间
硬盘图片~
左边为固态硬盘 右边为机械硬盘 (这是笔记本中的硬盘 台式机中的硬盘跟这个略有差异)
进程是怎么运行的?
进程的状态
- 就绪(Ready) 进程已经准备就绪 随时可以上到CPU执行
- 执行(Running)进程正在执行中~
- 阻塞(Blocked)正在执行的程序因为某些原因被封存 暂时不会继续往下执行
- 创建(New)进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配
- 终止(Terminated)进程结束 因为出现异常 被系统终止无法再继续执行 (可以参考异常Exception 如果方法对于异常没有进行处理而被抛出的话 会在JVM中处理 也就是结束程序)
系统如何调度进程
对于进程来说 一个CUP同时只能执行一个程序 那么我们刚刚也看到了 在计算机中同时运行着上百个进程 我们的CUP能有多少个呢?
在我的电脑中的CUP一共是有8个核心 那么我们如何通过8个CUP核心来执行这么多进程呢?
此时 我们就不得不谈到我们的并行和并发
并行和并发
假设我们今天的安排 是有写作业与追剧
并行:我们可以选择先去写作业 等到作业完成我们再去追剧
并发:我们可以开着电视剧 然后边写作业 此时系统就好像是我们的注意力,我们的注意力不可能同时集中在“写作业”和“追剧”两件事情上,那么之所以我们能做到边写作业边看电视,就是因为我们的“注意力”在反复横跳,只要它跳地足够快,那么既按时完成作业,又不耽误看电视的目标还是可以完成的;