重点:存储系统/分布式系统
得到数据:
- 数据模型计算(简单系统)
- 实现一个操作系统CPU(成本高)
- 仿真实验
文章类型:
- 国际会议 10-15slices
- 期刊论文
做OS研究为其他方面提供支持
一 Advanced OS Overview
Rethink OS Components
1、回顾os的发展历史
2、
3、
- 单机系统,打通硬件和软件之间的桥梁
- 内存管理、进程管理、同步机制、文件系统、设备驱动
- VMM系统虚拟机
- 安全性
- 正确性
- 分布式系统
4、目的
- 干净的虚拟环境:让进程得到需要的资源去运行
- 硬件无关
- 资源相互隔离且可以共享,管理
- 数据存储、可靠
下面四个是新的要求
- 保护
- 实时支持
- 并行
- 人机交互
Strategy 战略
- How do we organize the Os effectively for development,evolution, performance, and security?
- 我们如何有效地组织操作系统以实现开发、演进、性能和安全性?
- How do we use multi- processor machines effectively?
- 我们如何有效地使用多处理器机器?
5、内存管理
目的
- 虚拟内存:提供了无限物理内存的错觉
- 交换:根据需要将进程移至磁盘
- 分页:允许进程仅在内存中运行活动页面
- 缓冲缓存:加速输入/输出访问
策略
- 我们如何协调机器以共享内存?
- 随着内存变得丰富,我们如何简化内存管理?
6、调度
目的
- 提供了在单个处理器上同时运行多个进程的错觉
- 上下文切换:改变处理器的关注点
- 涉及保存和恢复状态
- 必要时越过内核边界
策略
- 我们如何在同时实现公平性、高吞吐量和响应性?
- 我们如何减少或避免上下文切换的成本?
7、单机:同步管理
目的
- 提供在任意上下文切换情况下正确执行或协调线程的能力。
策略
- 原子操作:一切或无
- 互斥:一次只允许一个线程进入临界区
- 信号量:基于计数的原子锁
- 避免死锁:避免在资源上形成循环等待。
8、文件系统
目的
- 文件:数据 + 属性
- -文件系统服务:
- - 组织
- - 命名
- - 访问
- - 同步
- - 保护和安全
策略
- 如何使不同的文件系统在一起工作,甚至跨越多台机器?
- 如何为在多台机器上的文件副本提供一致性、可用性和可靠性?
- 如何处理非常大的数据集?
9、单机:I/O 设备
目的
- - I/O 设备往往比内存速度慢得多
- - 缓存:将额外的数据存储在内存中,以期望在近期内再次使用
策略
- 如何协调跨多台机器的内存资源以提高性能?
- 如何处理具有新特性的新设备?
Tendency of OS -- Performance
1、趋势
- 性能
- 可靠性
- 正确性
2、然而,操作系统和应用程序能否有效地利用这些核心?
3、常见的OS
加速比:希望随着核数的增加系统性能能够线性增加,但是没有达到这样的效果
这一系列词汇似乎是关于计算机技术和操作系统的。以下是它们的翻译:
- Apache: 一个流行的开源Web服务器软件。
- OLTP: 在计算机科学中指的是联机事务处理,用于处理实时的事务和数据库操作。
- RMS: 可能指"Record Management System",这是一种用于管理记录和数据的系统。
- Windows: 微软的操作系统。
- Linux: 一种开源的类Unix操作系统。
- FreeBSD: 一种类Unix操作系统,是从BSD(Berkeley Software Distribution)发展而来的
- NetBSD: 另一种类Unix操作系统,与FreeBSD有关,但有一些不同的设计目标。
- Solaris: 一种由Oracle公司开发的Unix操作系统。
- Multicore: 多核,指的是一个计算机芯片上拥有多个处理核心。
tmpfs 是内存中的文件系统,允许多个CPU同时访问一个文件系统
内部核互斥竞争带来的性能陡降
4、结论
- 没有一个系统在所有方面的微基准测试中都明显优于其他系统。
- 在应用程序基准测试中,Linux和Solaris表现竞争力,而FreeBSD在性能和可扩展性上都不如它们。
- 在多核平台上,保护共享数据结构的内核同步是主要的性能瓶颈。
Tendency of OS -- Reliability
1、可靠性:系统或组件在规定条件下在指定时间内执行其所需功能的能力。
- 通常比仅仅“可用性”更为强大:这意味着系统不仅“运行”,而且还能正确工作。
- 包括可用性、安全性、容错/耐久性。
- 必须确保数据在系统崩溃、磁盘崩溃等情况下能够存活。
2、安全问题
3、威胁分析
- 我们试图保护什么?(为什么?)
- 这些资产存在哪些漏洞?
- 谁可能(意外地)利用漏洞?
- 我们如何防范特定威胁?
- 我们为防范它愿意付出多少代价?
4、核心技术问题
- 控制对计算机和数据资源的访问
- 控制访问权限从持有者传递到持有者的方式,从人到人,从程序到程序
- 防止恶意行为和错误破坏控制措施
5、系统安全技术
Tendency of OS -- Correctness + Summary
1、正确性及总结
2、如何确保成程序是正确的,要给出不同层面的定义
3、保证正确性面临的挑战
组件来自不同的来源
- 手动编写的汇编:C/C++
- 类型安全的语言:Java, C#
- Go, Rust
- 领域特定语言(DSL)
许多不同的特性
- 代码加载
- 控制抽象
- jmp(goto)/函数
- 异常/中断
- 进程/线程
- 内存更新
- 类型保持更新
- 类型更改更新
- 指针算术 (c语言特有的)
4、总结
AlM(Abstract Machine Language)机器
- 低级
- 能够实现中断处理程序和线程库
程序逻辑
- 遵循分离逻辑中的局部推理
- 通过内存所有权转移对cli/sti、switch、block/unblock进行建模
- 能够对不同的锁和条件变量实现进行认证
二 OS Architecture &Structure 操作系统架构与结构
2.1 Overview
1、为什么研究架构与结构
- 对于 用户/开发者
- 关注点:是否方便实用,方便学习,可靠,速度
- 对于 系统架构师/开发者
- 关注点:方便设计、实施、维护;灵活性、可靠性、没有错误、有效性
2、历史