1) Operating System Lab :
In Linux environment students get hands on with the implementation of OS concepts. Coding assignments and laboratories include experiments on OS installation â€“ including partitioning and recovery, memory management, thread synchronization using semaphores, setting priority of processes, performance evaluation of different type of schedulers, kernel build and modifications to add custom system calls and device drivers, and debugging of applications.
2) Computer Networks &Network Programming lab :
In Computer networks laboratory, students diagnose various protocol message details like TCP/UDP using Wireshark. NetSim is used to simulate the features of IP routing, transport layer flow and congestion control, data link layer protocol modelling over CSMA/CD. In network programming, students develop programs to understand the client server model. Special emphasis is given on advanced topics like high request throughput (including ability to scale), multiplexing, buffering, stream/datagram based communication. Students implement a three tier application(client browser, apache2 WebServer, MySQL DB) and study the implementation options. They also do a performance benchmark of separating the DB to another machine. Additionally, students develop network centric applications for Android devices and understand the limitations, when the computation and network bandwidth are constrained to preserve battery charge.
3) Data storage lab :
Using open source tools and shareware, students setup and work with SAN/NAS. They also look at the impact of network bandwidth on SAN performance. Multi-NIC machines are used in dedicated setup to allow for separate storage and IP-data traffic.
4) Computer organization and Advanced Computer Architecture Lab :
The Computer organization and architecture lab provides hands on experience on 8086 assembly programming using emu8086™ emulator. Students design and implement combinational and sequential circuits such as adders, comparators, multiplexors, decoders as well as storage elements like the basic latch, flip-flops and registers etc. The logic design and implementation of these circuits is done using Hardware Description Language (HDL) in the Xilinx Integrated Software Environment. The Advanced architecture lab provides practical exposure to students using Intel VTune Performance Amplifier to find and fix performance problems in a compiled program written in the C/C++ language. Students analyze assembly files or disassembled compiler outputs. Students also use the VTune Performance Amplifier™’s dynamic assembly analyzer to dynamically analyze and fine-tune small sections of application and identify the exact instructions that cause critical performance problems. Students also get a hands-on exposure in parallelizing a sequential program like dense matrix and Graph algorithms to improve its performance using Intel Parallel Studio, and OpenMP/MPI.
5) Software Engineering Lab :
6) Distributed systems and Information Security Lab :
Students in this lab develop transparent programs for remote procedure calls over platforms like Sun RPC, and Java RMI. They create threads over Linux environment to build a distributed computing environment over multiple machines in the lab. Students implement logical clocks, and use these to guarantee distributed mutual exclusion. Students also implement their own distributed file systems and distributed schedulers using techniques like mounting, caching, sender initiated load distribution etc.