乐观学习,乐观生活,才能不断前进啊!!!
我的主页:optimistic_chen
我的专栏:c语言 ,Java ,Java数据结构
欢迎大家访问~
创作不易,大佬们点赞鼓励下吧~
文章目录
- 前言
- 计算机的历史
- 冯诺依曼体系
- 操作系统
- 进程
- 进程的标识符(pid)
- 进程调度
- 进程状态
- 优先级
- 进程的上下文
- 记账信息
- 完结
前言
经过了之前数据结构的学习,相信大多数人已经相比与开始的自己,已经有了十足的进步,结束数据结构的学习,为了揭开计算机背后神秘的面纱,同时为了更好迎接更多挑战,下面就让我们一起进入【Java EE初阶】部分吧!
计算机的历史
相比较于一座房子大小的初代计算机,目前我们普遍接触到的计算机已经很小、很便捷了。为了不断满足人类对计算的需求,从初代机械计算机到现在的电子计算机,科学家们遵循:更快捷、更稳定、更微型。
如果想要了解更加专业的计算机历史,可以去看看这本书:《计算机简史》
冯诺依曼体系
约翰·冯·诺依曼匈牙利犹太裔美籍数学家、计算机科学家、物理学家和化学家,美国国家科学院院士
计算机之父
如图可见,他的确是计算机祖师爷级别的人物。
那为什么要提到这位“祖师爷”呢?
现代的计算机大多数都遵循冯诺依曼体系结构
~ cpu(中央处理器):进行算术运算和逻辑判断
~存储器: 分为内存和外存,用于存储数据(使用二进制方式存储)
~ 输入设备: 用户给计算机发号施令的设备
~ 输出设备: 计算机个体用户汇报结果的设备
其中针对 存储空间的大小, 粗略比较的可以这样分:
硬盘>内存>>CPU
针对 数据访问速度的快慢 ,同样简单的比较:
CPU>>内存>硬盘
操作系统
首先明确一个点:操作系统是一个软件
作用:
- 管理各种硬件设备:通过驱动系统间接管理
- 保证各个程序稳定的运行环境(相互不影响)
要实现这些作用,操作系统先通过一些结构体 /类 把一个进程的核心信息 抽象提取出来并进行表示,再通过一定的数据结构,把多个这样的结构体/类的对象串起来。接下来就要了解 进程 这个概念
简单来说,一个运行起来的程序就称为进程
我们之后学习的主要方面的就是进程,相信大家都或多或少听说过”高并发,多线程“这样的”高端“术语。
进程
那么为了使进程更好的运行起来,就要提供给它优秀的环境,所以操作系统通过PCB这个结构体来描述进程。
进程是操作系统中,资源分配的基本单位。
进程的运行消耗硬件资源,执行指令都需要消耗CPU资源
进程的标识符(pid)
相当于进程的身份证号码,同一个机器,同一时刻,进程id一定不同。
进程调度
实际上我们计算机运行的进程数量远远多于CPU数量,此时就需要进程调度来负责解决。
并发:多个任务在同一个时间段内交替进行执行,通过任务间的快速切换来实现同时执行的错觉
并行:多个任务在同一时刻同时执行,每个任务都在单独的处理单元(CPU核心)上执行.
进程状态
面对这个状态,进程应该怎么调度
运行状态:进程已经获取到CPU资源且正在执行
就绪状态:进程可以随时到CPU上运行
阻塞状态:进程当前不能到CPU上运行
优先级
优先级说白了 就是先给谁分配时间 后给谁 分配时间 以及给谁分多分少的问题 。优先级高的肯定分配的资源就多。
进程的上下文
类似于游戏存档:进程在调度离开CPU时,任务没有完成,这个时候就会把CPU寄存器中的数据保存到内存中,当进程再次调度回到CPU时,可以恢复到离开前的状态,继续完成任务。
记账信息
类似于日志:操作系统会统计每个进程都分别执行了多久,分别执行了 哪些指令。操作系统也会避免某一个进程一直吃不到CPU资源 就会进行类似的统计,给吃的少的进程,适当多分配一些资源。
完结
如果这个系列博客对你有帮助的话,可以点一个免费的赞并收藏起来哟~
可以点点关注,避免找不到我~ ,我的主页:optimistic_chen
我们下期不见不散~~~