加入收藏 | 设为首页 | 会员中心 | 我要投稿 怀化站长网 (https://www.0745zz.cn/)- 语音技术、云资源管理、物联设备、云计算、决策智能!
当前位置: 首页 > 站长资讯 > 动态 > 正文

Nginx到底能做什么?

发布时间:2021-02-04 10:14:39 所属栏目:动态 来源:互联网
导读:每个CPU核心有独立的L1、L2高速缓存,所以L1和L2是on-chip缓存;L3是多个CPU核心共享的,它是off-chip缓存。 L1缓存又分为i-cache(指令缓存)和d-cache(数据缓存),L1缓存通常只有32K/64KB,速度高达4 cycles。 L2缓存能到256KB,速度在8 cycles左右。 L3则高

每个CPU核心有独立的L1、L2高速缓存,所以L1和L2是on-chip缓存;L3是多个CPU核心共享的,它是off-chip缓存。

L1缓存又分为i-cache(指令缓存)和d-cache(数据缓存),L1缓存通常只有32K/64KB,速度高达4 cycles。

L2缓存能到256KB,速度在8 cycles左右。

L3则高达30MB,速度32 cycles左右。

而内存高达数G,访存时延则在200 cycles左右。

所以CPU->寄存器->L1->L2->L3->内存->磁盘构成存储层级结构,越靠近CPU,存储容量越小、速度越快、单位成本越高,越远离CPU,存储容量越大、速度越慢、单位成本越低。

### 虚拟存储器(VM)

进程和虚拟地址空间是操作系统的2个核心抽象。

系统中的所有进程共享CPU和主存资源,虚拟存储是对主存的抽象,它为每个进程提供一个大的、一致的、私有的地址空间,我们gdb调试的时候,打印出来的变量地址是虚拟地址。

操作系统+CPU硬件(MMU)紧密合作完成虚拟地址到物理地址的翻译(映射),这个过程总是沉默的自动的进行,不需要应用程序员的任何干预。

每个进程有一个单独的页表(Page Table),页表是一个页表条目(PTE)的数组,该表的内容由操作系统管理,虚拟地址空间中的每个页(4M或者8M)通过查找页表找到物理地址,页表往往是层级式的,多级页表减少了页表的存储需求,命失(Page Fault)将导致页面调度(Swapping或者Paging),这个惩罚很重,所以,我们要改善程序的行为,让它有更好的局部性,如果一段时间内访存的地址过于发散,将导致颠簸(Thrashing),从而严重影响程序性能。

为了加速地址翻译,MMU中增加了一个关于PTE的小的缓存,叫翻译后备缓冲器(TLB),地址翻译单元做地址翻译的时候,会先查询TLB,只有TLB命失才会查询高速缓存(L1-2-3)。

## 汇编基础

了解汇编,了解几种寻址模式,了解数据操作、分支、传送、控制跳转指令。

理解C语言的if else、while/do while/for、switch case、函数调用是怎么翻译成汇编代码。

理解ebp+esp寄存器在函数调用过程中是如何构建和撤销栈帧的。
 

当然,CrossOver并非完美。就如同Wine一样,它并不能完美兼容所有Windows软件。但如果你想要解燃眉之急,CrossOver是一个值得考虑的方案。

总结

当前M1 MacBook对Windows的兼容的确不算友好,但它并非天生无法运行Windows软件。随着时间的推移,基于新硬件架构的虚拟机软件会愈发丰富成熟,而苹果高层也曾经表示,M1版MacBook是有核心技术运行Windows 10 ARM系统的,但这需要微软授权。当然,如果你现在就需要macOS/Windows双生态,M1版MacBook并不是一个单一的好选择,有需要的朋友还是搭配Windows PC同时使用,或者选择X86版的MacBook吧。

(编辑:怀化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读