Operating Systems: Implemented in NACHOS using C++.
Thread Synchronization, System Calls and Multiprogramming:
The first project dealt with the implementation of locks and condition variables, to achieve mutual exclusion and synchronization, among the threads in the Hospital Simulation. In the second project Fork, Exec, Exit, Yield system calls were implemented to run user programs and interact with the operating system kernel. Multiprogramming enabled multiple user programs to run simultaneously, while sharing the OS resources.
Virtual Memory and Distributed Systems: The third project involved two steps, firstly, implementing demand paging using page faults, to dynamically load process virtual pages on demand, and secondly to implement page replacements, enabling the kernel to evict virtual page to free up a physical page frame. In the fourth project, a distributed system was created, using multiprogramming system calls for allowing user programs across multiple Nachos clients to participate in a single Hospital Simulation.
Database Systems:
RDBMS Implementation: Creating and populated the database, for a cell phone tracking system, using MySQL database management system. The second phase involved writing SQL queries and running them against the MySQL database.
Java Database Connectivity (JDBC), Implemented in Eclipse using Java: The project dealt with connecting to the MySQL database, for an airline ticket reservation system, from within the Java program using JDBC. Any previously existing data in the table is removed and then the database is populated. The java program, using JDBC, was used to run queries, in SQL, on the MySQL database, from the Windows command line. The database errors were handled gracefully by giving specific informative error messages, before exiting.
XQuery to query XML data: The project dealt with the design and implementation of XML Schemas, XML Stylesheets, and use XML query language to query XML data, of the videogames to be sold.
Web Technologies:
Veoh & Facebook Mashup: Implemented in Eclipse using Java/AJAX/PERL/JSON: Created a webpage using HTML, which provides an interface for the user to search for videos on Veoh.com. A Perl script scrapes through Veoh.com to read the information entered by the user, and sends it back, in the XML file format, to a java servlet. The servlet then returns a JSON (JavaScript Object Notation) file to the calling java script file, which extracts the information to produce a table with the name and duration of the videos. The User is also provided with an option to upload a selected video onto his or her Facebook Profile.
Introduction to Computer Networks:
Socket Programming Project: Implemented using C++: Simulated a race among 4 cell phones to reach a target with the help of two base stations before running out of battery or going out of range. All communication between the cell phone, base station and target take place over TCP and UDP sockets in client-server
architecture.
Final Year Undergrad Project:
Motion Estimation: Implemented Fast search, Three step search, Logarithmic search, Spiral search and Probability based adaptive search motion estimation algorithms, on a H.263 Video encoder, for akiyo, coastguard, foreman videos, to evaluate the performance in terms of varying bit rate and quantization parameter.