TIVDM2Sortation System, Tray Allocation1 Tray allocation for a sortation system Real-time version Iteration III TI-VDM2 Project by José Antonio Esparza.

Slides:



Advertisements
Similar presentations
Novitech Service organization Presentation of concepts 1.
Advertisements

1 Concurrency: Deadlock and Starvation Chapter 6.
Ch 7 B.
Section 3. True/False Changing the order of semaphores’ operations in a program does not matter. False.
Concurrency Important and difficult (Ada slides copied from Ed Schonberg)
Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Chapter 6 (a): Synchronization.
CH7 discussion-review Mahmoud Alhabbash. Q1 What is a Race Condition? How could we prevent that? – Race condition is the situation where several processes.
Interprocess Communication
TIVDM1Sortation System, Tray Allocation1 Tray allocation for a sortation system TI-VDM1 Project by José Antonio Esparza and Kim Bjerge.
Concurrent Processes Lecture 5. Introduction Modern operating systems can handle more than one process at a time System scheduler manages processes and.
CS470 Lab 4 TA Notes. Objective Simulate the activities of a producer and consumer – Page 326 Use thread synchronization to solve the producer-consumer.
Deadlocks. 2 Deadlock Avoidance If we have future information –Max resource requirement of each process before they execute Can we guarantee that deadlocks.
Process Concept n An operating system executes a variety of programs: –Batch system – jobs –Time-shared systems – user programs or tasks n Textbook uses.
The new The new MONARC Simulation Framework Iosif Legrand  California Institute of Technology.
MAVEN CDR May 23-25, 2011 Particles and Fields Package Pre-Environmental Review May , 2012 Flight Software Peter R. Harvey Mars Atmosphere and Volatile.
Optimistic Intra-Transaction Parallelism on Chip-Multiprocessors Chris Colohan 1, Anastassia Ailamaki 1, J. Gregory Steffan 2 and Todd C. Mowry 1,3 1 Carnegie.
Developing Workflows with SharePoint Designer David Coe Application Development Consultant Microsoft Corporation.
Silberschatz and Galvin  Operating System Concepts Module 4: Processes Process Concept Process Scheduling Operation on Processes Cooperating.
CGS 3763 Operating Systems Concepts Spring 2013 Dan C. Marinescu Office: HEC 304 Office hours: M-Wd 11: :30 AM.
Chapter 3 System Performance and Models. 2 Systems and Models The concept of modeling in the study of the dynamic behavior of simple system is be able.
1162 JDK 5.0 Features Christian Kemper Principal Architect Borland.
© 2004, D. J. Foreman 2-1 Concurrency, Processes and Threads.
© 2011 Terma A/S 1 VDM-RT: Distributed Real-time Modeling Industrial PhD Student, Sune Wolff Terma A/S Engineering College of.
TIVDM2Real-Time and Distributed Development in VDM++1 Peter Gorm Larsen
© 2011 Terma A/S 1 VDM-RT: Distributed Real-time Modeling Industrial Postdoc, Sune Wolff Terma A/S Aarhus University, Department.
Title : CPU Broker (DSRT Extension) Kihun Kim University of Illinois at Urbana-Champaign.
Fast Simulation Techniques for Design Space Exploration Daniel Knorreck, Ludovic Apvrille, Renaud Pacalet
TANNENBAUM SECTION 2.3 INTERPROCESS COMMUNICATION OPERATING SYSTEMS.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 4 Process Slide 1 Chapter 4 Process.
4061 Session 21 (4/3). Today Thread Synchronization –Condition Variables –Monitors –Read-Write Locks.
Business Analysis with For PG MDI, Gurgaon Kamna Malik, Ph.D.
Real-Time Data through Data Hubs. Begin by adding a basic Move block, 5 rotations 75% power.
Threaded Programming in Python Adapted from Fundamentals of Python: From First Programs Through Data Structures CPE 401 / 601 Computer Network Systems.
Operating Systems Scheduling. Bursts of CPU usage alternate with periods of waiting for I/O. (a) A CPU-bound process. (b) An I/O-bound process. Scheduling.
Chapter 2 Processes and Threads Introduction 2.2 Processes A Process is the execution of a Program More specifically… – A process is a program.
OPERATING SYSTEMS CS 3530 Summer 2014 Systems with Multi-programming Chapter 4.
Processes CSCI 4534 Chapter 4. Introduction Early computer systems allowed one program to be executed at a time –The program had complete control of the.
TIVDM2VDM-RT Scheduling1 VDM-RT Scheduling in Overture Kenneth Lausdahl and Peter Gorm Larsen.
(14-2) UML Instructor - Andrew O’Fallon CptS 122 (December 2, 2015) Washington State University.
12/22/ Thread Model for Realizing Concurrency B. Ramamurthy.
How to write a MSGQ Transport (MQT) Overview Nov 29, 2005 Todd Mullanix.
6.1 CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Multiple-Processor Scheduling Real-Time Scheduling Algorithm Evaluation.
VDM++ Tutorial Concurrency. Overview Introduction Concurrency primitives in VDM++ Example: POP3 Server Concurrency and VDMTools ®
TIVDM1Sortation System, Tray Allocation1 Tray allocation for a sortation system Iteration III TI-VDM1 Project by José Antonio Esparza and Kim Bjerge.
Lecture 27 Multiprocessor Scheduling. Last lecture: VMM Two old problems: CPU virtualization and memory virtualization I/O virtualization Today Issues.
TIVDM2Sortation System, Tray Allocation1 Tray allocation for a sortation system Concurrent version Iteration I TI-VDM2 Project by José Antonio Esparza.
Copyright © Curt Hill More on Operating Systems Continuation of Introduction.
Communication thread core thread Spawn N negotiation threads... negotiation threads active inactive Initialize An Agent and Its Threads execution thread.
Google App Engine using Java 1. Outline Getting started Guestbook example Todo example Simplified Madlib 2.
Troubleshooting Workflow 8 Raymond Cruz, Software Support Engineer.
13-1 ANSYS, Inc. Proprietary © 2009 ANSYS, Inc. All rights reserved. April 28, 2009 Inventory # Chapter 13 Solver.out File and CCL Introduction to.
Lists/Dictionaries. What we are covering Data structure basics Lists Dictionaries Json.
SCI-BUS is supported by the FP7 Capacities Programme under contract nr RI CloudBroker usage Zoltán Farkas MTA SZTAKI LPDS
UML Review Sequence Diagrams SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
1 Vehicle Dynamic Monitoring Realtime Distributed Model Implemented VDM2 Claus B. Nielsen.
1 Module 3: Processes Reading: Chapter Next Module: –Inter-process Communication –Process Scheduling –Reading: Chapter 4.5, 6.1 – 6.3.
Process Management Deadlocks.
Threaded Programming in Python
Processes and threads.
Tray allocation for a sortation system Real-time version Iteration III
Chapter 5: CPU Scheduling
ICS Principles of Operating Systems
What’s New in SEER-H The Galorath Team.
Communication Diagrams
Concurrency: Mutual Exclusion and Process Synchronization
Chapter 7: Synchronization Examples
Software Architecture
Concurrency, Processes and Threads
BANKER’S ALGORITHM Prepared by, Prof
A Quick Guide Session Two
Presentation transcript:

TIVDM2Sortation System, Tray Allocation1 Tray allocation for a sortation system Real-time version Iteration III TI-VDM2 Project by José Antonio Esparza and Kim Bjerge

Today’s presentation Status on real-time model Update on concurrent model behavior (UML) Update on real-time model (VDM) TIVDM2Sortation System, Tray Allocation2

Status for RT model Thread’s deployed to CPU’s CPU for each induction TrayAllocator on a central CPU controller Removed TimeStamp and TrayStep Made periodic thread for TrayAllocator duration used for induction rate Version running Issues for next time How to feed items on based on time? Alternative deployment one CPU for two InductionControllers Error reading logrt? (30 errors encoutered in file) Why we can’t fill the sorter (19/20)? TIVDM2Sortation System, Tray Allocation3

Object diagram concurrent version TIVDM2Sortation System, Tray Allocation4

Behavior of concurrent model (Sequence #1) TIVDM2Sortation System, Tray Allocation5

Behavior of concurrent model (Sequence part #2) TIVDM2Sortation System, Tray Allocation6

RT version of SC – system instance variables cpuIC1 : CPU := new CPU (,1E6); cpuIC2 : CPU := new CPU (,1E6); cpuIC3 : CPU := new CPU (,1E9); cpuTA4 : CPU := new CPU (,1E6); bus1 : BUS := new BUS (,1E3,{cpuIC1,cpuTA4}); bus2 : BUS := new BUS (,1E3,{cpuIC2,cpuTA4}); bus3 : BUS := new BUS (,1E3,{cpuIC3,cpuTA4}); public static ic1 : InductionController := new InductionController(1); public static ic2 : InductionController := new InductionController(2); public static ic3 : InductionController := new InductionController(3); public static inductionGroup : seq of InductionController := [ic1, ic2, ic3]; public static allocator : TrayAllocator := new TrayAllocator(inductionGroup); operations public SC: () ==> SC SC() == ( cpuIC1.deploy(ic1); cpuIC2.deploy(ic2); cpuIC3.deploy(ic3); cpuTA4.deploy(allocator); ); TIVDM2Sortation System, Tray Allocation7

RT version of TrayAllocator periodic thread -- Periodic thread operation that simulates the TrayStep TrayStep: () ==> () TrayStep () == ( trayCount := trayCount + 1; IO`print(" "); CardReader(trayCount mod TrayAllocator`NumOfTrays + 1, ); -- Induct items for all waiting inductions CheckItemsToInduct(); ); thread -- periodic (20000, 0, 0, 0) (TrayStep); TIVDM2Sortation System, Tray Allocation8

RT version of InductionController thread -- Permission predicate on Wait operation (Moved from TrayAllocator) per Wait => threadid not in set dom allocator.icThreadsWaiting; thread ( while (ItemsToInduct()) do ( -- Request tray allocator to induct item and wait for induction let item = GetFirstItem() in ( allocator.RequestTray(threadid, selfIC, item); Wait(); ); -- In teory this value should be 2x20000 see periodic thread in TrayAllocator duration(30000) WaitInductionRate(); ); TIVDM2Sortation System, Tray Allocation9

RT version of SorterEnviroment thread while busy do ( timeStep := timeStep + 1; for all i in set {1,...,TrayAllocator`NumOfInductions} do ( -- Check for item to feed induction at time step let size = itemLoader.GetItemAtTimeStep(timeStep, i) in if (size > 0) then ( itemId := itemId + 1; IO`print("[ " ^ String`NatToStr(timeStep) ^ "]"); inductionGroup(i).FeedItem(new Item(size, itemId)); ); -- Check if simulation is finish if (time >= itemLoader.GetNumTimeSteps()) then busy := false; ); TIVDM2Sortation System, Tray Allocation10

Async operation FeedItem in InductionController -- Enviroment feeds a new item on induction async public FeedItem: Item ==> () FeedItem(i) == items := items ^ [i]; sync -- Enviroment and TrayAllocator threads mutex (FeedItem); -- Async new mutex needed! mutex (FeedItem, InductFirstItem); TIVDM2Sortation System, Tray Allocation11

Simulation Result *Induction id 1 -> Item id 16 size 100 on tray id 1 *Induction id 3 -> Item id 20 size 300 on tray id 5 *Induction id 2 -> Item id 19 size 200 on tray id Simulation completed for sorter configuration Specified throughput [items/hour]: Sorter speed [mm/sec]: 2000 Item max size [mm]: 1500 Item min size [mm]: 100 Tray size [mm]: 600 Number of trays : 20 Number of inductions : 3 Induction rate : 2 Induction separation [trays]: Number of trays with items : 19 Two tray items on sorter : 0 Number of tray steps : 23 Number of inducted items : 19 Calculated throughput[items/hour]: **** Sorter is not full **** new World().Run() = () TIVDM2Sortation System, Tray Allocation12