操作系统(RISC-V)

操作系统课(RISC-V)以RISC-V为CPU平台实例,讲解操作系统中如何管理和协调应用程序对计算机系统中软硬件资源的使用。

播放:3339次,课程ID:4231868

操作系统(RISC-V)课程简介:前往报名学习

操作系统(RISC-V)课程简介:

操作系统课(RISC-V)以RISC-V为CPU平台实例,讲解操作系统中如何管理和协调应用程序对计算机系统中软硬件资源的使用。

前往报名学习

操作系统(RISC-V)课程目录:

第一讲 操作系统概述

--1.1 课程概述

--1.2 教学安排

--1.3 什么是操作系统

--1.4 为什么学习操作系统,如何学习操作系统

--1.5 操作系统实例

--1.6 操作系统的演变

--1.7 操作系统结构

--1.8 OS实验概述

第二讲 操作系统与系统结构和程序设计语言

--2.1 从OS角度看计算机系统

--2.2 从OS角度看RISC-V

--2.3 Rust语言与系统编程

--2.4 RISC-V CPU启动

--2.5 RISC-V CPU启动进一步分析

第三讲 中断、异常和系统调用

--3.1 基本概念与原理

--3.2 硬件架构支持

--3.3 中断处理机制

--3.4 系统调用

第四讲 物理内存管理: 连续内存分配

--4.1 计算机体系结构和内存层次

--4.2 地址空间和地址生成

--4.3 连续内存分配

--4.4 碎片整理

--4.5 伙伴系统

--4.6 SLAB分配器

第五讲 物理内存管理: 非连续内存分配

--5.1 非连续内存分配的需求背景

--5.2 段式存储管理

--5.3 页式存储管理

--5.4 页表概述

--5.5 快表和多级页表

--5.6 RISC-V页映射机制

--5.7 使能RISC-V页表

第六讲 虚拟存储概念

--6.1 虚拟存储的需求背景

--6.2 覆盖和交换

--6.3 局部性原理

--6.4 虚拟存储概念

--6.5 虚拟页式存储

--6.6 缺页异常

--6.7 RISC-V缺页异常

第七讲 虚拟存储:局部页面置换算法

--7.1 页面置换算法的概念

--7.2 最优算法、先进先出算法和最近最久未使用算法

--7.3 时钟置换算法和最不常用算法

--7.4 Belady现象和局部置换算法比较

--7.5 页表自映射

第八讲 虚拟存储:全局页面置换算法

--8.1 工作集置换算法

--8.2 缺页率置换算法

--8.3 抖动和负载控制

--8.4 面向缓存的页替换算法

第九讲 进程和线程

--9.1 进程的概念

--9.2 进程控制块

--9.3 进程状态

--9.4 三状态进程模型

--9.5 挂起进程模型

--9.6 线程的概念

--9.7 用户线程

--9.8 内核线程

--9.9 进程地址空间与熔断 (meltdown) 漏洞

第十讲 进程和线程控制

--10.1 进程切换

--10.2 进程创建

--10.3 进程加载

--10.4 进程等待与退出

--10.5 rCore进程和线程控制

第十一讲 处理机调度

--11.1 处理机调度概念

--11.2 调度准则

--11.3 先来先服务、短进程优先和最高响应比优先调度算法

--11.4 时间片轮转、多级反馈队列、公平共享调度算法和ucore调度框架

--11.5 实时调度

--11.6 优先级反置

--11.7 rCore调度框架

第十二讲 多处理机调度

--12.1 对称多处理与多核架构

--12.2 多处理器调度概述

--12.3 O(1)调度

--12.4 CFS调度

--12.5 BFS调度算法

第十三讲 同步互斥

--13.1 背景

--13.2 现实生活中的同步问题

--13.3 临界区和禁用硬件中断同步方法

--13.4 基于软件的同步方法

--13.5 高级抽象的同步方法

第十四讲 信号量与管程

--14.1 信号量

--14.2 信号量使用

--14.3 管程

--14.4 哲学家就餐问题

--14.5 读者-写者问题

--14.6 Rust语言中的同步机制

第十五讲 死锁和并发错误检测

--15.1 死锁概念

--15.2 死锁处理方法

--15.3 银行家算法

--15.4 死锁检测

--15.5 并发错误检测

第十六讲 进程通信

--16.1 进程通信概念

--16.2 信号和管道

--16.3 Linux信号机制

--16.4 消息队列和共享内存

--16.5 D-Bus机制

--16.6 Binder机制

第十七讲 文件系统概念

--17.1 文件系统和文件

--17.2 文件描述符

--17.3 目录、文件别名和文件系统种类

--17.4 虚拟文件系统

--17.5 文件缓存和打开文件

--17.6 文件分配

--17.7 空闲空间管理和冗余磁盘阵列RAID

第十八讲 文件系统实例

--18.1 FAT文件系统

--18.2.1 EXT4文件系统-历史

--18.2.2 EXT4文件系统-支持大容量存储

--18.2.3 EXT4文件系统-支持恢复异常

--18.3 ZFS文件系统

第十九讲 I/O子系统

--19.1 I/O特点

--19.2 I/O结构

--19.3 I/O数据传输

--19.4 磁盘调度

--19.5 Linux I/O子系统

第二十讲 内核与程序设计语言

--20.1 Linux内核错误分析

--20.2.1 用rust写操作系统-系统编程语言rust

--20.2.2 用rust写操作系统-rust与操作系统开发

第二十一讲 异步编程 (Asynchronous Programming)

--21.1 Background

--21.2 Futures in Rust

--21.3 Generators and async/await

--21.4 Self-Referential Structs & Pin

--21.5 Waker and Reactor

第二十二讲 Virtual Machine Monitor

--22.1 Overview

--22.2.1 How VMM works - CPU

--22.2.2 How VMM works - memory & I/O

期末考试

操作系统(RISC-V)授课教师:

向勇-副教授-清华大学-计算机科学与技术系

向勇,博士,清华大学计算机系副教授,自2000年开始从事操作系统课的教学工作,科研方向包括无线自组网、计算机支持的协同工作和操作系统,曾主持或参与国家自然科学基金项目《支持多信道的自组网及其与Internet 互连的研究》和《多协作方式集成模型与环境研究》、863项目《车载自组网及其在智能导航中的应用》、核高基项目《开源操作系统内核分析和安全性评估:Linux体系结构及内核功能模块间关系分析》,以及多项企业合作项目,近5年发表10余篇论文(SCI检索2篇, EI检索5余篇)。

陈渝-副教授-清华大学-计算机科学与技术系

陈渝,男,博士,清华大学计算机系副教授、中国计算机学会普适计算专委会副主任,系统软件专委委员,清华大学信息技术研究院操作系统研究中心负责人。主要科研方向:操作系统、系统安全,嵌入式系统,普适计算、高性能计算等。在操作系统相关领域的国际会议如VEE, ICPP, CLUSTER, PACT, MASCOTS, ICPADS等,和国际期刊,如 IEEE Computer, ACM TACO,CCPE, TCJ,发表了学术论文,共计发表论文50余篇,申请专利6项。作为项目负责人承担了核高基子项目3项,国家863项目1项,国家科技支撑计划1项,自然科学基金项目2项,以及国际合作项目6项等。负责研发操作系统分析工具,OS kernel bug分析平台,SkyEye嵌入式系统模拟仿真环境软件系统,ucore教学操作系统等。承担清华大学计算机系本科和研究生的操作系统课程,翻译和出版6本操作系统与嵌入式系统等教材。获省部级一等奖3次,二等奖2次。

© 柠檬大学 2020