SE101 2021




ICS lectures are in DSY (东上院)102.

The exercise lectures are in DZY (东中院)3-104/202/204/205 at 18:00~20:00 on Wednesday.

We will release the Spring 2022 assignments as the semester moves along. Note that the contents of this calendar may be changing.

All the Homework will be released through Canvas SJTU.


LEC 1: Y86 & RISC
Preparation: Book sections 4.1
Slides: Lecture-1

LEC 1: OS & Exceptions & Processes
Preparation: Book sections 1.7, 8.1
Slides: Lecture-1

LEC 2: Logical Design & HCL
Preparation: Book sections 4.2
Slides: Lecture-2
Homework #1

Lab #4: Y86 Simulator
Course: Organization



LEC 2: Process Control
Preparation: Book sections 8.2
Slides: Lecture-2

LEC 3: SEQ Impl
Preparation: Book sections 4.3.1-4.3.3
Slides: Lecture-3
DUE: Homework #1
Homework #2

EXE 1



LEC 4: SEQ Impl II
Preparation: Book sections 4.3.4
Slides: Lecture-4

LEC 3: Fork & Wait
Preparation: Book sections 8.3, 8.4
Slides: Lecture-3

LEC 5: Pipeline
Preparation: Book sections 4.4, 4.5.1-4
Slides: Lecture-5
DUE: Homework #2
Homework #3

EXE 2

DUE: Lab #4
Lab #5: Y86 Assembler
Course: Organization



LEC 4: Signal
Preparation: Book sections 8.5
Slides: Lecture-4

LEC 6: Implementation
Preparation: Book sections 4.5.7-9
Slides: Lecture-6
DUE: Homework #3
Homework #4

EXE 3



LEC 7: Hazard
Preparation: Book sections 4.5.5-6
Slides: Lecture-7

LEC 5: Signal II
Preparation: Book sections 8.5
Slides: Lecture-5

LEC 8: Machine-Independent Optimization
Preparation: Book sections 5.1~5.6
Slides: Lecture-8
DUE: Homework #4
Homework #5

EXE 4

Lab #6: Processor
Course: Organization



LEC 6: Nonlocal Jump
Preparation: Book sections 8.6
Slides: Lecture-6

LEC 7: Unix I/O
Preparation: Book sections 10.1-4, 10.6-9
Slides: Lecture-7

LEC 9: Modern Processors
Preparation: Book sections 5.7~5.11
Slides: Lecture-9
DUE: Homework #5
Homework #6

Quiz 1

DUE: Lab #5


LEC 9 and 10

LEC 8: Robust & Standard I/O
Preparation: Book sections 10.5, 10.10-11
Slides: Lecture-8

LEC 10: Performance Tuning
Preparation: Book sections 5.12~5.14
Slides: Lecture-10
DUE: Homework #6
Homework #7

EXE 6





LEC 11: Storage: Disk & RAM
Preparation: Book sections 6.1
Slides: Lecture-11
DUE: Homework #7
Homework #8

EXE 7

DUE: Lab #6
Lab #7: Tiny Shell
Course: System Software


LEC 12: Locality
Preparation: Book sections 6.2-6.4
Slides: Lecture-12

LEC 9: Network
Preparation: Book sections 11.1-3
Slides: Lecture-9
LEC 10: Socket
Preparation: Book sections 11.4
Slides: Lecture-10

LEC 13: Cache-Friendly Code
Preparation: Book sections 6.4-6
Slides: Lecture-13
DUE: Homework #8
Homework #9

EXE 8




LEC 11: Web Server
Preparation: Book sections 11.5-11.6
Slides: Lecture-11

LEC 14: Linking
Preparation: Book sections 7.1-7.2
Slides: Lecture-14
DUE: Homework #9
Homework #10

Quiz 2

DUE: Lab #7
Lab #8: Cache
Reference: Waside Blocking
Reference: Code Style (from CMU)
Course: Organization


LEC 15: Symbol
Preparation: Book sections 7.3-7.5
Slides: Lecture-15

LEC 12: Concurrency Programming
Preparation: Book sections 12.1-12.3
Slides: Lecture-12

LEC 16: Relocation & Loading
Preparation: Book sections 7.6-7.9
Slides: Lecture-16
DUE: Homework #10
Homework #11


EXE: Middle Exam (Organization)




LEC 13: Synchronization
Preparation: Book sections 12.4, 12.5
Slides: Lecture-13


DUE: Lab #8 (May 7)
Lab #9: Proxy
Course: System Software


LEC 17: Dynamic Linking & PIC
Preparation: Book sections 7.10-7.12
Slides: Lecture-17

LEC 14: Concurrent Issues
Preparation: Book sections 12.6, 12.7
Slides: Lecture-14

LEC 18: Dynamic Memory Allocation & Virtual Memory
Preparation: Book sections 9.9, 9.1-9.5
Slides: Lecture-18
DUE: Homework #11
Homework #12

EXE 10




LEC 15: Locks
References: Operating Systems: Three Easy Pieces (28 Locks)
Slides: Lecture-15-1
Slides: Lecture-15-2

LEC 19: Address Translation
Preparation: Book sections 9.6, 9.7.1
Slides: Lecture-19
DUE: Homework #12
Homework #13

EXE 11

DUE: Lab #9
Lab #10: Memory Allocator
Course: Organization


LEC 20: Case Study: Intel & Linux Memory
Preparation: Book sections 9.7, 9.8
Slides: Lecture-20

LEC 16: Conditional Variables
References: Operating Systems: Three Easy Pieces (30 Condition Variables)
Slides: Lecture-16

LEC 21: Swapping: Policies
References: Operating Systems: Three Easy Pieces (22 Swapping: Policies)
Slides: Lecture-21
DUE: Homework #13
Homework #14

EXE 12




LEC 17: CPU Scheduling
References: Operating Systems: Three Easy Pieces (7 CPU Scheduling)
Slides: Lecture-17

LEC 22: Garbage Collection
Preparation: Book sections 9.10-11
Slides: Lecture-22
DUE: Homework #14

Review

DUE: Lab #10


Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

ICS lectures are in SY (上院)215 on Friday 7-8.

The exercise lectures are in DXY (东下院)103/104/203/204 at 18:00~20:00 on Wednesday.

Tutorials are in the conference hall of software school at 18:00~20:00 on Wednesday.

We will release the Fall 2021 assignments as the semester moves along. The contents of this calendar for days more than two weeks in the future may be missing or changing.






LEC 1: Introduction
Preparation: Book prefaces 7~9, and book sections 1.2, 1.4.1, Before 1.7.1, 1.7.3, 1.8, 1.9.2
Slides: Lecture-1



TUT 1: Env Setup, Shell, Tools
Please download the preparation materials before class or bring U-disk to the class if possible.
Install Linux VM Solution-1. Preparation: VMware Player Debian
Slides: Tutorial-1
Reference: Create VM (Slides) Install Debian (Slides Video)
Install Linux VM Solution-2. Preparation: VMware Player Pre-installed VM
Tasks: Shell


LEC 2: C Programming Language, Bits & Bytes
Preparation: Book sections 1.1, 2.1.1 1.2 2.1.2 2.1.6-2.1.9
Slides: Lecture-2
Homework #1 is released on OC (canvas).
Note: Handin the Homework Answer through OC.



TUT 2: APT, SVN and Toolchain
Preparation: Debian & Shell
Slides: Tutorial-2
Tasks: Tools


National Day





LEC 3: Bit-level Ops, Pointers
Preparation: Book sections 1.2, 1.7.3, 2.1.2, 2.1.6-9
Slides: Lecture-3
Canvas: Solution #1 and Homework #2.

Lab #1 (Bit-level Ops) is released.


TUT 3: Debugging
Preparation: C Programming
Slides: Tutorial-3
Tasks: Debugging


LEC 4: Logical Ops, Encodings
Preparation: Book sections 2.1.3-5, 2.2
Slides: Lecture-4
Canvas: Solution #2 and Homework #3



EXE 1


LEC 5: Arithmetic Operations
Preparation: Book sections 2.3
Slides: Lecture-5
Canvas: Solution #3 and Homework #4





LEC 6: X86 Historical Perspective, Machine Execution
Preparation: Book sections 3.1, 3.4
Slides: Lecture-6
Canvas: Solution #4 and Homework #5

DUE: Lab #1


Quiz 1


LEC 7: Data Move
Preparation: Book sections 3.4
Slides: Lecture-7
Canvas: Solution #5 and Homework #6



EXE 2


LEC 8: Control, CC
Preparation: Book sections 3.6.1-2
Slides: Lecture-8
Canvas: Solution #6 and Homework #7



TUT 4: Assembly & GDB
Preparation: Assembly
Slides: Tutorial-4
Tasks: Assembly
Reference: GDB-Ref

Lab #2 Bombing is released through SVN and the PDF can be found in cavans.

LEC 9: Control
Preparation: Book sections 3.6.3-8
Slides: Lecture-9
Canvas: Solution #7 and Homework #8



EXE 3


LEC 10: Procedure Call
Preparation: Book sections 3.7
Slides: Lecture-10
Canvas: Solution #8 and Homework #9



Quiz 2


LEC 11: Array
Preparation: Book sections 3.8
Slides: Lecture-11
Canvas: Solution #9 and Homework #10

Lab #3 Attacking is released online and the PDF can be found in cavans.




LEC 12: Heterogeneous DS & Alignment
Preparation: Book sections section 3.9
Slides: Lecture-12
Canvas: Solution #10 and Homework #11

DUE: Lab #2


EXE 4

Lab #2 Discussion



LEC 13: Pointer & Buffer Overflow
Preparation: Book sections 3.10
Slides: Lecture-13
To appear: Solution #11 and Homework #12


DUE: Lab #3

Online Test for Lab2 and Lab3


LEC 14: Floating Point
Preparation: Book sections 3.11
Slides: Lecture-14
LEC 15: Floating-Point Code
Preparation: Book sections 3.11
Slides: Lecture-15
To appear: Solution #12 and Homework #13 and Solution #13



Quiz 3
Answer Questions (1 hour)


LEC 16: Y86
Preparation: Book sections 4.1
Slides: Lecture-16

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week

Final exam week
Go to Top // ICS Home Page
Questions or comments regarding ICS course? Send e-mail to the course Staffs or TAs.