Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

COEN346

Operating Systems

Assignment 1: Multithreaded Zero-Day Attack

Goals:

  • Understand the complexities of zero-day attacks and the necessity of quick patch deployment to protect systems.
  • Implement a parallel solution using Java multithreading to analyze system logs for potential vulnerabilities.
  • Gain experience working with the Levenshtein Distance algorithm to detect patterns in log files.
  • Manage multiple threads dynamically, adjusting the number of worker threads based on the detection rate of vulnerabilities.

Assignment 2: Dining Philosophers Problem

Goals:

  • Extend the classical Dining Philosophers synchronization problem by implementing additional behaviors, such as talking.
  • Utilize Java's synchronization primitives, such as wait() and notifyAll(), to ensure a deadlock- and starvation-free solution.
  • Implement the Monitor class to manage philosophers' behaviors, including eating, thinking, and talking, and to ensure safe access to shared resources like chopsticks and pepper shakers.
  • Explore the challenges of dynamic thread management by modifying the number of philosophers during execution.

Assignment 3: Simulating Round Robin Process Scheduling

Goals:

  • Implement a simulation of a process scheduler using a round-robin scheduling algorithm.
  • Develop a non-preemptive scheduler that allocates CPU time based on the remaining execution time of processes, ensuring fairness and preventing starvation.
  • Simulate processes using threads in Java, allowing only one process to run on the CPU at a time.
  • Analyze and report on the effectiveness of the round-robin technique compared to other scheduling algorithms.

About

Operating Systems

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages