操作系统

冯诺依曼计算机模型
  • 计算机在运行时,先从内存中取出第一条指令,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后按地址把结果送到内存中去,接下来,在取出第二条指令,在控制器的指挥下完成规定操作。依次执行下去,直到遇到停止指令。
  • 程序和数据一样存储,按程序的编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最基本的工作模型。
计算机五大核心组成部分
  • 控制器,对程序规定的信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
  • 运算器:对数据进行算术运算和逻辑运算
  • 存储器:存储程序、数据和各种信号、命令等信息
  • 输入设备
  • 输出设备
CPU指令结构

CPU内部结构:控制单元,运算单元,数据单元
在这里插入图片描述

CPU缓存结构

常见的为三级缓存结构
L1:逻辑核独占
L2:物理核独占,逻辑核共享
L3:所有物理核共享
存储器存储空间大小:内存>L3>L2>L1>寄存器;
存储器速度快慢排序:寄存器>L1>L2>L3>内存;

  • 缓存是由最小的存储区块-缓存行(cacheline)组成,缓存行大小通常为64byte。
  • 时间局部性:如果一个信息正在被访问,那么近期它很可能还会被访问
  • 空间局部性:如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
  • 带有高速缓存的CPU执行计算的流程:
    1、程序以及数据被加载到主内存
    2、指令和数据被加载到CPU的高速缓存
    3、CPU执行指令,把结果写到高速缓存
    4、高速缓存中的数据写会主内存
CPU运行安全等级

4个运行级别:ring0,ring1,ring2,ring3
Linux和windows只用到了两个安全级别ring0和ring3。操作系统内部内部程序指令通常运行在ring0级别,操作系统以外的第三方程序运行在ring3级别,第三方程序如果要调用操作系统内部函数功能,由于运行安全级别不够,必须切换CPU运行状态,从ring3切换到ring0,然后执行系统函数,所以说JVM创建线程,线程阻塞唤醒是重型操作了,因为CPU要切换运行状态。

操作系统内存管理

操作系统有用户空间与内核空间两个概念,目的也是为了做到程序运行安全隔离与稳定

内核线程模型
  • KLT:系统内核管理线程,内核保存线程状态和上下文信息,线程阻塞不会引起进程阻塞。在多处理器系统上,多线程在多处理器上并行运行。线程的创建、调度和管理由内核完成,效率比ULT要慢,比进程操作快。JVM属于KLT线程模型
  • ULT:用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度和管理线程的函数来控制用户线程。不需要用户态/内核态切换,速度快。内核对ULT无感知,线程阻塞则进程(包括它的所有线程)阻塞。
虚拟机指令集架构
  • 栈指令集架构(JVM属于栈指令集架构):
    设计和实现更简单,适用于资源受限的系统;
    避开了寄存器的分配难题:使用零地址指令方式分配;
    指令流中的指令大部分是零地址指令,其执行过程依赖与操作栈,指令集更小,编译器容易实现;
    不需要硬件支持,可移植性更好,更好实现跨平台。
  • 寄存器指令集架构:
    典型的应用是x86的二进制指令集:比如传统的PC以及Android的Davlik虚拟机。
    指令集架构则完全依赖硬件,可移植性差。
    性能优秀和执行更高效。
    花费更少的指令去完成一项操作。
    在大部分情况下,基于寄存器架构的指令集往往都以一地址指令、 二地址指令和三地址指令为主,而基于栈式架构的指令集却是以零地址指令为主。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jzs1064

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值