100% found this document useful (1 vote)
261 views2 pages

Operating System Project Assignment

This document outlines a 3rd year computer science operating systems project assignment. It contains 3 sections: 1. Discuss the roles of operating systems as a resource manager and extended machine on client, server, and mobile devices, considering features like resource allocation. 2. Demonstrate and discuss Unix/Linux commands, like checking if a remote host is alive, finding CPU usage, available disk space, and counting word occurrences in a file. 3. Discuss concepts related to processes, memory management, devices, files, and security using terms like virtual machines, booting, scheduling, semaphores, RAID, and access matrices. The project can be done in groups of up to 4 students and is

Uploaded by

abebaw atalele
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
261 views2 pages

Operating System Project Assignment

This document outlines a 3rd year computer science operating systems project assignment. It contains 3 sections: 1. Discuss the roles of operating systems as a resource manager and extended machine on client, server, and mobile devices, considering features like resource allocation. 2. Demonstrate and discuss Unix/Linux commands, like checking if a remote host is alive, finding CPU usage, available disk space, and counting word occurrences in a file. 3. Discuss concepts related to processes, memory management, devices, files, and security using terms like virtual machines, booting, scheduling, semaphores, RAID, and access matrices. The project can be done in groups of up to 4 students and is

Uploaded by

abebaw atalele
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
  • Operating System Project Assignment
  • Assignment Execution Details

3rd year Computer Science

Operating System Project Assignment (10 Points)


1: Operating Systems: The Operating system acts as an interface between the user and the
computer hardware. Discuss in detail the roles of the OS as a resource manager and as an
extended machine on the following systems:

 Client,
 Server, and
 Mobile devices.

Students may consider any of the OS for discussions, for instance Windows, Linux, iOS,
MacOS, Android, etc. Further, the students must consider any five of the following
features relevant to the systems for discussions.

 Support many devices simultaneously


 Allocate resource to different users
 Share resources among users fairly, efficiently, and safely
 Resolve conflict in resource demand
 Hides the implementation details
 Provide stable, portable, reliable, safe, well-behaved environment
 Manage memory, processor, file etc.
 Level of security it provides

For instance, the students may opt the following to answer section 1.

System Type OS for the system selected Features

Client Windows Explain any 5 features

Server Linux Explain any 5 features

Mobile OS Android Explain any 5 features

2: Operating System Administration using Command Line Interface (CLI)

Refer to the man command to understand the syntax and parameters for the commands
that you would be using in this section

I. Demonstrate the following Unix/Linux commands in the lab and the screen shots of the
execution in the same word file.
 How do you know if a remote host is alive or not?
 How do you find which process is taking how much CPU?
 How do you check how much space is left in current drive?
 How do you find whether your system is 32 bit or 64 bit?
 In a file word UNIX is appearing many times. How will you count the number of
these occurrences?

II. Type in the following commands and discuss the outputs you get after execution of
the commands. Also, paste the screen shots of the output obtained in the same word file
used for above question.

 % cat /etc/hosts cat?


 % echo "Home Directory Is home" uppercase $HOME?
 % who | wc
 % who > [Link]
 %date "+%m/%d/%y"
 %date "+%Y%m%d"
 %date +'%-4.4h %2.1d %H:%M'

3. Discuses following point using the concepts of process and process management,
memory management, device management and file management.

1. Define virtual machine


2. Define system boot
3. Discuss process scheduling
4. Define threading issues
5. Explain thread scheduling
6. Discuss Peterson’s solution
7. Explain semaphores
8. Explain file concept
9. Define RAID
10. Define disk management
11. Explain deadlock detection and recovery
12. Explain deadlock prevention and avoidance
13. Explain memory management without swapping or paging
14. Explain page replacement algorithms
15. Explain application I/O interface
16. Explain access matrix

NB: Group work max 4 members, max 7 pages and submission date January 28, 2022.

Common questions

Powered by AI

Memory management on client systems primarily involves ensuring applications have enough resources to run efficiently alongside efforts to manage memory usage through techniques like dynamic allocation and garbage collection. Server OS focus heavily on virtualization and efficient utilization of memory resources to handle concurrent processes and users, using complex strategies like memory paging and demand paging to optimize performance. Mobile systems use memory management techniques that conserve battery life, such as minimizing background processes and active application memory usage, and employing compression and swapping where necessary to balance performance and power efficiency .

Operating systems abstract the hardware by providing a set of APIs and system calls that allow applications to interact with hardware without knowing the specifics. For clients, this means applications can be developed without consideration of the underlying hardware, focusing rather on user interaction. Servers benefit from this abstraction by allowing applications to run in a distributed and virtualized environment, often across multiple servers, without direct hardware dependency. Mobile OS abstract hardware details to ensure app compatibility across many device types, promoting a stable and consistent experience despite hardware variations. This approach promotes portability and a stable operational environment across these platforms .

CLI usage in operating system administration varies significantly across platforms. On Unix/Linux-based systems, CLI is often used for its power, flexibility, and precise control it provides over system functions through commands for processes, files, and networks. In Windows, the CLI is less prominent, with more reliance on graphical user interfaces, although PowerShell and Command Prompt are available for advanced tasks. For mobile platforms like Android, CLI is used primarily for development and system debugging purposes, accessed via tools that provide Android Debug Bridge (ADB) capabilities. Each platform's CLIs intentionally cater to the typical administrative needs specific to that environment, whether for detailed system control or for easing complex management tasks .

In a client environment, the operating system acts as a resource manager by managing various resources needed by individual users and applications. It focuses on optimizing the user experience by efficiently handling tasks such as running applications, managing files, and ensuring security. In server environments, the OS must manage resources to support multiple users and processes simultaneously, prioritizing performance, scalability, and reliability. It handles more complex tasks like load balancing and process synchronization. For mobile devices, the OS must manage limited resources such as battery life and processor power while maintaining usability and performance, often in real-time. This involves tasks like managing background processes and optimizing the memory footprint to ensure applications run smoothly .

Semaphores are critical for managing concurrency and preventing race conditions when multiple processes access shared resources. In client operating systems, semaphores are used to ensure that applications do not interfere with one another by managing access to shared files or memory spaces. For server operating systems, semaphores play a significant role in managing multiple processes and threads efficiently and preventing deadlocks in multi-user environments where resources are often shared. Mobile operating systems use semaphores to manage the limited resources effectively, ensuring seamless multitasking and maintaining system responsiveness. Implementing semaphores across these different systems requires tuning their mechanisms to fit the specific concurrency and resource constraints each environment presents .

In server environments, deadlock prevention and avoidance are crucial due to the high concurrency and shared resources typical of these systems. Deadlocks can lead to significant downtime and loss of service, impacting multiple users and applications. Thus, servers implement robust deadlock detection, prevention, and recovery mechanisms such as resource allocation graphs and transactional locking. In contrast, client systems are less prone to deadlocks due to lower concurrency, typically employing simple deadlock prevention strategies that suspend or abort conflicting processes. Mobile operating systems focus less on deadlock due to limited multitasking capabilities, but they do incorporate lightweight deadlock detection and avoidance mechanisms to ensure stability without taxing system resources .

In client systems, resource allocation and sharing are geared towards optimizing user experience by ensuring that foreground applications receive resource priority while background applications are managed efficiently. Server systems, on the other hand, require more sophisticated resource management techniques due to the need to handle many simultaneous users and applications. This involves dynamic resource allocation strategies, often leveraging virtualization and containerization to efficiently share resources. Mobile operating systems are constrained by power efficiency and must manage resources such as CPU and memory to prolong battery life while maintaining user experience, often utilizing adaptive algorithms to balance power consumption with performance needs .

Virtual machines (VMs) integrate into operating systems by providing a software emulation of hardware that allows multiple OS environments to run simultaneously on a single physical machine. For client systems, VMs offer sandboxing capabilities, allowing users to run software in isolated environments without affecting the host OS. In server environments, VMs enable more efficient resource use by consolidating multiple servers onto fewer physical machines, offering flexibility and scalability for cloud computing. Mobile operating systems utilize VMs to run applications across different devices with varying hardware compatibility, aiding developers in testing their apps. The implications of VMs include enhanced system security through isolation, improved resource utilization, and simplified application deployment and testing across diverse environments .

Client operating systems focus on user-driven security measures such as user authentication, firewall settings, and anti-virus integration to protect personal and sensitive information. Server operating systems implement stricter security protocols to protect against network attacks, unauthorized access, and data breaches. They often have features for encryption, access logging, and user permission management to ensure data integrity and confidentiality. Mobile operating systems prioritize security and privacy due to the personal nature of mobile devices and their risk to theft and loss. This includes app sandboxing, encryption, biometric authentication, and frequent security updates to protect user data .

Process scheduling on client systems faces the challenge of balancing application responsiveness with resource limitations, typically leveraging time-sharing scheduling policies. For servers, the challenge is to efficiently schedule thousands of concurrent processes across CPUs to maximize throughput and minimize latency, using more sophisticated scheduling policies like multi-level queue scheduling or load balancing mechanisms. Mobile devices, meanwhile, have constraints of limited CPU power and battery usage, requiring scheduling strategies that focus on reducing power consumption while maintaining acceptable performance levels, such as using dynamic frequency scaling and task prioritization techniques .

3rd year Computer Science 
Operating System Project Assignment  (10 Points) 
 
1: Operating Systems: The Operating system act
 How do you know if a remote host is alive or not? 
 How do you find which process is taking how much CPU? 
 How do you ch

You might also like