字数
2133 字
阅读时间
9 分钟
第一章:操作系统课程导论 🚀
欢迎来到《操作系统》的世界!本章将作为我们整个学习旅程的起点,旨在为您清晰地描绘出本课程的知识蓝图、学习路径、考核要求以及成功学习本课程的关键要素。
1.1 欢迎与教师介绍 👋
- 【了解】
- 主讲教师:梁洪亮 副教授
- 博士生导师、硕士生导师
- 联系方式:
hliang@bupt.edu.cn
(欢迎通过邮件交流) - 研究方向:领导可信软件与智能系统实验室 (TSIS Lab)
- 个人主页与代码仓库:
- Gitee 主页
- Github 主页
1.2 课程信息与安排 📚
- 【重点】 在本部分,我们将明确学习本课程前你需要具备的知识基础,以及课程的学习方式与考核标准。请务必仔细阅读,这关系到你的学习规划与最终成绩。
1.2.1 先修知识要求
- 【重点】 操作系统是一门承上启下的核心课程,它依赖于一些计算机科学的基础知识。为确保学习效果,请确认你已掌握以下先修课程:
- C 编程语言:这是进行操作系统实验、理解底层实现的基础工具。
- 数据结构:操作系统内部充满了各种复杂的数据结构(如进程控制块、页表),扎实的数据结构知识至关重要。
- 计算机组成原理:理解硬件与软件的接口是学习操作系统的核心,你需要了解 CPU、内存、I/O 设备是如何工作的。
1.2.2 课程资源
- 【了解】
- 讲义和作业发布:所有课程相关的讲义、作业要求及通知,都将通过教学云平台发布。请大家务必及时关注平台动态。
1.2.3 考核方式
【核心考点】 本课程的总成绩将由以下三个部分构成,请大家务必重视每一个环节:
总成绩 = 40% 实验 (编程) + 10% 期中考试 + 50% 期末考试
重要说明:
- 实验环节:实验是本课程的重中之重,旨在通过动手实践加深对理论知识的理解。所有实验的截止日期/时间以教学云平台为准。
- 截止日期:
请务必合理安排时间,按时完成并提交。
1.3 教材与参考书目 📖
- 【了解】 选择合适的教材与参考书是学好本课程的基石。以下是本课程推荐的书籍资源。
1.3.1 指定教科书
- Operating System Concepts, Ninth Edition, Avi Silberschatz et al., John Wiley & Sons, 2012. (经典恐龙书)
- 操作系统设计与实现, 梁洪亮、李文生、徐梦炜编著, 人民邮电出版社, 2024.
1.3.2 推荐参考书
- (OSTEP) Operating Systems: Three Easy Pieces. (一本以风趣幽默著称的优秀操作系统入门书籍,强烈推荐)
- (CSAPP) Computer Systems: A Programmer's Perspective. (神书,能帮助你从程序员的视角更深刻地理解整个计算机系统)
1.4 课程内容总览 🗺️
【重点】 本课程将系统性地介绍操作系统的核心概念与关键技术,主要分为以下几个模块:
第一部分:导论 (Introduction)
- CH.1 概述:介绍操作系统的定义、功能、发展历史以及基本特征。
第二部分:进程/线程管理 (Process/Thread Management)
- CH.2 进程/线程及调度:探讨进程与线程的概念、状态转换、以及 CPU 调度算法。
- CH.3 同步 (Synchronization):解决多进程/线程并发执行时的数据一致性问题,如互斥、信号量、管程等。
- CH.4 死锁 (Deadlock):分析死锁产生的原因、条件,并学习如何预防、避免和检测死锁。
第三部分:内存管理 (Memory Management)
- CH.5 物理内存:讲解内存的连续分配、分页、分段等物理内存管理技术。
- CH.6 虚拟存储 (Virtual Memory):深入学习请求分页、页面置换算法等虚拟内存核心技术,这是现代操作系统的基石。
第四部分:文件系统和输入/输出 (File System and I/O)
- CH.7 文件系统:介绍文件的概念、目录结构、文件系统的实现以及磁盘空间管理。
- CH.8 输入/输出系统:讲解 I/O 系统的原理、设备驱动以及中断处理。
第五部分:系统保护与安全 (System Protection and Security) (可选)
- CH.9 系统安全接口
- CH.10 系统内部保护机制
1.5 为什么要学习操作系统?🤔
- 【重点】 操作系统是计算机科学的灵魂。学习它不仅仅是为了通过一门考试,更是为了:
- 成为掌控者:学习如何构建、修改或管理一个操作系统,而不仅仅是它的使用者。
- 洞察设计智慧:深入了解关键的设计决策(如进程调度、内存管理策略),理解其背后的权衡与哲学。
- 优化系统性能:学会分析和了解系统性能瓶颈,写出更高效、更健壮的程序。
- 驾驭复杂系统:操作系统是人类创造的最复杂的软件系统之一。掌握它,你将能更好地理解和设计其他复杂系统。
- 提升编程内功:学习操作系统将让你成为更好的(系统)程序员,无论是应用层还是底层开发,你都将受益匪浅。
- 深造基石:对于有志于读研深造的同学,操作系统是必考的核心课程。
1.6 学习成功的关键 🚀
【重点】 理论学习固然重要,但对于操作系统这门实践性极强的学科,成功的关键在于以下几点:
实践出真知
- 10000 小时定律:精通任何一门复杂的技能都需要大量的练习。投入足够的时间是学好操作系统的先决条件。
- 100000 行代码:编程能力是在代码的海洋中磨练出来的。不要畏惧写代码,通过大量的编程实验,你才能真正将理论内化为自己的能力。
1.7 学术诚信要求 ⚖️
【核心考点】 学术诚信是所有学习和研究的底线。在本课程中,请严格遵守以下规定:
禁止任何形式的作弊行为
代码共享:
- 严禁拥有他人程序的副本,也严禁将自己的程序以任何形式提供给他人。
合作与讨论:
- 允许就作业思路进行讨论,但必须独立完成并编写自己的代码。
- 允许帮助他人解释编译器报出的错误信息,这属于良性合作。
思想借鉴:
- 如果你从他人(同学、网络资源等)那里获得了解决问题的重要想法或思路,必须在你的作业中明确注明,这是基本的学术规范。
违规后果: