CSE325: OPERATING SYSTEMS LABORATORY
L:0 T:0 P:2 Credits:1
Course Outcomes:
Through this course students should be able to
- CO1 :: execute Linux commands and basic shell programming tasks for script development
- CO2 :: identify and describe the role of environment variables, process image replacement in Linux systems
- CO3 :: utilize file system-related system calls to manage files efficiently.
- CO4 :: demonstrate the creation and management of processes and threads using Linux system calls
- CO5 :: illustrate the use of synchronization mechanisms like mutexes and semaphores to prevent race conditions
- CO6 :: explain and implement inter-process communication techniques such as pipes, shared memory, and message passing
List of Practicals / Experiments:
Process creation and threading
- Creating processes
- Creating Threads
- Process duplication using fork()
- Creating threads using pthread
- Environment variables
- Replacing process image using excelp
Inter-process communication
- Pipes, popen and pclose functions
- Stream pipes, passing file descriptors
- Shared memory
- Message passing
- Remote Procedure calls
Introduction to Linux
- Basic Linux Commands: ls, cat, man, cd, touch, cp, mv, rmdir, mkdir, rm, chmod, pwd
- System Calls: Read, Write, Open
- Lseek
Synchronization
- Synchronization with Mutexes
- Synchronization with semaphores
- Race Condition
Shell programming
- variables
- standard input/output redirection
- shell arithmetic
- flow control and decision making
File and directory management using system calls
- File related system calls (open, read, write, lseek, close)
- Directory related system calls (opendir, readdir, closedir etc)
Text Books:
1. BEGINING LINUX PROGRAMMING by NEIL MATHEW & RICHARD STONES, WILEY
References:
- OPERATING SYSTEM CONCEPTS by ABRAHAM SILBERSCHATZ, GALVIN, WILEY
- UNIX CONCEPTS AND APPLICATIONS by SUMITABHA DAS, Tata McGraw Hill, India