Description

The objective of this course is to provide you with a general understanding of what system software is involved for an application program to run, both on a single node and over a network, and how this system software is to be used. In support of this, the course will prepare you to do system-level programming. This course will show you how to "use" (as opposed to "design") system components, such as memory, file systems, process control, inter-process communication, and networking. By the end of this course you will have an understanding of the problems and pitfalls typically encountered in the design and implementation of multithreaded and networked applications and systems. More specifically, by the end of this course you should be fairly good at making full use of the services provided by the underlying operating system by programming directly at the operating system interface level. We will review the following aspects of a computer system, in no particular order:
• What is an operating system; what are its components; why system calls?
• Execution of a program; function calls; interrupts.
• The OS application interface; file system; process control; etc.
• Concurrency, process synchronization, inter-process communication
• Network Socket Programming
• Security threats in centralized and distributed systems; authentication, authorization, confidentiality; security mechanisms.

General Information

Instructor
Aakash Tyagi, HRBB-515A

Announcements

Announcements are not public for this course.

Staff Office Hours

Tanzir Ahmed
--
--
Yi Cui
--
--
Radu Stoleru
--
--
Christopher Ridley
--
--
Ling Chen
--
--
Aakash Tyagi
--
--
jeremy hernandez
--
--
Rui Liu
--
--
Ying Fung Yiu
--
--
Matthew Collie
--
--
Gregory Krupit
--
--
Troy Edwards
--
--
Kiran Yalasangi
--
--
Ranjita Das
--
--
Joshua Higginbotham
--
--
Andrew Kirfman
--
--
Roger Solis
--
--
Riccardo Bettati
--
--