Vince Jiang

CSCI3150 / 课程伴读 · 本站更新

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 内容补全:保留原页顺序与版本,补入对应页的程序、接口、字段、条件和演算;原程序片段保留课件行号、拼写与省略处,不能据此视为经过编译的完整软件。本文已有运行记录属于其标注日期,本次未重新运行课程容器或提交作业。