冯诺依曼体系结构
现代的计算机, 大多遵守冯诺依曼体系结构,所以在了解计算机是如何工作的之前,必须知道冯诺依曼体系结构,也就是输入,输出,CPU,存储器所构成的关系,他们的关系可以用图表示为:
- 输出设备: 计算机个用户汇报结果的设备. 例如:键盘、鼠标.
- 输入设备: 用户给计算机发号施令的设备. 例如:显示器,打印机.
-
存储器 : 分为外存和内存 , 用于存储数据 ( 使用二进制方式存储)
- CPU 中央处理器: 运算器:进行算术运算(+-*/)和逻辑判断. 控制器:if,while控制语句的执行方向 寄存器:CPU执行进程时,保存进程需要的数据
执行速度:寄存器(CPU)>>内存>硬盘
编译型语言 | 解释型语言 | |
需要编译的编程语言 | 运行时,将代码翻译为cpu能执行的机器码 | |
java | 静态编译java文件为class文件 | 翻译class字节码为机器码(java进程启动后,就会创建一个java虚 拟机,边运行边難译字节码为机器码) |
C++ | 编译为具体某个系统的机器码 |
什么是进程
每个应用程序运行于现代操作系统之上时,操作系统会提供一种抽象,好像系统上只有这个程序在运行,所有的硬件资源都被这个程序在使用。这种假象是通过抽象了一个进程的概念来完成的,进程可以说是计算机科学中最重要和最成功的概念之一。
进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。
进程调度
系统管理进程,会先创建一个进程的pcb结构体(用于描述进程信息) ,包括:
(1) pid:标识进程的身份(类似数据库主键)
(2)状态:包括运行,阻塞等等状态
(3)内存指针:进程内存地址
(4)资源清单:io设备,硬盘文件
(5) 调度信息:进程执行了多少代码,等待了多久
(6)上下文
操作系统管理进程
(1)描述:通过pcb结构体
(2)组织:把多个进程pcb组织起来(通过一定的数据结构(链表),组织相关的信息)
任务管理器:遍历
创建进程:创建一个pcb,添加到这个链表
关闭进程:从链表中删除
系统对进程的调度
时间片轮转调度算法: 一个cpu以时间片轮转调度(一个进程一个时间片,执行一段时间,就切换到下一个进程执行)的方式,依次执行多个进程,给人感觉还是同时执行。
并发:一个cpu以时间片轮转调度的方式,执行多个进程,给我们感觉像是是同时执行(实际是一个肉眼无法感知的小范围时间)
并行:多个cpu在一个时间点,同时执行多个进程
真实的计算机中,即存在并发,也存在并行
一个进程,到底是就绪态,还是运行态,是由系统调度决定,进程是无法感知的
抢占式的调度:有优先级比较高的任务,就需要以抢占式的方式,优先执行
进程:虚拟地址空间:使用分页式存储管理
虚拟内存:现代操作系统,都会使用一种虚拟内存的技术,用于在某些进程进入阻塞等不活跃的状态,把进程需要的数据,放在硬盘中
系统中所有进程使用的内存,就可以超过物理内存的限制(扩展真实使用的内存)
虚拟地址空间+(物理内容+硬盘)
进程要加载某些数据:
(1)通过虚拟地址空间,查找对应的物理内容中的数据找到,就直接用
(2)如果找不到,就会产生一个缺页式中断,就会再次从虚拟内存保存在硬盘的部分去查找