In the slides and videos section below,
I will post slides and pre-recorded discussion section videos before 6PM on the day before the live discussion section.
In a discussion section video, I will primarily present information regrading up-coming programming assignments.
I will also post live discussion section videos there.
A live discussion section is conducted by a TA.
- Fri 10:00am - 11:10am in OHE 132
During a live discussion section, the TA will give a recap of what's in the pre-recorded discussion video and
answer questions about the pre-recorded video and programming assignments.
If you have a particular topic that you would like the TA to discuss in the discussion section (including stuff like something covered
in lectures that you would like the TA to explain further), you should send email to the TA
before 6PM on Thursday. The TA will try his/her best to cover such requests.
To download all the PDF files below in one command (so you can study for exams),
do the following inside a terminal in Ubuntu 16.04:
wget -r -l 1 --user=USERID --password=PASSWORD http://merlot.usc.edu/cs402-m24/discussions.html
where USERID and PASSWORD are the user ID and password used to access protected content from our class web site.
But please note that the lecture slides can change at any time without notice. Therefore, it's a good idea to re-run the above command often
to synchroniza your copy with the server!
The following are tentative and final slides (in PDF format) for this semester.
- Week 1
(PDF)
(May 17, 2024)
- gdb, warmup #1
Demo (for live discussion section):
- Week 2
(PDF)
(May 24, 2024)
- warmup #1 (part 2)
- Week 3
(PDF)
(May 31, 2024)
- warmup #2
- Week 4
(Jun 6, 2024)
- warmup #2 (part 1 PDF), introduction to kernel assignments
(part 2 PDF)
(part 3 PDF)
Code in slides for warmup #2:
- Week 5
(PDF)
(Jun 14, 2024)
- kernel 1, kmain.c, kmain_aux.c
Code in slides:
- Week 6
(PDF)
(Jun 21, 2024)
- more on kernel 1
Code in slides:
- Week 7
(Jun 28, 2024)
- (part 1 PDF) - kernel 2
- (part 2 TXT) - kernel 2 polymorphism, vfs.c, vnode.c, vn_special.c, file.c, vfs_syscall.c, vn_mmobj_ops.c, ramfs.c, vfstest.c, faber_fs_test
Code (kernel):
- Week 8
(Jul 5, 2024)
- (part 1 PDF) - introduction to kernel 3, the elf32 loader
- (part 2 PDF) - more on kernel 3, address space implementation (vmarea, mmobj, pframe, page table)
Code (kernel):
Code (user):
Kernel 3 FAQ:
- Week 9
(TXT)
(Jul 12, 2024)
- objdump, page fault handling, hello
Code (kernel):
Code (user):
Kernel 3 FAQ:
Useful Linux commands:
objdump --disassemble --section=".text" user/usr/bin/hello.exec
objdump --disassemble --section=".text" -S user/usr/bin/hello.exec
objdump --headers user/usr/bin/hello.exec
xxd -g 1 user/usr/bin/hello.exec
Useful GDB commands:
add-symbol-file user/usr/bin/hello.exec 0x08048094
b __libc_static_entry
b main
b *0x12345678
layout asm
layout next
si
info registers
kernel info vmmap_mapping_info curproc->p_vmmap
- Week 10
(TXT)
(Jul 19, 2024)
- fork(), user space shell
Code (user):
Kernel 3 FAQ:
Remaining user space programs:
Code (user):
Kernel 3 FAQ:
- Week 11
(Jul 26, 2024)
- (no discussion section this week)
Below is the tentative quiz schedule for this semester.
Week # |
|
Quiz # |
|
Dates |
|
Coverage/Focus |
---|
|
1 |
|
Quiz 0 |
|
5/17 |
|
Discussion 1, Lecture 1, Lecture 2part1 |
|
2 |
|
Quiz 1 |
|
5/24 |
|
Discussion 2, Lectures 2part2, 3, 4, & 5part1 |
|
3 |
|
Quiz 2 |
|
5/31 |
|
Discussion 3, Lectures 5part2, 6, 7, & 8part1 |
|
4 |
|
Quiz 3 |
|
6/7 |
|
Discussions 4 & 5, Lectures 8part2, 9, 10, & 11 |
|
5 |
|
Quiz 4 |
|
6/14 |
|
Discussion 6, Lectures 12, 13, & 14 |
|
6 |
|
Quiz 5 |
|
6/21 |
|
Discussion 7, Lectures 15, 16, & 17 |
|
7 |
|
Quiz 6 |
|
6/28 |
|
Discussions 8 & 9, Lectures 18, 19, & 20 |
|
8 |
|
- |
|
7/5 |
|
no quiz (midterm on Tue) |
|
9 |
|
Quiz 7 |
|
7/12 |
|
Discussions 10, 11 & 12, Lectures 21, 22, 23, 24, & 25part1 |
|
10 |
|
Quiz 8 |
|
7/19 |
|
Discussion 13, Lectures 25part2, 26, 27, & 28part1 |
|
11 |
|
- |
|
7/26 |
|
no quiz |
|