(1) 输入设备:键盘,鼠标
(2) 输出设备:显示器,打印机 其中硬盘(可做输入、输出)
(3) 存储器:内存
(4) CPU
进程:程序运行后,动态的
1.加载程序代码到内存,并分配进程内存2.cpu执行进程的代码(java:不是class字节码,而是机器码)
Java进程从写代码到执行
| 编译型语言 |
| 解释型型语言 |
静态编译java文件为class文件;翻译class字节码为机器码 (java进程启动后,就会创建一个java虚拟机,边运行边翻译字节码为机器码
进程是由操作系统创建及管理
进程:是系统分配资源(内存、网络、硬盘)的最小单位。
系统管理进程,会先创建一个进程的pcb结构体(用于描述进程信息),包括
(1) pid:标识进程的身份(类似数据库主键)
(2) 状态:包括运行,阻塞等等状态
(3) 内存指针:进程内存地址
(4)资源清单: io设备,硬盘文件
(5)调度信息:进程执行了多少代码,等待了多久
(6)上下文
操作系统管理进程:
系统对进程的调度
时间片轮转调度算法: 一个cpu以时间片轮转调度的方式,依次执行多个进程,给人感觉还是同时执行。(一个进程一个时间片,执行一段时间,就切换到下一个进程执行)
**上下文:**时间片切换出去,保留上下文(主存:没有处于时间片范围的进程信息),切换回来,要恢复下文(寄存器:处于时间片范围的进程)
并发:一个cpu以时间片轮转调度的方式,执行多个进程,给我们感觉像是同时执行(实际是一个肉眼无法感知的小范围时间)
并行:多个cpu在一个时间点,同时执行多个进程
真实的计算机中,既存在开友,也存在开行
一个进程,到底是就绪态,还是运行态,是由系统调度决定,进程是无法感知的
抢占式的调度: 有优先级比较高的任务,就需要以抢占式的方式,优先执行
通过进程的虚拟地址空间,映射到物理内存
隔离多个进程的内存:更安全=>假设大家都允许操作同一块物理内存就可能发生交叉感染(你修改的,我删除了)
存储;使用分页式存储管理
现代操作系统,都会使用一种虚拟内存的技术,用于在某些进程进入阻塞等不活跃的状态,把进程需要的数据,放在硬盘中。
系统中所有进程使用的内存,就可以超过物理内存的限制。扩展真实使用的内存
虚拟地址空间+(物理内存+硬盘)
进程要加载某些数据:
(1)通过虚拟地址空间,查找对应的物理内存中的数据
找到,就直接用
(2)如果找不到,就会产生一个缺页式中断,就会再次从虚拟内存保存在硬盘的部分去查找
上一篇:flex换轴,布局,语法,移动端
下一篇:大学英语笔记