操作系统:第二章(实验)

主要内容:利用C语言或者在硬件环境/模拟环境中实现操作系统。

国内外现状

  • MIT:xv6和JOS
    7千行以下,C语言,支持x86 SMP(Symmetric Multiprocessing 对称多处理器)架构。(PS:CPU常见三大架构SMP、NUMA、MPP)
  • Harvard:OS161-1.4.1
    1万1千行代码,C语言,支持MIPS架构。
  • Columbia:Linux
    部分Linux核心代码,C语言。
  • Berkeley:Nachos
    1万行代码,C++/JAVA语言,模拟MIPS。
  • Stanford:PintOS
    1万1千行代码,C语言。
  • Univ. of Maryland:geek OS
    <1万行代码,C语言,x86
  • 清华:ucore
    200~1万行,C语言,以x86-32为主,且支持x86-64/ARM/MIPS

SMP

SMP (Symmetric Multiprocessing) , 对称多处理器. 顾名思义, 在SMP中所有的处理器都是对等的, 它们通过总线连接共享同一块物理内存,这也就导致了系统中所有资源(CPU、内存、I/O等)都是共享的。日常中常见的PC/笔记本/手机/老的服务器采用SMP,架构简单,拓展性能非常差。

NUMA

NUMA ( Non-Uniform Memory Access),非均匀访问存储模型,这种模型的是为了解决smp扩容性很差而提出的技术方案。smp将多个cpu 连接一个内存池,导致请求经常发生冲突。然而numa将cpu的资源分开,以node 为单位进行切割,每个node 里有着独有的core ,memory 等资源,这也就导致了cpu在性能使用上的提升,但是同样存在问题就是2个node 之间的资源交互非常慢,当cpu增多的情况下,性能提升的幅度并不是很高。所以可以看到很多明明有很多core的服务器却只有2个node区。

MPP

MPP (Massive Parallel Processing) ,这个其实可以理解为刀片服务器,每个刀扇里的都是一台独立的smp架构服务器,且每个刀扇之间均有高性能的网络设备进行交互,保证了smp服务器之间的数据传输性能。相比numa 来说更适合大规模的计算,唯一不足的是,当其中的smp 节点增多的情况下,与之对应的计算管理系统也需要相对应的提高。

实验设计

实验环境:Windows/Linux
源码阅读工具:understand
源码文档自动生成工具:Doxygen
编译环境:gcc,make,Binutils
真实/虚拟环境:x86机器/QEMU
调试工具:改进的QEMU+(GDB/IDE)
IDE:Eclipse-CDT

设计思路

外设:I/O管理 中断管理
内存:虚存管理/页表/缺页处理/页替换算法
CPU:进程管理/调度器算法
并发:信息量实现和同步互斥应用
存储:基于链表/FAT的文件系统

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值