CS527: Computer Systems
CS527: Computer Systems
Objective of the course:
Understanding program structure
Running program on hardware and system
Communication between program and parallel computing
Prerequisite:
Undergraduate courses in computer architecture and operating systems
Syllabus
Module 1 : Program structure: Review of machine level program representation, compilation overview, running program on processor architecture, memory hierarchy
Module 2: Running program on hardware: Linking, Exceptions, process control, signals, Virtual memory: memory management, memory protection, address translation, memory mapping, dynamic memory allocation, garbage collection
Module 3: Communication between processes: System level I/O and files, network programming: client server programming model, socket interface, web servers, concurrent programming: thread based programming model, synchronization, inter-process communication
Logistics:
Class timings:
Monday (10AM to 11AM)
Tuesday (10AM to 11AM)
Wednesday (10AM to 11AM)
Venue: Seminar room. S Ramanujan Block
Lab: Tuesday (11AM to 12:50PM). Venue: Lab 3, Room number 202. S Ramanujan Block
TA:
Lalit Sharma (lalit.19csz0005@iitrpr.ac.in)
Office hours:
Send an email to get the appointment
Digital platforms
Google classroom for discussions, announcements and distribution of notes
Class Schedule (Tentative)
Course duration is August 3, 2021 to Nov 27, 2021. The tentative schedule is as follows. A few topics may be added or removed based on class progress
Week 1: Aug 1, 2021
L1 : Introduction to computer systems (section 1.2, 1.3)
L2: Running hello word on system (Section 1.4 to 1.6)
L3: Information representation (Chapter 2, a few topics from 2.1 and 2.2)
Week 2: August 8, 2021
Public holiday on Aug 9 (Tuesday)
Aug 13 (Thursday) will work as Tuesday
L4: Why to study assembly. Introduction of ISA (introduction of chapter 3)
L5: Lecture postponed
L6: Program encoding (section 3.1, 3.2, 3.3)
Week 3: August 15, 2021
Public holiday on August 15 (Monday) and August 19 (Friday)
Last date for Add/drop August 16
L5 : Data movement (section 3.4)
L7 : Arithmetic instructions (section 3.5)
L8: Control instructions (section 3.6)
Week 4: August 22, 2021
CCM I
August 23 (Tuesday) works as Friday
L9: Loops and functions (section 3.6 and 3.7)
L10: Arrays (Section 3.8, 3.9, 3.10.3)
Week 5: August 29, 2021
L11 : Pipeline, stalls, forwarding, branch predictio
L12: Multiple issue, speculation
L13: out-of-order, SMT
Week 6: Sept 5, 2021
L14: Generic compiler optimisations (5.1 to 5.7)
L15: Loop unrolling, enhancing parallelism (section 5.8 and 5.9)
L16: Understanding bottlenecks
Week 7: Sept 12, 2021
L17: Memory technology (section 6.1)
L18 - Review cache hierarchy (section 6.2 to 6.5)
L19 - Impact of cache on program performance and cache aware code (Section 6.6)
Week 8: Sept 19, 2021
L20 - Hardware optimizations - caches and AMAT
L21 - buffer
Mid term from Sept 21 to Sept 27
Sept 26, 2021
Mid term
No class on Sept 28
Week 9: Oct 3, 2021
CCM II
Public holiday on Oct 5
Oct 6 (Thursday) will work as Friday
L22 - Mid-term exam analysis
L23 - Mid-term exam analysis
Week 10: Oct 10, 2021
Last date for withdraw/audit
L24 - Linking (section 7.1 to 7.5)
L25 - Symbol resolution (7.6, 7.7))
L26 - Executable code, loading executable code, static and dynamic linking (7.8 to 7.12)
Week 11: Oct 17, 2021
L27 - Process and interrupts (8.2)
L28 - classes of exceptions (8.1, 8.3)
L29 - Fork, reaping (8.4)
Week 12: Oct 24, 2021
Oct 29 (Saturday) will work as Monday
Oct 24 public holiday
L30 - Signals (8.5)
L31 - Signals (8.5) and non-local jumps (8.6)
L32 -
Week 13: Oct 31, 2021
L33
L34
L35
Week 14: Nov 7, 2021
Public holiday on Nov 8
Nov 12 (Saturday) works as Monday
L36
L37
L38
Week 15: Nov 14, 2021
L39
L40
L41
Week 16: Nov 21, 2021
End term exam Non 21 to Nov 30
Assignments
Each lab assignment will be 3-4 week long.
Assignment 1 : File manager.
Assignment 2 : Page manager
Assignment 3: Memory manager
Assignment 4: Chat client
Project: You need to demonstrate some of the concepts of computer system using visualisation.
Project timeline:
Proposal date
First evaluation:
Second evaluation:
Final submission:
Grading scheme
Mid term (25%)
End term (30%)
Lab assignments (25%)
Project (10%)
Class participation (in-class quizzes and in-class assignments) (10%)
80% would be considered for evaluation. Each in-class activity would account for 1 point. If total activities were 40, then maximum marks in class participation would be 32 which in tern would be scaled to 10 points.
General guidelines:
- All the submissions should be on time. Delayed submission will attract penalty at the rate of 10% per day. After delay of 10 days, no marks will be given to a assignment.
- Plagiarism of any sort (from internet resource or from friends) will be heavily penalised. In case, the case of copy is from other students of the course, both parties will get negative marks equal to double the weightage of assignment/submission. In second instance will be given F.
Books
Text Books
Computer Systems – A programmer;s perspective by R. E. Bryant and D. R. O’Hallaron, Pearson publisher, 3rd edition (most of the content will be covered from this book)
Parallel Computer Architecture: A Hardware/Software approach, by David E Culler, J.P Singh and Anoop Gupta. Publisher: Morgan Kaufmann. 1999.
Compilers – Principles, Techniques and Tools by Aho, Sethi and Ulmann, Publisher: Pearson, 2nd edition (this is required for week 1)