不要因为现实的平凡,就否定了那华丽的梦想!

3.12 CMU 15-213 深入理解计算机系统

课程名称

15-213/15-513 Introduction to Computer Systems (ICS)

课程概要
        《CMU 15-213 深入理解计算机系统》是卡内基梅隆大学提供的一门深受欢迎的计算机科学课程,旨在帮助学生从机器层面深入理解计算机系统的工作原理。该课程详细介绍了从基本的数据表示(比特和字节)到更复杂的系统级编程概念,如虚拟内存、动态内存分配和网络编程。学生将通过实际编程作业学习如何优化程序性能,理解内存层次结构,以及如何处理异常控制流。课程还涵盖了并发编程和线程级并行处理的基本和高级技术,培养学生在现代计算环境中解决复杂问题的能力。

​ 通过理论与实践的结合,学生将掌握如何有效地利用硬件和操作系统功能,开发高效、可靠和安全的应用程序。这门课程不仅适合那些希望深入了解计算机内部工作的学生,而且对于任何希望提高编程技能和系统理解能力的学生都是极好的学习机会。
| 推荐系数 |

⭐⭐⭐⭐⭐

| 先修 |

CMU 15-122 命令式计算
原理

语音字幕
中文
英文

课程大纲
1.课程概述-Course Overview
2.位、字节与整数-Bits, Bytes, and Integer
3.位、字节与整数(续)-Bits, Bytes, and Integers cont
4.浮点数-Floating Point
5.机器级编程I:基础-Machine Level Programming I Basics
6.机器级编程II:控制流-Machine Level Programming II Control
7.机器级编程III:过程-Machine Level Programming III Procedures
8.机器级编程IV:数据-Machine Level Programming IV Data
9.机器级编程V:高级主题-Machine Level Programming V Advanced Topics
10.程序优化-Program Optimization
11.存储器层次结构-The Memory Hierarchy
12.缓存存储器-Cache Memories
13.链接-Linking
14.异常控制流:异常与进程-Exceptional Control Flow Exceptions and Processes
15.异常控制流:信号与非本地跳转-Exceptional Control Flow Signals and Nonlocal Jumps
16.系统级IO-System Level IO
17.虚拟内存概念-Virtual Memory Concepts
18.虚拟内存系统-Virtual Memory Systems
19.动态内存分配:基础概念-Dynamic Memory Allocation Basic Concepts
20.动态内存分配:高级概念-Dynamic Memory Allocation Advanced Concepts
21.网络编程部分I-Network Programming Part 1
22.网络编程部分II-Network Programming Part II
23.并发编程-Concurrent Programming
24.同步基础-Synchronization Basics
25.同步高级-Synchronization Advanced
26.线程级并行-Thread Level Parallelism

习题课:
1.Datalab实验与数据表示-Datalab and Data Representations
2.炸弹实验-Bomb Lab
3.攻击实验与栈机制-Attack Lab and Stacks
4.C语言复习-C Review
5.缓存实验与分块优化-Cache Lab and Blocking
6.考试复习-Exam Review
7.Shell实验:进程、信号与IO-Shell Lab, Processes, and Signals, and IO
8.虚拟内存-Virtual Memory
9.动态内存分配实验-Malloc Lab
10.动态内存分配实验调试-Debugging Malloc Lab
11.代理实验-Proxy Lab
12.同步-Synchronization
13.考试复习-Exam review
学习指南