CSC 206 Principles of Operating Systems 1 - Lab Guide
CSC 206 Principles of Operating Systems 1 - Lab Guide
LAB MANUAL
Principles of Operating Systems (OS) - Laboratory Guide
Lab 1: Components of OS, Client-Server Models, Management Modules in OS
Objective(s):
● Identify and describe the fundamental components of an operating system.
● Understand and differentiate between various client-server models.
● Recognize and explain the roles of key management modules within an operating system.
Hardware and Software Requirements:
● A Computer with internet access.
● Web browser.
● Text editor (e.g., Notepad, Sublime Text).
Lab Activities:
1. Understanding OS Components: Research and list the major components of a typical
operating system (e.g., kernel, memory manager, file system, I/O manager, process
manager). Briefly describe the function of each component.
2. Exploring Client-Server Models: Investigate and describe at least three different
client-server models (e.g., basic client-server, three-tier architecture, peer-to-peer). Provide
a real-world example for each model.
3. Identifying Management Modules: Identify and explain the primary responsibilities of the
following operating system management modules:
○ Process Management
○ Memory Management
○ File System Management
○ Device Management
○ Security Management
Instructor's Demonstration:
● A brief overview of the core components of an operating system using a visual aid (e.g.,
diagram).
● Explanation of different client-server architectures with illustrative examples.
● Demonstration of how to find information about the operating system's management
modules on a running system (e.g., using system monitoring tools… eg. List few of these
tools).
Hands-on Activity:
1. System Information Exploration: Use your computer's built-in tools (e.g., Task Manager on
Windows, System Monitor on Unix) to identify and observe the different management
.2
modules in action. Note down the processes and resources they manage.
.3
Task Manager on Windows
Resources viewer
2. Client-Server Interaction (Simulated): Using a web browser …. example required (client)
and a web server (e.g., accessing a website), identify the client and server roles in this
.4
interaction. Briefly describe the request-response cycle.
Exercise:
● Document your findings on the components of the OS with brief descriptions.
● Explain the characteristics and provide examples for each of the client-server models
researched.
● Describe the roles of the specified operating system management modules in your own
words.
● Summarize your observations from the system information exploration and the simulated
client-server interaction.
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.5
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.6
Lab 2: Installation of Windows OS, Setting up and Delete Partitions
Objective(s):
● Understand the process of installing Windows operating system.
● Learn how to create and manage disk partitions during the installation process.
● Become familiar with different file systems used by Windows.
Hardware and Software Requirements:
● Personal Computer (physical or virtual machine) with minimum hardware requirements for
the chosen Windows version.
● Windows OS installation media (Bootable CD, USB drive or ISO image).
● BIOS/UEFI access.
Lab Activities:
1. Preparation for Installation: Research the minimum hardware requirements for a specific
version of Windows (e.g., Windows 10 or 11). Understand the different installation options
(e.g., clean install, upgrade).
2. Partitioning Concepts: Learn about different partitioning schemes (e.g., MBR, GPT) and
common file systems used by Windows (e.g., NTFS, FAT32). Understand the purpose of
system partitions, boot partitions, and data partitions.
3. Simulating Installation (if actual installation is not feasible): If a full installation is not
possible due to resource constraints, follow online tutorials or videos that demonstrate the
Windows installation process, paying close attention to the partitioning steps.
Instructor's Demonstration:
● Demonstration of booting from the installation media and navigating the initial setup
screens.
● Step-by-step guide on creating, deleting, and resizing partitions using the Windows
installation wizard.
● Explanation of the different file system options and when to choose them.
Hands-on Activity:
● (Preferred) Actual Windows Installation: If resources allow, perform a clean installation of
Windows on a virtual machine or a dedicated test computer. Pay close attention to the disk
partitioning stage and create at least two partitions (e.g., one for the OS and one for data).
● (Alternative) Simulated Installation and Partition Planning: If actual installation is not
possible, follow a detailed video tutorial of a Windows installation. Document the steps
involved in partitioning, including the size and file system chosen for each partition. Plan a
partitioning scheme for a hypothetical scenario with specific storage requirements.
.7
Steps to run a simulated installation and partition planning
● Initialize a new Virtual Machine and select the Windows 11 ISO file
Click the Download button, select the language, and proceed. It’s around five gigabytes and will
section and move to the next one if you already have Virtual Box on your computer. If not,
.8
follow these steps:
#1. Go to the Virtual Box website and select the “Windows Hosts” option from the list.
#2. The Virtual Box executable file will start downloading on your computer.
.9
ISO file. You need to create a new virtual machine, allocate some system resources, and then
Windows 11, being a demanding operating system, needs around 4 GB RAM and 20 GB of
It is recommended using at least 8GB RAM and 30 GB of storage space for a smoother
#1. Click on the New Button in the Virtual Box Manager section.
#2. Enter a name for your newly created VM and select its installation location.
#3. The following steps need you to allocate system resources to the VM. Here I have used 4096
MB RAM and 30 GB of storage. You can choose any other value according to your requirements
.10
#4. Choose the amount of memory you want for your VM and click Next.
#5. Now choose the “Create Virtual Hard Disk” option and select the storage space for the VM.
.11
#5. Finally, click create.
#2. Currently, the VM is virtually empty, with no operating system present on the virtual hard
disk. So, select the ISO file in the next window by clicking on the Add button and finally clicking
Choose.
.12
#3. Now Restart the VM by clicking on the Start button.
#4. Since Microsoft has put hardware restrictions on Windows 11, this is precisely the time to
For this, press Shift+F10 to open the Command prompt and type regedit to open the registry
editor.
.13
Now, navigate to HKEY_LOCAL_MACHINE\SYSTEM\Setup. Subsequently, right-click over Setup
.14
Name this new key as LabConfig. Afterward, right-click over LabConfig and navigate to DWORD
(32-bit) Value.
Name it as BypassTPMCheck and press enter. Double-click over it and set its value as 1 from the
default 0.
Repeat the same process and create two new entries, BypassSecureBootCheck and
.15
BypassRamCheck, with value 1.
Close the registry editor and the command prompt to continue the Windows 11 installation.
#5 The installation process begins by filling in basic details like preferred language, country, and
Subsequently, the following window asks for a product key to activate the Windows version. You
.16
can click the “I don’t have a product key” button for this installation.
#6. Choose the Windows 11 version you want to install and click Next to accept the terms and
conditions.
.17
#7. The following window asks to choose between Custom Installation or Upgrade. Choose the
.18
#8. This will show the virtually created disk here. Select that and click Next to begin the
installation. In the end, you can begin setting up your brand new Windows 11 on a virtual box:
.19
Exercise:
● Document the steps involved in the Windows installation process.
● Describe the partitioning scheme you created (either actual or planned), including partition
sizes, file systems, and their intended purposes.
● Explain the differences between MBR and GPT partitioning schemes and NTFS and FAT32
file systems.
.20
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.21
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.22
Lab 3: Installation of Unix OS, Setting up Partitions
Objective(s):
● Understand the process of installing a Unix operating system.
● Learn how to create and manage disk partitions during the Unix installation process.
● Become familiar with different file systems commonly used in Unix.
Hardware and Software Requirements:
● Personal Computer (physical or virtual machine) with minimum hardware requirements for
the chosen Unix distribution (e.g., Ubuntu, Fedora, Mint).
● Unix OS installation media (USB drive or ISO image).
● BIOS/UEFI access.
Lab Activities:
1. Preparation for Installation: Research the minimum hardware requirements for your
chosen Unix distribution. Understand the different installation types (e.g., clean install,
dual boot).
2. Unix Partitioning Concepts: Learn about common Unix partitions (e.g., root /, swap,
/home, /boot) and file systems (e.g., ext4, XFS, Btrfs). Understand the purpose and
recommended sizes for each partition.
3. Simulating Installation (if actual installation is not feasible): If a full installation is not
possible, follow online tutorials or videos that demonstrate the Unix installation process,
paying close attention to the partitioning steps using tools like the installer's graphical
partition manager or manual partitioning.
Instructor's Demonstration:
● Demonstration of booting from the installation media and navigating the initial setup
screens of the chosen Unix distribution.
● Step-by-step guide on creating, deleting, and formatting partitions using the installer's
partitioning tools (both graphical and potentially command-line if applicable).
● Explanation of the different Unix partitions and file system options and their significance.
Hands-on Activity:
● (Preferred) Actual Unix Installation: If resources allow, perform a clean installation of your
chosen Unix distribution on a virtual machine or a dedicated test computer. Pay close
attention to the disk partitioning stage and create the recommended partitions (root,
swap, and optionally home and boot).
● (Alternative) Simulated Installation and Partition Planning: If actual installation is not
possible, follow a detailed video tutorial of a Unix installation. Document the steps involved
in partitioning, including the size, file system, and mount point for each partition. Plan a
.23
partitioning scheme for a hypothetical Unix server with specific storage needs.
.24
Next, we'll dynamically allocate storage on our physical hard disk.
.25
We want to specify our Ubuntu OS's size. The recommended size is 10 GB, but you can increase
the size if you wish.
.26
After creating a virtual hard disk, you'll see Ubuntu in your dashboard.
.27
Now, we have to set up the Ubuntu disk image file (.iso).
The Ubuntu disk image file can be downloaded here: Ubuntu OS download
.28
To set up the Ubuntu disk image file, go to settings and follow these steps:
.29
Click OK.
.30
NOTE: Ubuntu VirtualBox installation and actual OS installation steps may vary. This guide helps
you to install Ubuntu in VirtualBox only.
.31
Select your keyboard layout.
.32
In the "Updates and other software" section, check "Normal installation" and continue.
.33
In "Installation type", check "Erase disk and install Ubuntu".
.34
Click "Continue".
.35
Choose your current location.
.36
Now, set up your profile.
.37
You'll see Ubuntu installing.
.38
After the installation, restart it.
.39
After logging in, you'll see the Ubuntu desktop.
.40
We have successfully installed Ubuntu in VirtualBox. It's ready to use for your future
development projects.
.41
After checking those, power off your machine by using the following command.
● poweroff
.42
Exercise:
● Document the steps involved in the Unix installation process.
● Describe the partitioning scheme you created (either actual or planned), including partition
sizes, file systems, and mount points.
● Explain the purpose of common Unix partitions (root, swap, home, boot).
● Compare and contrast at least two common Unix file systems (e.g., ext4 and XFS).
.43
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.44
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.45
Lab 4: OS Troubleshooting and Maintenance
Objective(s):
● Identify common operating system problems and their potential causes.
● Learn basic troubleshooting techniques for both Windows and Unix environments.
● Understand essential OS maintenance tasks.
Hardware and Software Requirements:
● Personal Computer with either Windows or Unix installed.
● Access to system logs and diagnostic tools.
● Internet access for research.
Lab Activities:
1. Identifying Common Issues: Research and list common operating system problems (e.g.,
slow performance, blue screen of death (Windows), kernel panic (Unix), application
crashes, network connectivity issues). For each issue, identify potential underlying causes.
2. Troubleshooting Tools: Explore and describe basic troubleshooting tools available in
Windows (e.g., Task Manager, Event Viewer, System Restore, Command Prompt commands
like sfc /scannow, ipconfig) and Unix (e.g., top, htop, dmesg, system logs in /var/log,
network commands like ifconfig, ping).
3. OS Maintenance Practices: Learn about essential OS maintenance tasks for both Windows
(e.g., disk cleanup, defragmentation (if applicable), software updates, virus scans) and Unix
(e.g., package updates, log file management, disk space monitoring).
Instructor's Demonstration:
● Demonstration of using key troubleshooting tools in both Windows and Unix.
● Examples of diagnosing common problems based on system logs or error messages.
● Guidance on performing basic OS maintenance tasks.
Hands-on Activity:
● Simulating Problems (if possible): Under controlled conditions and with instructor
guidance, attempt to simulate some common OS problems (e.g., by running a
resource-intensive task to observe performance degradation, or by intentionally
misconfiguring a network setting).
● Using Troubleshooting Tools: Practice using the troubleshooting tools demonstrated by the
instructor to diagnose and potentially resolve the simulated issues or any existing minor
issues on your lab machine.
● Performing Maintenance Tasks: Perform basic OS maintenance tasks relevant to your
installed operating system (e.g., running disk cleanup on Windows, updating packages on
Unix).
.46
Exercise:
● List and describe common operating system problems and their potential causes.
● Explain how to use at least three troubleshooting tools in your installed OS and provide
examples of their output or usage.
● Outline essential OS maintenance tasks for your installed OS and explain their importance.
● Document any troubleshooting steps you took and their outcomes.
.47
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.48
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.49
Lab 5: Diagnostics Cart
Objective(s):
● Learn how to use diagnostic tools to assess the health and performance of computer
hardware and the operating system.
● Understand how to interpret diagnostic reports.
● Identify potential hardware and software bottlenecks using diagnostic tools.
Hardware and Software Requirements:
● Personal Computer with either Windows or Unix installed.
● Access to built-in diagnostic tools (e.g., Windows Memory Diagnostic, DirectX Diagnostic
Tool, Unix system monitoring tools).
● Optional: Third-party diagnostic software (if available and permitted by the instructor).
Lab Activities:
1. Exploring Built-in Diagnostics (Windows): Investigate and use the following Windows
diagnostic tools:
○ Task Manager (Performance tab)
○ Resource Monitor
○ Event Viewer (System and Application logs)
○ Windows Memory Diagnostic
○ DirectX Diagnostic Tool (dxdiag)
2. Exploring Built-in Diagnostics (Unix): Investigate and use the following Unix diagnostic
tools:
○ top or htop
○ vmstat
○ iostat
○ free -h
○ dmesg
○ System logs in /var/log
3. Interpreting Diagnostic Reports: Learn how to interpret the data provided by these
diagnostic tools to identify CPU utilization, memory usage, disk I/O, network activity, and
potential errors.
Instructor's Demonstration:
● Demonstration of launching and using the key diagnostic tools in both Windows and Unix.
● Explanation of how to interpret common metrics and identify potential issues (e.g., high
CPU usage, memory leaks, disk bottlenecks).
● Guidance on analyzing system logs for error messages.
.50
Hands-on Activity:
● Running Diagnostic Tests: Run the diagnostic tools demonstrated by the instructor on your
lab machine.
● Analyzing Performance: Observe the performance metrics (CPU, memory, disk, network)
while running different applications or performing specific tasks. Note down any unusual
patterns or high resource utilization.
● Examining System Logs: Explore the system and application logs for any critical errors or
warnings. Try to understand the context of these messages.
Exercise:
● Describe the purpose and usage of at least three diagnostic tools for your installed OS.
● Provide screenshots or output from the diagnostic tools showing key performance metrics.
● Interpret the observed performance data and identify any potential bottlenecks.
● Analyze a relevant section of the system logs and explain any significant entries.
.51
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.52
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.53
Lab 6: Setting up Network Operating System
Objective(s):
● Understand the fundamental concepts of Network Operating Systems (NOS).
● Learn how to configure basic network settings on a client operating system.
● Gain an introductory understanding of server-side NOS configurations (simulated or
demonstrated).
Hardware and Software Requirements:
● Two or more Personal Computers (physical or virtual machines) capable of networking.
● Network interface cards (NICs) on each machine.
● Network connectivity (e.g., Ethernet cable, Wi-Fi).
● One machine designated as the "client" and another potentially as a "simulated server."
● Operating systems (Windows or Unix) installed on the machines.
Lab Activities:
1. Understanding NOS Concepts: Research and define what a Network Operating System is
and its key functions (e.g., user management, resource sharing, security). Differentiate
between client and server operating systems in a networked environment.
2. Client-Side Network Configuration: Learn how to configure basic network settings on your
client operating system (e.g., IP address, subnet mask, gateway, DNS server) using both
graphical tools and command-line interfaces (e.g., ipconfig on Windows, ifconfig or ip addr
on Unix).
3. Exploring Server NOS Features (Simulated/Demonstrated): If a dedicated server NOS
environment is not available, research and describe the key features and configuration
aspects of a common server operating system (e.g., Windows Server, Unix Server
distributions). Focus on user and group management, shared folder configuration, and
basic security settings.
Instructor's Demonstration:
● Demonstration of configuring network settings on both Windows and Unix client operating
systems.
● Explanation of IP addressing concepts and network parameters.
● (If possible) A brief demonstration or simulation of basic server NOS functionalities like
creating user accounts and sharing folders.
Hands-on Activity:
● Configuring Client Network: Configure the network settings on your client machine (either
manually or using DHCP). Document your IP configuration.
● Testing Connectivity: Use network commands like ping to test connectivity between your
.54
client machine and other machines on the network (including the "simulated server" if
applicable).
● Exploring Shared Resources (if available): If a shared network resource is available,
attempt to access it from your client machine.
Exercise:
● Define Network Operating System and explain its key functions.
● Describe the steps involved in configuring network settings on your client OS.
● Document your client machine's IP configuration and the results of your connectivity tests.
● Summarize the key features and configuration aspects of a server NOS.
.55
.56
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.57
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.58
Lab 7: Concurrency Management in OS
Objective(s):
● Understand the concept of concurrency in operating systems.
● Learn about processes and threads as units of concurrency.
● Explore the challenges of concurrent execution, including race conditions.
● Introduce basic mechanisms for managing concurrency.
Hardware and Software Requirements:
● Personal Computer with either Windows or Unix.
● A programming environment that supports multi-threading (e.g., C/C++ with pthreads,
Java).
● Text editor.
Lab Activities:
1. Understanding Concurrency: Define concurrency and explain its benefits (e.g., improved
performance, responsiveness) and challenges (e.g., race conditions, synchronization
issues).
2. Processes and Threads: Differentiate between processes and threads. Explain how each is
used to achieve concurrency. Discuss the advantages of using threads over processes.
3. Race Conditions: Define race conditions and explain how they occur. Provide a simple code
example (in C/C++, Java, or another suitable language) that demonstrates a race condition.
4. Basic Concurrency Control: Introduce basic mechanisms for managing concurrency, such
as:
○ Mutexes (Mutual Exclusion)
○ Semaphores
Instructor's Demonstration:
● Demonstration of creating and running multiple threads (or processes) in a programming
environment.
● Example illustrating a race condition and its unpredictable outcome.
● Introduction to using mutexes or semaphores to prevent race conditions.
Hands-on Activity:
● Multi-threaded Program: Write a simple multi-threaded program (e.g., in C/C++ using
pthreads or in Java) where multiple threads access and modify a shared variable.
● Demonstrate Race Condition: Run the program and observe the inconsistent results due to
the race condition.
● Implement Synchronization: Modify the program to use mutexes or semaphores to protect
.59
the shared variable and ensure consistent results.
Exercise:
● Define concurrency and explain its importance in operating systems.
● Compare and contrast processes and threads, highlighting the advantages of threads.
● Explain what a race condition is and provide a code example that demonstrates it.
● Describe how mutexes or semaphores can be used to prevent race conditions.
● Include your code for the multi-threaded program (both with and without synchronization)
and the output that demonstrates the race condition and its resolution.
.60
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.61
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.62
Lab 8: Mutual Exclusion
Objective(s):
● Deepen the understanding of mutual exclusion as a critical concept in concurrency control.
● Explore different software and hardware solutions for achieving mutual exclusion.
● Analyze the advantages and disadvantages of various mutual exclusion techniques.
Hardware and Software Requirements:
● Personal Computer with either Windows or Unix.
● A programming environment that supports multi-threading (e.g., C/C++ with pthreads,
Java).
● Text editor.
Lab Activities:
1. Mutual Exclusion: Define mutual exclusion and explain its importance in preventing data
corruption and ensuring correct program behavior in concurrent systems.
2. Software Solutions for Mutual Exclusion: Study and describe the following software-based
approaches to achieving mutual exclusion:
○ Peterson's Algorithm
○ Dekker's Algorithm
3. Hardware Solutions for Mutual Exclusion: Study and describe the following
hardware-based approaches to achieving mutual exclusion:
○ Test and Set Lock (TSL) instruction
○ Compare and Swap (CAS) instruction
4. Comparison of Techniques: Compare and contrast the software and hardware solutions in
terms of complexity, performance, and limitations.
Instructor's Demonstration:
● Demonstration of implementing one or more of the mutual exclusion techniques (e.g.,
Peterson's Algorithm or TSL) in a multi-threaded program.
● Explanation of how these techniques ensure that only one thread can access the critical
section at a time.
● Discussion of the advantages and disadvantages of each technique.
Hands-on Activity:
● Implement Mutual Exclusion: Implement one of the mutual exclusion algorithms (e.g.,
Peterson's Algorithm, or use TSL/CAS if your programming environment provides access to
these instructions) in a multi-threaded program.
● Test Correctness: Write code to test the correctness of your implementation by ensuring
that only one thread can enter the critical section at any given time.
.63
● Measure Performance (Optional): If possible, measure the performance of your
implementation (e.g., the time it takes for threads to acquire and release the lock) and
compare it with other techniques.
Exercise:
● Define mutual exclusion and explain its importance.
● Describe the software-based mutual exclusion algorithms (Peterson's, Dekker's).
● Describe the hardware-based mutual exclusion mechanisms (TSL, CAS).
● Compare and contrast the different mutual exclusion techniques.
● Include your code for the multi-threaded program with the implemented mutual exclusion
and the results of your correctness tests.
.64
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.65
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.66
Lab 9: Deadlock
Objective(s):
● Understand the concept of deadlock in operating systems.
● Learn the necessary conditions for deadlock to occur.
● Explore different strategies for dealing with deadlocks: prevention, avoidance, detection,
and recovery.
Hardware and Software Requirements:
● Personal Computer with either Windows or Unix.
● A programming environment that supports multi-threading and resource allocation (e.g.,
C/C++ with pthreads, Java).
● Text editor.
Lab Activities:
1. Deadlock Definition: Define deadlock and explain its causes and consequences in
operating systems.
2. Conditions for Deadlock: Explain the four necessary conditions for deadlock to occur:
○ Mutual Exclusion
○ Hold and Wait
○ No Preemption
○ Circular Wait
3. Deadlock Handling Strategies: Study and describe the following strategies for handling
deadlocks:
○ Deadlock Prevention: Techniques to prevent one or more of the necessary conditions.
○ Deadlock Avoidance: Techniques to avoid deadlock by making resource allocation
decisions based on future needs (e.g., Banker's Algorithm).
○ Deadlock Detection: Techniques to detect the occurrence of deadlock.
○ Deadlock Recovery: Techniques to recover from deadlock once it has occurred (e.g.,
process termination, resource preemption).
Instructor's Demonstration:
● Demonstration (if feasible) of a simple scenario that leads to a deadlock in a
multi-threaded program.
● Explanation of how the four necessary conditions are met in the demonstrated scenario.
● Illustration of how one of the deadlock handling strategies (e.g., deadlock prevention or
avoidance) could be applied to the scenario.
● (Optional) Demonstration of using OS tools to detect deadlocks.
Hands-on Activity:
.67
● Simulate Deadlock (Simplified): Write a simplified multi-threaded program that simulates
a resource allocation scenario that can lead to deadlock. For example, have two threads
that each need two resources, and have them acquire the resources in different orders.
● Demonstrate Deadlock Conditions: In your code, explicitly show how the four necessary
conditions for deadlock are met.
● Implement a Handling Strategy: Implement one of the deadlock handling strategies (e.g., a
basic form of prevention or a simplified version of avoidance) in your program.
Exercise:
● Define deadlock and explain its causes.
● Explain the four necessary conditions for deadlock.
● Describe the different strategies for handling deadlocks (prevention, avoidance, detection,
recovery).
● Include your code for the deadlock simulation and explain how it demonstrates the
deadlock conditions.
● Explain the deadlock handling strategy you implemented.
.68
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.69
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.70
Lab 10: Capstone Project
Objective(s):
● Apply the concepts and knowledge acquired throughout the course to design and
implement a comprehensive operating systems-related project.
● Develop problem-solving, critical thinking, and teamwork skills.
● Enhance practical skills in system-level programming and OS configuration.
Hardware and Software Requirements:
● Personal Computers with either Windows or Unix (depending on the project
requirements).
● Programming environments and tools as required by the chosen project (e.g., C/C++, Java,
scripting languages, virtualization software).
● Access to relevant documentation and online resources.
Lab Activities:
1. Project Selection: Students will work individually or in small groups to choose a capstone
project from a list of suggested topics or propose their own project idea (subject to
instructor approval). Examples of potential projects include:
○ Building a simple inter-process communication (IPC) mechanism.
○ Setting up and configuring a network operating system for a specific purpose.
○ Investigating and implementing a solution to a classic OS problem (e.g., the Dining
Philosophers problem).
2. Project Design: Students will develop a detailed design document for their chosen project,
including:
○ Problem statement and objectives
○ System architecture and component design
○ Algorithms and data structures
○ Implementation plan and timeline
○ Testing strategy
3. Project Implementation: Students will implement their project according to the design
specifications.
4. Project Testing and Evaluation: Students will thoroughly test their project to ensure its
correctness, performance, and robustness. They will also evaluate their project against the
initial objectives and design goals.
5. Project Presentation and Documentation: Students will present their project to the class
and submit a comprehensive final report.
Instructor's Demonstration:
● The instructor will provide guidance and support throughout the project lifecycle.
.71
● This may include demonstrations of relevant tools, techniques, or concepts.
● The instructor will also provide feedback on project design, implementation, and testing.
Hands-on Activity:
● Students will work on their capstone projects independently or in groups, following the
design, implementation, testing, and documentation steps outlined above.
● Regular meetings with the instructor will be scheduled to discuss progress, address
challenges, and receive feedback.
Exercise:
● Complete all phases of the capstone project, including:
○ Project selection and proposal
○ Design document
○ Implementation
○ Testing and evaluation
○ Final presentation and report
.72
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.73
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.74
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.75
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
.76