CS380 Operating Systems Real-Time Concurrent Simulation Programming Assignment Roger Webster, Ph.D. D&E Communications Computer.

Slides:



Advertisements
Similar presentations
Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa.
Advertisements

TCP Monitor and Auto Tuner. Need Analysis Enable monitoring of TCP Connections Enable maximum bandwidth utilization No such utility available in MONALISA.
Lecture 5 Concurrency and Process/Thread Synchronization     Mutual Exclusion         Dekker's Algorithm         Lamport's Bakery Algorithm.
CS533 Concepts of Operating Systems Class 20 Summary.
1  1998 Morgan Kaufmann Publishers Chapter 9 Multiprocessors.
© 2005 Prentice Hall12-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
EECE Hybrid and Embedded Systems: Computation T. John Koo, Ph.D. Institute for Software Integrated Systems Department of Electrical Engineering and.
Chapter 11 Operating Systems
CS533 - Concepts of Operating Systems
MOBIES Project Progress Report Engine Throttle Controller Design Using Multiple Models of Computation Edward Lee Haiyang Zheng with thanks to Ptolemy Group.
Copyright © 2005, GemStone Systems Inc. All Rights Reserved. A Capstone with GemStone David Whitlock April 18, 2005.
Fundamentals of Python: From First Programs Through Data Structures
Computerized Train Control System by: Shawn Lord Christian Thompson.
What is Concurrent Programming? Maram Bani Younes.
CS 3305 Course Overview. Introduction r Instructor: Dr Hanan Lutfiyya r Office: MC 355 r hanan at csd dot uwo ca r Office Hours: m Drop-by m Appointment.
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Austin Java Users Group developerWorks article – µActor Library BARRY FEIGENBAUM, PH. D. 02/26/13.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
M1G Introduction to Database Development 6. Building Applications.
1 Advanced topics in OpenCIM 1.CIM: The need and the solution.CIM: The need and the solution. 2.Architecture overview.Architecture overview. 3.How Open.
Threaded Programming in Python Adapted from Fundamentals of Python: From First Programs Through Data Structures CPE 401 / 601 Computer Network Systems.
Architecture of Decision Support System
Upcoming Presentations ILM Professional Service – Proprietary and Confidential ( DateTimeTopicPresenter March PM Distributed.
Computer-Controlled Railroad Simulator Adrian Anderson
Adapted from Computer Concepts, New Perspectives, Thompson Course Technology EDW 647: The Internet Dr. Roger Webster & Dr. Nazli Mollah EDW647: Internet.
Unit 4: Processes, Threads & Deadlocks June 2012 Kaplan University 1.
CS475 Game Development Basic Texture Mapping Roger Webster, Ph.D. D&E Communications Computer Science Wing Caputo Hall Dept.
D&E Communications Computer Science Wing Caputo Hall Dept. of Computer Science Millersville University Millersville, PA.
1 Sections Java Virtual Machine and Byte Code Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
CONCEPTS OF REAL-TIME OPERATING SYSTEM. OBJECTIVE  To Understand Why we need OS?  To identify Types of OS  To Define Real - Time Systems  To Classify.
CSCI 460- Spring 2012 Kayla Pope 3/5/2012. Project Definition (Brief) Design track definition program Support protocol for decoders and Auxiliary Input.
CMPS Operating Systems Prof. Scott Brandt Computer Science Department University of California, Santa Cruz.
Programming Paradigms, Software Architectural Patterns, and MVC CS 378 – Mobile Computing for iOS Dr. William C. Bulko.
Tutorial 2: Homework 1 and Project 1
Introduction to Operating Systems Concepts
Presentation Outline I. Background Information II. Design Project
Features of Authoring Tools
Threaded Programming in Python
Selenium HP Web Test Tool Training
Design Components are Code Components
Selenium HP Web Test Tool Training
“Language Mechanism for Synchronization”
B axis A axis The machine we are using now.
Mobile Operating System
Lecture 21 Concurrency Introduction
Formally Specified Monitoring of Temporal Properties
CS475 3D Game Development Level Of Detail Nodes (LOD)
Contents Simulink model Grouping into subsystems Naming the subsystems
Lecture 16: Readers-Writers Problem and Message Passing
Realizing Concurrency using Posix Threads (pthreads)
Compact Framework Directional Interface
Lecture 2: Processes Part 1
Concurring Concurrently
CSCI1600: Embedded and Real Time Software
CSE 370 – Winter Sequential Logic - 1
An Open-Source Based Speech Recognition Android Application for Helping Handicapped Students Writing Programs Tong Lai Yu, Santhrushna Gande.
CS 501: Software Engineering Fall 1999
What is Concurrent Programming?
Multiprocessor and Real-Time Scheduling
Design Components are Code Components
Threaded Programming in Python
Realizing Concurrency using Posix Threads (pthreads)
A Short Intro to Go CS 240 – Fall 2018 Rec. 1.
Lecture 16: Readers-Writers Problem and Message Passing
Realizing Concurrency using Posix Threads (pthreads)
Process Synchronization
CS 144 Advanced C++ Programming May 7 Class Meeting
Monitors and Inter-Process Communication
Teach Parallelism Using Video Games
Presentation transcript:

CS380 Operating Systems Real-Time Concurrent Simulation Programming Assignment Roger Webster, Ph.D. D&E Communications Computer Science Wing Caputo Hall Dept. of Computer Science Millersville University Millersville, PA

Assignment Objectives The objective of this assignment is to gain experience in the following areas: –Programming concurrent tasks/processes. –Sending and receiving messages. –Java Thread and Mutex programming. –Operating System programming problems. –Simulating real-time programming environments –Modeling a simulation after an actual real time train controller

Assignment Details Write a concurrent, message passing program that performs a simulation of a real-time information passing among processes. Create a Java thread which will simulate reading the reed switches on the real-time digital model railroad system and pass the info to the controlling thread. The reed contacts will trip when an engine crosses the contact on the track. The GUI thread should be capable of accepting commands from the user : start train1, start train2, stop train1, stop train2, slow down & speed up each train, throw the two turn-out switches (straight and curved) You should create separate threads for each train and make it go around the track. Make sure your controller does not allow a train crash. Do not busy wait, and make sure mutex is guaranteed on switches and train collisions. See diagram in handout for details, I have built the graphics for the GUI, see the helper code is on my web site.

Finite State Machine Model Model all train movements using a FSM Your controller should: 1.Receive from the GUI the trains the DesiredSpeed that the user wants the train to run at. 2.Store the DesiredSpeed in each train. 3.When there is no collision imminent, then set the train's speed to the DesiredSpeed as set by the user at the GUI. 4.Any collisions, always set the rear train to slow down or stop, do not speed up the trainAhead. 5.A train stop or speed of 0, must NOT Busy Wait!! 6.For AutoRun mode then you completely control all speeds regardless of User at the GUI.

Summary You can use any and all of the tools of Concurrent Programming and Operating Systems to accomplish these things: –Semaphores, wait and notify, synchronized methods. You can not write this real time simulation controller without using one or more concurrency primitives without busy waiting. Demo Java Real Time Train Simulation Controller