0% found this document useful (0 votes)
35 views2 pages

IT227 Computer Systems Programming Autumn25

Uploaded by

202401129
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views2 pages

IT227 Computer Systems Programming Autumn25

Uploaded by

202401129
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

IT227 – Computer Systems Programming

Course Placement: Computer Systems Programming is a core course for second-year students
of the BTech ICT program.

Course format: It is 3 hours lecture and 2 hours lab practical every week.

Prerequisite: IT112 and IT113 Introduction to Programming (C Programming), IT121 Digital


Logic Design and Computer Organization.
Course Content: Course objective: The course takes an introductory look at the core
abstractions in operating systems: processes, virtual memory and files. It takes an in-depth look
at the OS services provided by system calls, how system calls work, and how they can be used.
Students will become familiar with writing application programs using system calls.

Text Books:
 Bryant and O'Hallaron, Computer Systems: A Programmer's Perspective, 3rd edition,
Pearson India, 2016.
 Operating Systems: Three Easy Pieces, Remzi H. Arpaci-Dusseau and Andrea C.
Arpaci-Dusseau, 2018, Version 1.00. (Freely available online.)

Assessment method:
• Lab Programming Assignments: 20%
• 1st In-Semester Exam: 15%
• 2nd In-Semester Exam: 20%
• End-Semester Exam: 25%
• Project: 20%

Course Outcomes:
After successful completion of the course, students will have the ability to
 Understand the concept of virtualization, operating systems abstraction concepts such as
process and thread, and more advance concepts such as interprocess communication
using signals, race codition, mutual exclusion problem and solution using various locking
mechanisms.
 Acquire practical knowledge by developing parallel applications using multiprocess and
multithreading, performing interprocess communication in systems with shared-memory
architecture using signals.

P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12


X X X

Lecture Schedule:
SI. No. Description No. of
Lectures
1 Introduction: System Programming Introduction 3
Key OS abstractions: processes, virtual memory and files, virtual address
space, system calls, interrupts, user and kernel mode, process state
transition, context switching, saving and restoring context
2 Process creation, process termination, reaping child processes, putting 5
processes to sleep, loading and running programs, Unix shell, IPC Pipes
3 Signal terminology, sending signals, receiving signals, normal and abnormal 5
termination, signal blocking, job control using signals
4 Address translation, segmentation, page tables, TLB, page fault control 5
flow, page replacement policies, Belady’s anomaly, thrashing, case study:
Linux VM system
5 Opening and closing files, Unbuffered I/O vs buffered I/O, directories, file 5
metadata, file sharing, symbolic link, I/O redirection
6 Thread creation, thread termination, reaping terminated threads, thread 5
memory model, shared variables, race conditions
7 Mutual exclusion problem, solutions to mutual exclusion problem using 5
locks/semaphores, deadlocks, necessary conditions for deadlock, dining-
philosophers problem, producerconsumer problem, readers-writers problem
8 Network Programming: Communication Layers (Network, Transport), 5
Protocols basics: Internet Protocol (IP), TCP: connection-oriented, UDP:
connectionless, standard services and assigned ports, client-server
communication using sockets

You might also like