HARMONY

HARMONY

微内核

  • 针对5G+IOT

  • 全场景

    • 手机,pc,平板,车辆,只能穿戴,家具设备。。。。
  • 弹性部署

  • 开源

  • 方舟编译器

  • 混合内核linux+LiteOS+…android

什么是操作系统?

软件-OS -CPU-memory-hd

操作系统(编程语言)

管理硬件内存
OS硬盘
cpu
管理应用进程

Kernel

cpu调度文件系统
kernel应用管理进程调度
内存管理中断处理设备驱动

宏内核

cpu调度文件系统
kernel应用管理进程调度
内存管理中断处理设备驱动

微内核

cpu调度用户文件系统
用户kernel应用管理进程调度
内存管理用户中断处理设备驱动

微内核的优点:易拆装。缺点:运行速度底一点。

外核

officebrowser
外核外核
kernel
cpu调度内存管理中断处理设备驱动应用管理进程调度文件系统

VMM

硬件资源过剩

  • | OS | OS | OS | OS | OS |
    | ---- | ---- | --------------------------- | ---- | ---- |
    | | | vmm virtual machine monitor | | |
    | | | HD | | |

cmos

cmos:(complementary Metal Oxide Semiconductor)(电池)开机系统

中断:Ox80中断,硬件和操作系统打交道的时候是中断信号。

软件和操作系统打交道的时候就是软中断信号。

APP系统调用内核态
  1. app发出Ox80中断或调用sysenter原语

  2. OS进入内核态

  3. 在中断向量表中查找处理例程

  4. 保存硬件现场CSIP等寄存器值

  5. 保存app现场,堆栈与寄存器的值

  6. 执行中断例程system_call

    1.根据参数与编号寻找对应例程

    2.执行返回

7.回复现场

8.返回用户态

9.app继续执行 The mediation intermediary agent 中介,媒介 instrumentation 仪表

Fiber 纤程 ,线程里的线程 fiber n.纤维

Thread n.线 线程 vt.穿过;穿线;使交织 vi;通过;穿透过 agent n.代理

某种特定的情况下纤程比线程运算的快。

FIBER vs Thread

FIBER 一般用在回调函数

纤程的应用场景:用户空间的易步编程

  1. Callable+Future

  2. Guava的扩展 Listenable Future

  3. Rx Java响应式编程

  4. Quasar库(JAVA agent)

  5. 期待Fiber cache缓存 registers n.寄存器 v.登记,挂号邮寄 n.登记员,登记薄

寄存器的层次结构

(深入理解计算机系统,原书第三版p421)。

更小,更快,成本更高L0:寄存器cpu内存
L1:高速缓存cpu内存,cache line 缓存行
L2:高速缓存cpu内存,cache line 缓存行
L3:高速缓存cache line 缓存行
L4:主存cpu共享
L5:磁盘cpu共享
L6:远程文件储存cpu共享
从cpu到大约需要的cpu周期大约需要的时间
主存约60-80纳秒
QPI总线传输约20ns
L3 cache约40-45cycles约15ns
L2 cache约10 cycles约3ns
L1 cache约3-4 cycles约1ns
寄存器1cycle

超线程:一个ALU对应多个pc|Registers 所谓的四核八线程。

缓存行:

缓存行越大,局部性空间效率越高,但读取时间慢。

缓存行越小,局部性空间效率越低,但读取时间快。

void adj,无效的;空白的;无人(居住)的缺乏的 n,空间,空白,空虚感

disorder 障碍 n,混乱,骚乱 vt,使失调;扰乱 cpu的乱序执行是为了保障有序性。

DCL

DCL Data control Language:数据控制语言

进程是什么?------>程序启动进入内存,资源分配的基本单位。

线程是什么?------>程序执行的基本单位

程序如何开始运行?----->cpu.读指令,pc(储存指令地址)读数据Register,计算,回写—>下一条

线程如何进行调度?------>linux 线程调度器(OS操作系统)

线程切换的概念是什么?—>context Switch CPU保存现场,执行新线程,恢复现场,继续执行原线程这样的一个过程。、

JAVA里不能写太多的线程。GO语言能够写很多的线程。

JVM
线程模型OS Kernel Thread
hotspot模型?1:1
golang m:n 的关系2000协程
rust语言史上最NB的语言不可以有野指针(内存安全)
可变不共享(线程安全)

锁的概念

锁的概念:某一时刻只能允许一个人去做 synchronized(锁)

不持有锁的线程咋办?忙等待/进队列等待。

等待队列需要操作系统调用while循环消耗cpu资源
轻量级忙等待
等待队列重量级锁

咋办?忙等待/进队列等待。

等待队列需要操作系统调用while循环消耗cpu资源
轻量级忙等待
等待队列重量级锁
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值