[SOLVED] CS241 -  Operating System – 1 - Assignment 2 - Java Synchronization

35.00 $

Programming resource
Digital learning resource
Category:
✓ Practical programming resource
✓ Suitable for guided study and reference
✓ Tutor guidance available when needed

Description

5/5 - (1 vote)

 Solution  Design

 You  program  must  contain  the  following classes:

  1. Router Class: that contains a list of connections and methods to occupy a connection and release a connection.
  2. Semaphore Class: as given the synchronization lab.
  3. Device Class: represent different devices (threads) that can be connected to the router; each device has its own name (i.e. C1) and type (i.e. mobile, pc, tablet…) and it may perform three activities: connect, perform online activity and disconnect/logout.
  4. Network Class: this class contains the main method in which the user is asked for two inputs:
  • N: max number of connections a router can accept ● TC: total number of devices that wish to connect).
  • TC lines that contain: name of each device, and its type

 Program  Output

You will print the output logs in a file, which simulates the execution order of the devices threads and the printed messages of each device

NOTE THAT: This is just an example not the only scenario that can be applied.

 Sample  Input

What is the number of WI-FI Connections?

2 What is the number of devices Clients want to connect?

4

C1 mobile

C2 tablet

C3 pc

C4 pc

 Sample Output

  • (C1)(mobile)arrived- (C2)(tablet)arrived
  • Connection 1: C1 Occupied- Connection 2: C2 Occupied
  • C4(pc) arrived and waiting
  • C3(pc)arrived and waiting- Connection 1: C1 login
  • Connection 1: C1 performs online activity- Connection 2: C2 login
  • Connection 2: C2 performs online activity
  • Connection 1: C1 Logged out
  • Connection 1 : C4 Occupied- Connection 1 : C4 log in
  • Connection 1 : C4 performs online activity
  • Connection 2: C2 Logged out- Connection 2: C3 Occupied

 

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.