CSCI3150 L00 课程介绍
课程:CSCI3150 Introduction to Operating Systems · 2026T1 本讲:L00 课程介绍 · 原件 L00-课程介绍-2026T1.ppt(本地课件) · PDF页码副本(本地课件) p.1–12 定位:认清课程的五条主线、实验准备和评分构成,知道后续每讲在解决哪一类问题。
p.1 标题页。
课程从哪里开始
找到教学团队与课程定位(p.2–3)【新】
p.3 Big data systems
p.2 提供教师与联系渠道,p.3 列出大数据系统、存储系统、嵌入式系统与软件三个研究方向。这解释了本课为什么重视“程序真的怎样跑、数据真的怎样保存”,而不只背操作系统名词。联系方式和办公时间属于课程运行信息,查阅时对照当期大纲
本版 p.2 的具体资料是:授课教师 Dr. Zili SHAO,办公室 SHB 909,电话 39434258,邮箱 [email protected],主页 http://www.cse.cuhk.edu.hk/~shao/,答疑时间星期三 15:00–17:00。Tutors 标题下未给出姓名,不能补猜。p.3 还表达欢迎对计算机系统研究感兴趣的学生联系研究组。这些是这份 2026T1 课件的记录,不表示此后安排永不变化。
教材与参考书分别补什么(p.4–5)
p.4 Textbook: Operating Systems: Three Easy Pieces
p.4 指定 OSTEP 为主教材,并列出 Operating System Concepts;p.5 列出计算机系统和 Linux 编程两类参考书。前者帮助理解处理器、内存和程序表示,后者帮助读懂调用接口。本伴读按教师课件的页序组织,不把教材目录当作讲义目录;讲末标出的教材章节用于定位进一步阅读。
表(p.4–5):完整书目定位
| 用途 | 书名 | 课件列出的作者与版本 |
|---|---|---|
| 主教材 | Operating Systems: Three Easy Pieces | Remzi H. Arpaci-Dusseau、Andrea C. Arpaci-Dusseau;免费在线书 |
| 操作系统参考 | Operating System Concepts | Avi Silberschatz、Peter Baer Galvin、Greg Gagne;2018 |
| 计算机系统基础 | Introduction to Computing Systems: From Bits and Gates to C and Beyond | Yale N. Patt、Sanjay J. Patel |
| Linux 程序设计 | Beginning Linux Programming | Neil Matthew、Richard Stones;第 4 版,2007 |
课件给出的教学平台是 https://blackboard.cuhk.edu.hk,主教材入口是 http://pages.cs.wisc.edu/~remzi/OSTEP/,操作系统参考书入口是 http://codex.cs.yale.edu/avi/os-book/OS10/index.html。此处保留原件提供的定位信息,不把未访问的书籍正文列为本次已读来源。
五条主线与先修能力(p.6–7)【新】
p.6 User-level programming (System calls)
p.6 从用户程序调用操作系统开始,接着进入文件系统、进程、内存和并发。系统调用关注“程序如何请求服务”;文件系统关注“字节如何命名、组织并长期保存”;进程管理决定谁获得 CPU;内存管理决定程序地址如何落到物理存储;并发研究多个执行流怎样安全地共享状态。保护、安全、设计方法和性能评价贯穿这些主题。
p.7 的先修要求不是额外理论章节:你需要读懂 C 的指针、数组和函数调用,能够登录 Linux、编辑文件、操作目录、编译程序。补充:遇到 fork() 看不懂返回值分支时,先补 if 与整数返回值;遇到 malloc() 看不懂时,先区分指针自身和它所指向的对象。这样才知道卡在 C 还是卡在操作系统。
考试角度:(B 级:课程大纲-2026T1.pdf p.2,学习目标 1)理解进程、内存、文件系统与 I/O 属于明确的课程目标;大纲没有据此指定每个主题的试题数量。
把五条主线放进一次真实任务(补充,教材通识)。 假设在终端运行一个程序,把文件中的每行数字求和。shell 请求创建进程,这是进程接口;程序通过 open/read 取得字节,这是文件接口;文件系统把文件偏移换成磁盘块号,这是持久化实现;数据尚未读好时进程阻塞,CPU 转去运行别的进程,这是调度;程序用指针访问读入的数组,硬件把虚拟地址换成物理地址,这是内存管理。若改成两个线程共同累加,二者可能覆盖彼此的更新,这才引出并发保护。
同一任务横跨各章,却不表示任何错误都归“OS 出问题”。若把字符 3 当整数 3 直接相加,是程序的数据表示错误;read 返回 −1 却继续处理缓冲区,是没有遵守接口契约;两个线程无锁修改共享计数,是同步错误。学习时先指出哪一层的假设失效,再选择工具观察,才不会用重装环境解决逻辑错误。
先修自检:int *p 与 *p 有何不同?read(fd,p,4) 又需要哪些条件?
第一层:p 保存地址;*p 是该地址处的整数对象。声明指针并未自动分配可写目标。
第二层:fd 必须允许读取;p 必须指向至少 4 字节的有效可写存储;还要检查 read 实际返回多少字节。即使返回 4,也只是得到四个字节,它们是不是一个本机整数取决于文件编码,不能仅凭长度决定。
p.7 还明确列出数据结构(Data structures)这一先修项。它在本课程中的用途很具体:进程关系用树表示,就绪任务排成队列,空闲块用位图登记,FAT 用链式关系串起簇,页表用数组或多级结构查找。知道这些结构的“存什么、怎样找、怎样修改”,才能把后续系统机制对应到实现。课件给出的 Linux 入门教程地址为 http://pages.cs.wisc.edu/~remzi/OSTEP/lab-tutorial.pdf,本段不将该链接内容冒充已经读过的课程正文。
实验环境为何需要自己能控制(p.8)
p.8 A lab in Week 2 will be provided to help you on this (Labs will start from Week 2)
本页要求准备自己的 Linux 环境,旧式说明以 VirtualBox 虚拟机为路线。能控制环境的意义是:每次修改代码后,你都能编译、运行并观察返回值,而不是只看别人的截图。具体版本和可选路线以后面的当期 Lab01 为准;本页没有给出完整安装步骤,不能据此推断所有容器或所有 CPU 架构都和评分环境相同。
自底向上的课程图(p.9)
图(p.9):The Course Organization (Bottom-up) 元素:最底部 Course Overview,其上 System Calls,再上 Persistence(File System、IO Devices and Storage)、Virtualization(Process and CPU Scheduling、Memory Management),顶部 Concurrency(Thread、Race Conditions, Lock/Semaphore);左侧箭头向上。 看什么:学习顺序先掌握请求服务的接口,再理解服务的内部机制,最后处理共享状态下的交错执行。
图右侧把 HW1 对应系统调用、HW2 与项目对应文件系统、HW3 对应调度、HW4 对应内存。这个对应关系说明练习的主题,不等于已取得实际题目,也不是考试真题证据。并发在最上面,是因为讨论锁时需要先理解线程、调度和内存共享。
补充:接口、机制、策略各回答哪一个问题。 以“程序要读文件”为例,接口规定调用者应给文件描述符、缓冲区和长度,并怎样解释返回值;机制负责把名字查到对象、定位数据并把字节送回;策略决定多个请求冲突时先服务谁、哪些内容留在缓存。三者是同一次任务的不同层面,不能互相代答。“使用 read”没有解释磁盘块怎样找到,“使用某种调度算法”也没有解释调用者怎样知道失败。
沿课程图往上学时,可以把自己的解释检验为三句话:我能写出请求的输入与输出;我能画出系统为完成请求改变了哪些状态;我能说明资源不足或多人争用时采用了什么选择。第一句在系统调用部分练,第二句在文件系统和虚拟化部分练,第三句在调度、缓存与并发部分逐渐补齐。这样读 p.9 的箭头,连接起来的是理解层次,而不只是章节编号。
时间安排怎样读(p.10)
本页是嵌入图片的教学计划,已视觉核对,并以同内容的独立 教学计划(本地课件) 读取完整表格。前两周以系统调用为主;第三至第五周进入文件系统;第六至第八周进入调度;第八至第十周转向内存;第十至第十三周学习并发。Lab 从第二周开始。
补充:此处只解释计划如何连接知识顺序,不把日期当作课件已经发布的证明。当前未取得的当期后续讲义,在学习导航里仍标“历史预习资料”。
表(p.10):逐周计划。下表完整保留课件的日期、课题、练习发布标记与 Lab 安排;这是发布时计划,后续变更以课程通知为准。
| 周/日期 | 星期二 | 星期三 | 星期四 Lab |
|---|---|---|---|
| 1/9.7–9.13 | Introduction; Overview | System Calls | — |
| 2/9.14–9.20 | System Calls | System Calls | Lab1 VM、Compile、Make & Run;Lab Exercise1;Jiqian |
| 3/9.21–9.27 | System Calls;Assign1 | File Systems | Lab2 C Review:structure、memory、file IO;Lab Exercise2;Jiqian |
| 4/9.28–10.4 | File Systems | File Systems | Holiday |
| 5/10.5–10.11 | File Systems | File Systems;Assign2 | Lab3 File Systems—Superblock;Chenyu |
| 6/10.12–10.18 | Process/CPU Scheduling;Project | Process/CPU Scheduling | Lab4 File Systems—inode;Chenyu |
| 7/10.19–10.25 | Process/CPU Scheduling | Process/CPU Scheduling;Assign3/Prog-Assign3 | Lab5 File Systems—inode/Directory(Tutorial);Chenyu |
| 8/10.26–11.1 | Process/CPU Scheduling | Memory | Lab6 CPU Scheduling(Tutorial);Yeyao |
| 9/11.2–11.8 | Memory | Memory | Lab7 CPU Scheduling(Lab);Yeyao |
| 10/11.9–11.15 | Memory;Assign4/Prog-Assign4 | Concurrency | Congregation,无课 |
| 11/11.16–11.22 | Concurrency | Concurrency | Lab8 Memory(Tutorial);Zebang |
| 12/11.23–11.29 | Concurrency | Concurrency | Lab9 Memory(Lab);Zebang |
| 13/11.30–12.6 | Concurrency | Concurrency | Lab10 Concurrency:Pthread;Jiqian |
| 项目 | 发布 | 截止 | 成绩发布 | 评分导师 |
|---|---|---|---|---|
| Lab Exercise1 | 9.17 | 9.24 | 10.4 | Yongrui |
| Lab Exercise2 | 9.24 | 10.1 | 10.11 | Yongrui |
| Assign1 | 9.22 | 10.13 | 10.25 | Ziyun |
| Assign2 | 10.7 | 10.28 | 11.8 | Yongrui |
| Project | 10.13 | 12.13 | 12.20 | Yongrui |
| Assign3 | 10.21 | 11.10 | 11.22 | Ziyun |
| Prog-Assign3 | 10.28 | 11.18 | 11.29 | Ziyun |
| Assign4 | 11.10 | 11.24 | 12.6 | Ziyun |
| Prog-Assign4 | 11.10 | 12.1 | 12.13 | Ziyun |
评分构成与课程边界(p.11–12)
p.11 Final Exam (Closed-book/note; 2 hours):
表(p.11):课件列出的评分构成
| 项目 | 比例 | 细分 |
|---|---|---|
| 两次 Lab 编程 | 5% | 合计 |
| Assignment 1 | 5% | Simple Shell,组队程序 |
| Assignment 2 | 5% | 文件系统,纸笔 |
| Assignment 3 | 15% | 纸笔 5%,程序 10% |
| Assignment 4 | 15% | 纸笔 5%,程序 10% |
| 文件系统 Project | 15% | 程序 |
| Final Exam | 40% | 闭卷,2 小时 |
算一遍:平时部分为 5 + 5 + 5 + 15 + 15 + 15 = 60;再加期末 40,总计 100。课件称“Six Assignments”,同时按主题列 Assignment 1–4;后两项各分纸笔与编程,阅读时应看清具体组成。
p.11 写明迟交每天扣 20%,并以 Blackboard 实际提交物为评分依据。p.12 强调除 Assignment 1 外独立完成,且禁止在作业与考核任务中使用生成式 AI;这份伴读用于概念学习,不是可提交作答。课堂讲解、课件和实际提交要求应分别阅读。
考试角度:(B 级:L00 p.11)课件明确给出闭卷、两小时、40% 的期末形式;没有提供题型分布,不能从评分比例推出某章“必考”。
p.11 对迟交的原说明还强调:晚 1 分钟与晚 23 小时均按一天的 20% 扣分处理。p.12 的完整行为边界包括:鼓励讨论但必须自行实现,自己负责保护代码(例如使用私有仓库);第一次抄袭事件使涉及者的整份作业得 0 分,提供答案者与抄袭者都包括在内;再次发生除相同处理外还会上报院系。出勤部分强调课堂会帮助理解作业,并提醒补考更难。这里保留课程政策的完整含义,便于与技术知识区分;历史材料或学习笔记都不能替代实际提交时的当期通知。
本讲核心考点
- 系统调用、文件系统、进程、内存、并发是五条主线(p.6,B 级课程主题)。
- 课程从接口走向内部实现与并发(p.9,B 级讲义结构)。
- 期末闭卷 2 小时、占 40%(p.11,B 级明确说明)。
附录
本份没有需要移至附录的长推导;计算过程已在对应页正文写全。
来源与证据
-
原件:L00-课程介绍-2026T1.ppt(本地课件);PDF副本(本地课件) p.1–12。本文页码均为 PDF 页号。
-
教材:OSTEP;本讲未指定章节。
-
考试证据:读了 课程大纲-2026T1.pdf、教学计划-2026T1.pdf、T08-期中参考-2025T2-题目-解答.pdf、T07-多级反馈队列-2025T2.pdf(p.13–15内嵌历史试题);未识别用途的 PDF:无
-
2026-10-13 内容补全:保留原页顺序与版本,补入对应页的程序、接口、字段、条件和演算;原程序片段保留课件行号、拼写与省略处,不能据此视为经过编译的完整软件。本文已有运行记录属于其标注日期,本次未重新运行课程容器或提交作业。