哈工大计算机系统大作业:Hello'sP2P全程解析

需积分: 9 7 下载量 94 浏览量 更新于2024-07-18 1 收藏 2.49MB DOC 举报
HITICS-2018大作业是哈尔滨工业大学计算机科学与技术学院2018级同学完成计算机系统课程的一项重要任务,以“程序人生-Hello's P2P”为主题。该作业旨在通过实际操作,让学生深入理解计算机系统的基本原理,包括Hello程序的生命周期,以及预处理、编译、汇编、链接和进程管理等关键步骤。以下是各章节的主要知识点概览: 1. **概述**:首先介绍了Hello程序的基本概念,同时明确了学习环境(Ubuntu系统)和使用的工具(gcc)。学生杨开来在指导教师郑贵滨的指导下进行这个项目。 2. **预处理**:本章探讨了预处理的概念和作用,以及在Ubuntu环境下使用预处理命令的实践,如`gcc -E`。通过对Hello程序的预处理结果分析,学生能够理解预处理对源代码的影响。 3. **编译**:编译部分阐述了编译过程的作用,展示了在Ubuntu上编译命令`gcc -c`的应用,以及Hello程序编译后的结果分析。 4. **汇编**:汇编是将高级语言转换为机器语言的过程,这里介绍了汇编的概念,如在Ubuntu下使用`gcc -S`的命令。学生通过分析Hello.o文件了解汇编后的结果。 5. **链接**:本章涉及链接的概念,如静态链接和动态链接,以及在Ubuntu上的链接命令。学生对可执行目标文件hello的格式、虚拟地址空间和链接重定位过程有了深入理解。 6. **Hello进程管理**:这部分讨论了进程的概念,shell(如bash)的作用,以及Hello程序如何通过`fork`和`execve`来创建和执行子进程。还涉及了异常处理和信号处理。 7. **存储管理**:最后,作业深入到hello程序的存储管理,包括内存地址空间、逻辑地址到线性地址的转换(段式管理)、线性地址到物理地址的转换(页式管理),以及Cache和虚拟地址到物理地址映射的过程。 通过这个大作业,学生不仅复习和巩固了计算机系统课程的核心知识,还提升了编程实践能力和问题解决能力。整个过程涵盖理论与实践的结合,是培养学生系统思考和工程实践能力的有效途径。