A simulation environment, which mimics the scheduling of multiple elevators within a building of any size. The multithreaded approach helps to simulate elevators running concurrently. The simulation also makes use of several group scheduling algorithms, which help to distribute the workload between elevator-cars as well as make the elevators adaptable to various situations (eg. more people in the morning - Up-Peak, everyone is going to the main floor - Zoning).
Description
For our Interior boat flooring selection with offer three distinctive products that are nothing short of exceptional. The first of the three is our Amtico Synthetic wood selection. This Product is made to simulate real teak and holly floors (cherry & holly, Mahogany & holly depending on wood species selection) or traditional hardwood floors. Best Answer: No. You would have no rights to public access under the ADA or under most state laws, or under the laws of any other country I have studied. Access laws pertaining to service animals belong to the handler, not the dog. As such, they apply only to people with disabilities. Some states permit.
How to Run
Data Structures Used
- CopyOnWriteArrayList - Source I, CopyOnWriteArrayList - Source II
- Makes it possible to iterate over a list in a safe way, even when concurrent modification is happening
- Creates a snapshot of the array, every time a mutation operation is invoked, hence, the iteration would always take place on the previous version of the array
- The data structure was used to hold
floorCalls
andcarCalls
in the Elevator class
- Makes it possible to iterate over a list in a safe way, even when concurrent modification is happening
- PriorityBlockingQueue
- Supplies blocking retrieval operations
- Allows for custom element ordering
- The data structure was used to implement
sequence
, in which the calls had to be sorted based on their passage
Group Scheduling Algorithms Implemented
Round-Robin
- Is the default group scheduling algorithm
- Calls are assigned in the order they arrive in a sequential way to single elevators
Up-Peak
- A variation of Round-Robin
- If an elevator is idle for ~7 seconds, then a call is generated to take the elevator to the lobby
- This reduces the waiting time for future passengers arriving at the lobby
Zoning
- Splits a building into several adjacent zones
- Every elevator only serving floor calls that occur in the zone assigned to the respective car
- Implemented Static Zoning, zones are assigned permanently
Three-Passage
- Estimates the costs that would result from assigning a new call to the elevator
- The call is assigned to the elevator with the lowest costs
- In case every elevator already reached 80% load (number of calls > 80% elevator's capacity), calls will not get assigned until at least one elevator falls below this mark
Threads
Building.java
Thread
- The main thread
- Randomly chooses a floor from the
floors
array and calls thegeneratePassenger()
method - Sleep time is ~ 20 seconds
GroupElevatorController.java
Thread
- The thread calls the
scheduler()
method with an interval of ~ 2 seconds - The
scheduler()
method scans thefloors
array and looks for passengers - If a passenger is found, then a job is assign to one of the elevators from the
elevatorGroup
array - The target elevator is chosen by group scheduling algorithms
Elevator.java
Thread I
- The
elevatorControllerThread
calls theelevatorController()
method with an interval of ~ 2 seconds - The
elevatorController()
method:- Gets a
floorCall
fromfloorCalls
array - Assigns it a passage
- Adds it to the
sequence
queue
- Gets a
Elevator.java
Thread II
- The
performJobThread
calls theperformJob()
method with an interval of ~ 2 seconds - The
performJob()
method:- Takes a call from
sequence
queue - Simulates the elevator going up or down
- Takes a call from
Elevator.java
Thread III
- The
upPeakThread
relocates elevators in idle state to the lobby.
Elevator.java
Thread IV
- The
zoningThread
relocates elevators in idle state to go to a floor within their assigned zone.
Information Sources
What's Next
- Analyze each algorithm by running the system with different inputs:
- Different number of elevators
- Different number of requests
- Implement the functionality to switch dynamically between the algorithms during runtime
- Implemented disk scheduling algorithms:
- First Come-First Serve (FCFS)
- Shortest Seek Time First (SSTF)
- Elevator (SCAN)
- Circular SCAN (C-SCAN)
- LOOK
- C-LOOK
- Add GUI
Are your floors scratched, worn, or out of style? In the past, there weren’t a lot of options for replacing your flooring, as the primary materials were beautiful—but expensive—hardwood or costly carpeting. Today, however, this project doesn't have to be a budget-buster. There are a number of reasonably priced flooring options that will give you a fashionable floor at a fraction of the cost. Many of these options mimic the look and texture of solid wood or other natural materials, but without the high price tag. Read on for more popular and inexpensive flooring options.
Related: 7 Countertop Materials You Can Actually Afford