操作系统与系统结构
操作系统与程序设计语言
的关系。

1. 从OS角度看计算机系统

操作系统是为了高效。

程序之间进行隔离,是需要虚拟内存和特权模式。

CPU内部,六级流水。
CPU外部有与总线的接口。


特权指令只能在特权模式下执行,靠中断机制进入特权模式。

虚拟内存,说起来很简单,
你的实际地址空间和物理地址空间,加了一层转换。
每个进程有个自己的页表。

快表,页表的缓存。

会有多级页表。

特权级

内核模式和用户模式。
用户程序运行在用户态。
储户和银行工作人员通过柜台隔离。
如何转换?用中断

每条指令间隙都检查是否有中断请求。

中断处理程序对中断进行响应。

虚拟存储+特权级 实现两个并发进程的隔离。
(操作系统的高效执行和安全执行,需要系统结构给予支持)

1. 从OS角度看RISC-V

从操作系统角度看,RISC-V CPU和其他CPU有什么区别和联系?

ISA,软件硬件 接口。

进程管理和调度–CPU
存储管理–内存 高速缓存
文件—磁盘
IO—外设

ARM和Intel最重要区别是低功耗。

技术角度看

X86里,CPU分成4个特权级。0 1 2 3
RISC-V里,分成 U S H M四种。

虚拟存储和x86类似

不一样在

高特权模式下的软件授权低特权模式软件处理中断

3. Rust语言与系统编程

C出现之后,很长一段时间,C是内核开发最主要的语言。
写内核需要什么样的语言?
一定要有一些需要汇编写。涉及到混合编程。混合之间转换的问题。
设计一个新的语言 有可能吗??又涉及一门新学科

构造底层软件,并为上层其他语言使用,提供平台。

门槛高,后期bug有好处。

要自己写一部分汇编程序,

函数调用,就是一个跳转。

某些优化会导致程序行为不一致。

函数调用栈。

4. RISC-V CPU启动

通常CPU启动,是要查看手册,查看系统加电之后的状态,把你的程序放在指定位置来启动。

在模拟器中做,在模拟器中查相关信息。
基于模拟器方便我们开发。


加电后,初始中断向量

后,确定状态的设置。

对内存初始化。
中断控制器,串口,DRAM。PCIE等等,扳级设备初始化设置。


CPU完成初始化,内存完成初始化。

start_addr 你所在指令的位置。

4. RISC-V CPU启动进一步分析

操作系统 是管理和控制整个硬件,硬件在加电之后,就开始应该逐步被操作系统接管。
怎么接管?需要了解,这样我们才能更清楚我们更好更有效的管理硬件。

分析一个系统有两个层面事情,一个静态分析,一个动态分析。
静态,看代码,分析
动态,模拟器跑起来。调试。
CPU加电之后,要重启,热启动的过程。
会有一系列状态初始化。
当硬件期待只有 有四个特权级
在M特权模式。
然后屏蔽了中断
然后让PC指向了一个起始地址 在0x1000
初始化过程中,还有设置相关寄存器、
0x1000是 MROM这个位置,最开始执行的代码
完成CPU初始化之后,完成板级初始化。
进入到0x8000 0000 DRAM
然后运行OPENSBI 是RISC-V的BootLoader

操作系统清华 向勇 陈渝(RISC-V)(2)---操作系统与系统结构和程序设计语言相关推荐

  1. 清华大学陈渝老师受聘车用操作系统与泛在操作系统联合实验室操作系统首席科学家

    汽车智能化已成为新一轮产业竞争的战略制高点.车用操作系统是智能网联汽车的灵魂,也是车路云一体化的基础.车用操作系统与芯片的协同变革将从根本上解决"缺芯少魂"问题,是实现国家战略的必 ...

  2. 操作系统笔记 清华大学陈渝

    课程概要 基本概念及原理 操作系统介绍 中断及系统调用 内存管理 进程及线程 调度 同步 文件系统 I/O子系统 1. 基本概念 操作系统是控制软件,管理应用程序,为应用程序提供服务,杀死应用程序,分 ...

  3. 【清华大学】操作系统 陈渝——Part6 全局页面置换算法

    [清华大学]操作系统 陈渝--Part6 局部页面置换算法 6.8 局部页面替换算法的问题,工作集模型 局部页面替换算法的问题 工作集模型 6.9 全局页面置换算法 1. 工作集页置换算法 2. 可变 ...

  4. 【清华大学】操作系统 陈渝 Part3 ——物理内存管理 之 连续内存分配

    [清华大学]操作系统 陈渝 Part3 --物理内存管理 之 连续内存分配 3.1计算机体系结构及内存分层 计算机体系机构 内存体系层次 管理内存方法 3.2地址空间 & 地址生成 地址空间定 ...

  5. RISC V (RV32+RV64) 架构 整体介绍

    文章目录 riscv 市场 芯片介绍 软件介绍 开发板介绍 PC介绍 riscv 架构 编程模型(指令集/寄存器/ABI/SBI) 运行状态 指令集 寄存器 riscv32和riscv64两者的区别 ...

  6. 计组学习笔记2(RISC v版)

    指令集解释 (规定:R[r]表示通用寄存器r的内容,M[addr]表示存储单元addr的内容,SEXT[imm]表示对imm进行符号扩展,ZEXT[imm]表示对imm进行零扩展) 整数运算类 -U型 ...

  7. 操作系统 清华大学 向勇 (一)绪论

    index:  1-2 什么是操作系统   1-3 为什么学习OS   1-4 怎么学习操作系统   1-5 操作系统实例   1-6操作系统历史 1-7操作系统的结构 1-2 什么是操作系统 1.没 ...

  8. 云服务器操作系统怎么安装,云服务器上怎么安装操作系统

    云服务器上怎么安装操作系统 内容精选 换一换 当创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享使用文件系统的目的.CIFS类型的文件系统不支持使用Linux操作系统的云服务 ...

  9. 操作系统(四)补充---DOS微软磁盘操作系统

    dos,是磁盘操作系统的缩写,是个人计算机上的一类操作系统.从1981年直到1995年的15年间,磁盘操作系统在IBM PC 兼容机市场中占有举足轻重的地位.而且,若是把部分以DOS为基础的Micro ...

  10. 操作系统以什么方式组织用户使用计算机,操作系统习题

    1.1 什么是计算机的操作系统? 操作系统是有效地控制和管理计算机系统资源,合理地组织计算机的工作流程, 以及方便用户的程序的集合 1.2 操作系统管理计算机系统的哪些资源? 操作系统管理和控制计算机 ...

最新文章

  1. 解决VirtualBox 上的XP 关机时重启 , 启动时蓝屏 ,点击电源选项蓝屏
  2. Django使用Social-Auth实现微信第三方网站扫码登录
  3. 线程:Timer定时器
  4. mysql有选择地输出数据_有条件地选择MYSQL列
  5. 南陵中学2021高考成绩查询,南陵中学2019高考成绩喜报、一本二本上线情况
  6. 解决:RuntimeError: CUDA out of memory. Tried to allocate 2.00 MiB
  7. PowerShell字体颜色修改
  8. adobe audition cs6 能打开mpcm文件吗?_PR竟然有手机版的了?Adobe正式推出Premiere Rush版(内含安装包)!...
  9. java vector list,Java基础之:List——ArrayList Vector
  10. Cesium场景导出为图片
  11. 实验四 lr0分析程序的设计与实现_试验机海外直播丨实现高精度CAE分析实验的材料评价案例技术介绍...
  12. jQuery 之 $(this) 出了什么问题?
  13. Swift游戏实战-跑酷熊猫 12 与平台的碰撞
  14. python中的深拷贝和浅拷贝
  15. Atitit 提升开发效率法 fx t35 Atitit 提升开发效率法---开发方法架构简化法.docx 目录 1. 主要几个层次上简化开发 1 1.1. ,开发体系方法使用简单方法 1 1.2.
  16. Java学习心得——对象与类
  17. 发展指标集数据合集(37W+条数据)
  18. 保密容量【Secrecy Capacity】
  19. django 框架模型之models常用的Field,这些Field的参数、及常见错误原因及处理方案。
  20. 漫画:脑筋急转弯题目(尼姆问题求解)

热门文章

  1. 校外国外博士论文去哪里查找下载
  2. 3dsmax动画十、父子关系。
  3. 如何在web配置一个高效采集数据的DTM?
  4. Java异常泄露敏感信息_浅谈“异常信息泄露(应用程序错误)”
  5. bs4爬取笔趣阁小说
  6. idea php 提示丢失,解决idea 暂存文件或idea切换分支代码丢失的问题
  7. 上海计算机在职专业硕士学校,2020年上海地区专业硕士招生院校大全
  8. 企业网站建设为什么要定制开发?
  9. 文件上传注入攻击 ——合天网安实验室学习笔记
  10. 项目中出现npm WARN locking errno: -4048, npm WARN locking code: ‘EPERM‘, npm WARN locking syscall: