Java concurrent in real time environment

Hi David,
we intend to use in our implementation classes from java.util.concurrent.
for example:
BlockingQueue, hashMap etc... .
i read in some documentation from 2006 that jrts not working well
with this packages.
is it still relevant for now???
second question (it more request than a question):
when we read jrts version we are getting 1.0.2 even our jrts version is 2.1.
i guess you just need to update the version.
Thanks
Gabi

Hi Lior,
Priority inversion is about anything that can delay a high priority thread waiting for a low priority one which itself is prevented from running because middle priority threads are running. This is not only about the "synchronize" statement or "lock". This is about any scheme that allows threads to cooperate.
When you use "synchronize", a RTSJ implementation will use PIP to ensure that the low priority thread is boosted to the high priority. This basically ensure that the delay for the high priority thread is minimized. Thus, using "synchronize" is a way to avoid priority inversion in your application, not what causes the priority inversion.
However, when you use the locks defined in j.u.c (like java.util.concurrent.locks.ReentrantLock), the high priority thread can be blocked on that lock and will not boost the low priority thread. If there are several thread trying to acquire the lock, it is not even guaranteed that the highest priority contender will get it when it is released. Other policies like FIFO can be implemented. It might in some cases be the right policy for your application... but you must be aware of the policy if this is in the time-critical part of your application.
Similarly, suppose you implemented the management of a resource with a java.util.concurrent.Semaphore. The low priority thread could own a resource and is expected to release() it when it no longer needs the resource. If the high priority thread needs the same resource, it has no way to boost the low priority thread to speed-up the process. In the worst case, the low priority thread could be completely preempted by other real-time threads and may never use and release the resource. This applies to all the synchronizers in j.u.c (CyclicBarrier, Exchanger, ...). This is not necessarily an issue. This may be the behavior you want.
Last example, suppose you want to use a ThreadPoolExecutor to automatically parallelize some work. You must be aware that this does not take into account the priority of the thread that needs that job to be executed. Once again, this is OK if this work is not in the time-critical part of your application and if the thread that is waiting for the job does not own a resource that could be necessary for a higher priority thread.
As a summary, if you use j.u.c, you must take into account the fact that there will be no boosting and no guarantee based on the priority. If you are sure that priorities do not matter, then you can use j.u.c. and benefit from these extended APIs .
Bertrand.
Edited by: delsart on Feb 18, 2009 5:11 PM

Similar Messages

  • !!!-Need help for terminating a Java thread in real time

    Hi everyone!
    I use J2SDK1.4.1 on a Unix platform.
    I want to terminate (or stop) a running java thread, which is dealing with time consuming tasks, in real-time (for example: the delay before the thread is terminated can't beyond one second), However, I don't know which techniques I can use to make sure the previous (or old) running java threads have been terminated?
    Could you please give me any help if you can?
    Any suggestion or reply will be kindly appreciated!
    Thanks!

    Thanks very much, jverd !
    I do set a flag that the thread should periodically check !
    Well, the scenario is like this:
    1. the thread read line by line (using BufferedReader) string from a probably huge-size file
    2. analyse each string read from the file if required (some strings may be omitted based on the user's operations), the analyzing process is a time-consuming task, and the analysing process may be terminated at any time the user want.
    3. record only the strings that have been analyzed by the previous process into a recording file
    The problem I meet is as follows: (Here, I suppose that it should take at least 30 seconds to finish analyse all the strings in a given huge file )
    1. the user start the analysing process, and run it for only 5 seconds,then stop the analyzing.
    2. the user start the analysing process again from the begining of the file(analyse the strings within the same file as previous step), and then stop the analysing process at 10 second. (it means, this time the analysing process is running for 10 seconds, still haven't finish analyse all the strings in the file).
    Once I open the record file, I saw some of the strings in the recording file have been repetitively record for 2 times, and the repetitive strings are just the strings the analysing time from at 5 second to at 10 second.
    And the repetitive times are depend on how many time the user start and stop the analysing process using the same file. for example, based on the above two steps, the user do the third step as follow:
    3. the user start the analysing process once again, analyse the same file,too. And run it for 15 seconds
    This time open the recording file, this time I saw some of the strings have been repetitively record for 3 times, and the repetitive strings are just the strings the analysing time from at 10 second to at 15 second.
    So, I guess the problem is probably because the previous analysing threads haven't been terminated completely, or say they just are blocked or set as inactive etc., then when the next time start the analysing process, the old threads will be reactive,and rerun ffrom the last time they are blocked.
    I hope you had catched what I mean, if you not, please ust let me know, I'll try to explain it again.
    Thanks once again!

  • Hi experts real time environment queation

    please guide me
    1. in real time how will i get my object.
    2. after completion of my object how can i test my object which method i can use who will send test data.
    3. who can release my object (it is abaper role to release using se09 or se10 or any other)
    4. whom can i submit my object (T.L or any other)
    5. TL what he can do and how he test my object.
    6. who can  TL submit the object PL or PM or basisguy
    7. who will transport the request?
    could u please send answers
    thanks to advance

    hi Sayeed,
    Please find below, answers to your questions:
    1. in real time how will i get my object.
    <u>Ans:</u> The objects in a project will be allocated by the Technical lead to the developers.
    2. after completion of my object how can i test my object which method i can use who will send test data.
    <u>Ans:</u> In typical SAP developments, as a developer you will be doing the unit testing, with the data provided in the test scripts.
    3. who can release my object (it is abaper role to release using se09 or se10 or any other)
    <u>Ans:</u> Generally, the developer will have a request for the objects he is assigned with; and he will be releasing the request from SE09, after the unit testing and code inspector checks.
    4. whom can i submit my object (T.L or any other)
    <u>Ans:</u> Once you are done with your object, this has to be communicated to your TL (infact, he will be monitoring your work/tasks).
    5. TL what he can do and how he test my object.
    <u>Ans:</u> The TL may assign the object to QA resource for doing code review, etc, or he himself might do the same. Also he will ensure the object is working fine, by doing testing from his side too.
    6. who can TL submit the object PL or PM or basisguy
    <u>Ans:</u>  The TL deliver the objects to the PRoject manager/Program manager as the case may be.
    7. who will transport the request?
    <u>Ans:</u> The basis resources will be resoponsible for doing the transports across the landscape.
    Hope this helps,
    Sajan Joseph.

  • Hi experts doubt real time environment

    hi abapers could u please guide me
    could please give me correct examples
    userid                      :
    system id                :
    requestnumber         :
    devlopmentclient no  :
    quality serverno        :
    produaction no         :

    Hi Sayeed,
    User ID: It is ID created by the system administrator.Genarlly they follow some
                 standard for this.My company follow it as Last name + first Character
                 of Name So,I become RAJANN
    System ID: This is system id again assigned by Basis team(system people).Generally,it denotes the system number in whole landscape if you have same kind of instance.Suppose you have three same kind of system ,you can put it as 01,02,03 etc.
    Request Number: This is a request number assigned for making any changes in system.It is just like a number using which you can track the changes made in system in terms of development or any configurational changes.These number are transported from one system to another system.
    SAP ask to apply atleast three environement.
    DEV-Development system where all changes are done and you create transport  request here in terms of development & Configuration.
    QAC:Transport are moved into QAC system.In QAC system you do testing of the object and do quality check.
    PRD-Production system is one where all transaction and other activity of enterprise happen .
    So a transport request move changes from DEV->QAC->PRD using request number.
    Quality server number: This is just like IP address ,a number assigned to your system,it is like address of your system in entire network landscape.For understanding purpose you can assume this system as simple computer and all computer have some IP address so Quality server number will also have some IP address and this refer exactly that.
    Production System: It is exactly as explianed above.
    Regards,nishant
    Please reward points if this helps

  • Real time questions for HFM

    Hi, Gurus'
    Can anyone plz answer for the below questions
    1. How to restart the services in Real time.
    Example: If workspace service need to be restarted. what kind of procedure we need to follow for this situation?
    2. How to overcome system performance issues specially in month ends, while number of concurrent entities loading the data in to HFM Application at the same time?
    Do we need to follow a protocol like one day few entities data loading, next day few more entities data loading.... like this??
    3. How frequently we need to take the backups for the data and applications? like daily,weekly or monthly?
    Example: if it is on Daily basis, how to restrict the other entities from being loading the data in to HFM Application while taking backups for the particular timings? is it effects the Data Accuracy?
    4.What is the best approach to move the DEV application from DEV to Production environment for which few accounts or Entities added recently.
    Means CopyApplication utility, migration or extracting metadata and loading to Productions application??
    5. what are the common steps will take in real time, to inform all the entities to log out the HFM application for maintenance or any other purpose?
    Thanks for your help in advance
    Regards
    Smilee

    Hi,
    In a real time environment, the following process will be followed in general
    1. Most of the organizations will prepare financial close cycle timelines for the entire fiscal year in advance. This activity will be taken care of fiance department
    2. Get an approval from financial director for the close cycle timeline and make it to frozen state unless any exception comes in
    3. Based on the timelines, IS department will prepare the maintenance schedule of Hyperion EPM instance by keeping in mind that there should be no maintenance activity during the close cycle time
    4. The maintenance schedule will get approved by IS department and then taken forward to finance department for final approval. If any changes\recommendations suggested by finance department then it will be incorporated by IS department and get the final approval
    5. Notify the HFM end users about the maintenance schedule well advance by an e-mail communication,teamsite , business meetings etc
    6. Start sending reminder mail about the scheduled maintenance activity one day to all the HFM end users before the activity starts
    7. Start sending the final reminder mail about the scheduled maintenance activity one hour before the activity starts
    8. Once the maintenance activty is completed, send an email communication to all the HFM end users that the HFM system is up and running now
    9. In case of any un expected issue during the maintenance activity which might lead to increase in the downtime required for the maintenance activity.Inform the key stake holders at the earliest and inform the end users accordingly
    Thanks..

  • Pipe in real time

    Hi David,
    we want to know:
    is there any problem to not use pipes (PipedInputStream PipedOutputStream PipedReader PipedWriter)
    in real time environment.
    Gabi

    None of the standard Java libraries were designed for real-time use. How effective using Pipes will be depends on how you want to use them. Internally these classes use synchronized methods (good) plus wait/notify (bad). The use of wait/notify has two problems:
    a) in general if the waiter and the notifier are different priorities then you can get a priority inversion. A high priority thread could be waiting for a low-priority thread to pass some data, but a medium priority thread prevents the low-priority thread from running.
    b) In particular this code always does the wait with a 1 second timeout, so if the communication rates are low then threads waiting for data will wake up once a second check for more data and go back to waiting. Similarly if a producer outpaces a consumer then the producer blocks waiting for space to write, but wakes up once a second to see if there is space. This will introduce jitter and related non-determinism.
    You can deal with (a) by using a single thread at each end of the pipe with the same priorities. But you can't do anything about (b).
    David Holmes

  • What is the best way to store data on a network hard drive using CompactRIO RTOS and Labvew Real time?

    HI!
    I'm starting a project in which I have a low rate stream of data to read in a real time environment. I should store these data on a network hard disk without any PC with standard OS, I just have CompactRIO RTOS. How can I send this data to the network drive? Is it possible to just “write” data like I do for a standard file in LabView?
    Thanks for any help!!
    Il Conte
    dr. Valentino Tontodonato

    Il Conte,
    you have to keep in mind that normally the RT OS does not map drives other than the Compact Flash that it has onboard (C:\). There are exceptions such as
    -cFP-20xx which may have additional Flash Drives which can be addressed as D:\ Drive
    -CVS systems with IEEE-1394 interface can write/read to Firewire external Harddrives
    -PXI Controllers booted from a Floppy disk may map the floppy drive as A:\
    One solution to your needings may be to write data to files locally on your onboard CompactFlash and then transfer these files to a network location using FTP, provided the network drive you are pointing to supports FTP.
    Let us know if you need any more help with this,
    AlessioD
    National Instruments

  • Hi experts real time questions plz post ans

    i am confusing supporting and development kindly guide me
    supporting doubts:
    1. in supporting where we can find servers(dev, qua, pro) is client place or in our company.
    2. if it is client place how we can connect to client is there any tool to connect with client.
    3. client send tickets to developer or pm or tl.(will we get tickets through PM or TL )
    4. as a developer what type tickets we can solve and monthly minimum how many tickets we  can solve.
    development doubts:
    1. implementation/development where we can find servers
    2. in company which tool to use to communicate to developer, tl and pm.
    3. for example servers are in client place uid and password our basis provide or others.
    thanks to advance

    Hi,
    In a real time environment, the following process will be followed in general
    1. Most of the organizations will prepare financial close cycle timelines for the entire fiscal year in advance. This activity will be taken care of fiance department
    2. Get an approval from financial director for the close cycle timeline and make it to frozen state unless any exception comes in
    3. Based on the timelines, IS department will prepare the maintenance schedule of Hyperion EPM instance by keeping in mind that there should be no maintenance activity during the close cycle time
    4. The maintenance schedule will get approved by IS department and then taken forward to finance department for final approval. If any changes\recommendations suggested by finance department then it will be incorporated by IS department and get the final approval
    5. Notify the HFM end users about the maintenance schedule well advance by an e-mail communication,teamsite , business meetings etc
    6. Start sending reminder mail about the scheduled maintenance activity one day to all the HFM end users before the activity starts
    7. Start sending the final reminder mail about the scheduled maintenance activity one hour before the activity starts
    8. Once the maintenance activty is completed, send an email communication to all the HFM end users that the HFM system is up and running now
    9. In case of any un expected issue during the maintenance activity which might lead to increase in the downtime required for the maintenance activity.Inform the key stake holders at the earliest and inform the end users accordingly
    Thanks..

  • Real Time Third Party Software Integration

    I posted this in the PI forum and it was suggested to post it here as well.  I am new to SAP but have worked with PeopleSoft and MS Dynamics AX for several years.  My company is implementing FI/CO and our partner is telling us that we will interface our third party application via flat files that are scheduled.  We are use to running in a real time environment so this is a little hard to swallow.
    Here is an example of what I am trying to do:
    Our third party software will be the starting point for customers. When a new customer is created we need to create that customer in SAP as well (for use with AR). Currently we open a connection to the existing financial application, verify that the customer does not exist and insert the data into the table.
    We all agree that we do not want to write directly to the SAP table(s).
    What we would like to do is when the user saves the record in the third party app, open a connection to SAP, pass the data to the BAPI, wait for a return code then complete the transaction.
    The third party application is written in PowerBuilder 11 and is able to connect to most any database, talk .Net, and call external API's.
    Please advise if this is possible and if so, a link to an example would be great.
    Thanks,
    Scott

    You may use RFC protocol to connect to SAP system. You download RFC library from download center and install it on your third-party system.
    Check threads.

  • Event Structure in Timed Loop in real time cannot work

    I am a new user for LabVIEW. And I met a problem which really frastre me!!! Hope someone can help me out. Thanks in advance!
    I simply want to use event structure under timed loop, which is extrmely important in my design.
    However, this works very good in my computer (without connect to FPGA).
    Once I connect it to FPGA, then I can run it still but there is no response!
    My file is attached. Please somebody helps me!
    Looking forward to your answers!
    Solved!
    Go to Solution.
    Attachments:
    Test for Timed Loop.vi ‏9 KB

    The FPGA runs headless. Event structures are not going to work. What you need to do is have an application on your host where the user presses a button, changes a value, etc. That event should send a message via TCP/IP to the code running in the real time environment. Then the real time environment should set a control on the FPGA to the value you want.
    In general, real time programming with FPGA has multiple layers.
    1) Host code-> handles user interactions and communicates them to real time code via TCP,UDP, etc. Displays data to user sent from the RT controller.
    2) Real time code->runs headlessly. Handles messages from Host code, processes FPGA data, communicates with FPGA much like the host code communicates with the real time code
    3) FPGA -> does acquistion and passes it via FIFO to the RT
    The first thing you need to do is understand the architecture and how all these pieces of the puzzle work together before throwing things down on a diagram.
    CLA, LabVIEW Versions 2010-2013

  • Real Time - Capture sound signal from Mic then store to memory.

    Hi people,
    I wish to do a real time program that capture the data (+the ADC discrete digitized sound data+) from mic then store the data in memory...
    Then my program retrieve the data continuously from the memory (as long as there are captured data from mic)
    But i have no idea how JAVA deal with real time program that use memory to store the captured data.
    i do know that JAVA do have class INPUTSTREAM to deal the real time thing that fetch the byte of data to program. But still wish to get more reference from here (never use this class before).
    Please advise how can i start from "signal" the mic to store the captured data to memory and my program able to retrieve the data from memory then work my algorithm on it.
    Or can correct me how actually i should store the captured data... i should store the data in memory or store the data as a variable?
    MANY MANY MANY MANY thanks!!! Very appreciate for the advise and i will give my attempt :-).

    I m sorry..
    I was intend to ask the correct way to store the digitized data from microphone.
    As all my previous work were storing the keyboard input as an declared variable or store in local server database.
    But this time i wish to store the captured and quantized sound data from mic and no idea where should i start from...
    Please give me some advise please.
    I dun wish to save what i captured as a .wav file then only process the .wav file data.
    But wish to process the data that was captured at instant.
    I m very appreciate for your advise here.

  • What are the main parts in ABAP Programing to work in Real Time ?

    Hi
    I would like to know hat are the main/important parts in ABAP Programing to work in real time environment.
    Moderator message : Search for available information. Thread locked.
    Edited by: Vinod Kumar on Aug 1, 2011 9:50 AM

    Hi Ashok,
    There are so many programming parts such as Function modules, report programs, workflows, smartforms, webdynpro, adobe forms, scripts etc.
    In which context you want answer can you please tell ?
    Regards,
    Aabha

  • The Problem about Monitoring Motion using PCI-7358 on LabVIEW Real Time Module

    Hello everyone,
    I have a problem about monitoring the position of an axis. First let me give some details about the motion controller system I’m using.
    I’m using PCI-7358 as controller and MID-7654 as servo driver, and I’m controlling a Maxon DC Brushed motor. I want to check the dynamic performance of the actuator system in a real time environment so I created a LabVIEW function and implemented it on LabVIEW Real Time module.
    My function loads a target position (Load Target Position.vi) and starts the motion. (Start.vi) then in a timed loop I read the instantaneous position using Read Position.vi. When I graphed the data taken from the Read Position.vi, I saw that same values are taken for 5 sequential loops. I checked the total time required by Read Position.vi to complete its task and it’s 0.1ms. I arranged the loop that acquires the data as to complete its one run in 1ms. But the data shows that 5 sequential loops read the same data?

    Read Position.flx can execute much faster than 5 ms but as it reads a register that is updated every 5 ms on the board, it reads the same value multiple times.
    To get around this problem there are two methods:
    Buffered High-Speed-Capturing (HSC)
    With buffered HSC the board stores a position value in it's onboard buffer each time a trigger occurrs on the axis' trigger input. HSC allows a trigger rate of about 2 kHz. That means, you can store a position value every 500 µs. Please refer to the HSC examples. You may have to look into the buffered breakpoint examples to learn how to use a buffer, as there doesn't seem to be a buffered HSC example available. Please note that you need an external trigger-signal (e. g. from a counter of a DAQ board). Please note that the amount of position data that you can acquire in a single shot is limited to about 16.000 values.
    Buffered position measurement with additional plugin-board
    If you don't have a device that allows you to generate a repetitive trigger signal as required in method 1.), you will have to use an additional board, e. g. a PCI-6601. This board provides four counter/timers. You could either use this board to generate the trigger signal or you could use it to do the position capturing itself. A PCI-6601 (or an M-Series board) provides can run a buffered position acquisition with a rate of several hundred kHz and with virtually no limitation to the amount of data to be stored. You could even route the encoder signals from your 7350 to the PCI-6601 by using an internal RTSI cable (no external wiring required).
    I hope this helps,
    Jochen Klier
    National Instruments

  • Installation problem w/ Java Run Time Environment 1.2.2

    Steps to reproduce error:
    1.On Windows 98 I install Java Run Time Environment 1.2.2
    2.I try to launch Java Plug-in Control Panel from Windows Start menu
    Error message:
    JAVAW caused an invalid page fault in
    module SYMCJIT.DLL at 0167:500bf974.
    Registers:
    EAX=00000e03 CS=0167 EIP=500bf974 EFLGS=00010206
    EBX=006538e0 SS=016f ESP=0063f838 EBP=00000e7f
    ECX=0000009f DS=016f ESI=00000e7f FS=0e77
    EDX=00000003 ES=016f EDI=05110010 GS=0000
    Bytes at CS:EIP:
    f3 a5 ff 24 95 48 42 0c 50 8d 49 00 8d 74 31 fc
    Stack dump:
    500bf8c7 0000027f 500c42b0 5007cc24 05110010 00000e7f 0000027f 00760ab0 00000283 0069a4a8 006538e0 0063f8e4 00653928 05110010 006538e0 00000e7f
    Is there a fix for this?
    Thanks
    -DK

    This dll does not recognise the Pentium 4 processor. You need to update the JRE. It is a well recognised problem. Search the forums (and Google) using "symcjit pentium 4" to obtain more information.
    Hope this helps.--
    <sig> http://www.itswalky.com http://www.crfh.net </sig>

  • Scheduling in Real-Time Java

    Hello,
    I have some questions concerning how scheduling in fact is intended to be performed in a RTSJ based Real-Time Java System.
    As far as I understood, RTSJ requires pre-emptive priority-based dispatching of Schedulable objects.
    This means that the execution eligibility of a schedulable entity is mainly its priority.
    That causality is reflected within the specification with the (one-and-only specified) PriorityScheduler, which is the base scheduler for actual Real-Time Java applications.
    Furthermore, there is a notion of extensibility of that PriorityScheduler described by RTSJ,
    in order to provide further scheduling mechanims and feasibility analysis algorithms (please correct me if there are any wrong assumptions).
    This is the point, where everything becomes really weird to me ...
    As far as I could investigate, in most RTSJ implementations based on a POSIX compliant system underneath (like Java RTS does on RTLinux or Solaris)
    each (Realtime)JavaThread is mapped 1-to-1 to a light-weight process on the operating system level (e.g. a pthread).
    So far, we have no "green threads" within the JVM, but real LWPs scheduled by the OS.
    The difference between "normal" and "real-time" threads lies in the scheduling policy used for that mapping.
    While normal Java threads probably map to SCHED_RR or SCHED_OTHER, real-time threads are scheduled by the OS via the SCHED_FIFO policy in order to achieve a better real-time predictability.
    However, the OS's scheduling mechanisms automatically make decisions about the right positioning of a LWP within an appropriate run-queue, due to thread's preemption, blocking or release (even dynamic priority changes) activities and its scheduling policy.
    That's exactly why I ask myself, what is the need of a Scheduler representation within a JVM?
    Furthermore, how a Scheduler extension is able to incorporate with the threading model and the underlying scheduling mechanisms of the OS?
    One point could be a situation where a real-time JVM runs directly on top of the bare hardware and has to perform scheduling decisions on its own.
    The Scheduler API could then be understood as an extension mechanism of a kind of JVM-intern scheduler (e.g. the PriorityScheduler), thereby allowing scheduling decisions to be made even in user defined Scheduler implementations.
    A similar use case for an OS-based scenario could be if a JVM is intended to pass scheduling/threading routines of the underlying OS (eg. a part of the POSIX API)
    up to the Java application level in order to provide the opportunity for a kind of application defined scheduling (like e.g. in the MaRTE OS).
    Unfortunatelly, after introspecting the RTSJ API, both conclusions seem to me to be wrong.
    So far, Java RTS seems not to provide any mechanism for reaction on scheduling events/decisions, neither intra-JVM nor from an underlying OS outside of the JVM.
    Furthermore, there is no notion for incorporation with the base PriorityScheduler for making extended scheduling decisions.
    I hope this post could bring me more light into the scheduling idea behind Real-Time Java systems as intnded by the RTSJ.
    Sincerely,
    Vladimir

    Vladimir.Nikolov wrote:
    That means, that a scheduling policy different to PriorityScheduler can only be assigned to a Schedulable object if it is supported by the OS and the JVM?Well it has to be supported by that implementation of the RTSJ. Howe that is done - ie whether it requires OS support - depends on that VM, the OS and the actual scheduling policy.
    It also seems that at the current state of the art the PriorityScheduler representative within the JVM is intended only for manipulating a feasibility set of Schedulable objects (supporting online feasibility analysis)?
    However, since user-defined scheduling is not intended by the specification, applications have to rely on the feasibility analysis based on the underlying/supported scheduling mechanisms.
    Thus, in the current Java RTS implementation this would be the "default" feasibility mechanism based on the PriorityScheduler.
    Unfortunatelly I can not figure out the need of maintaining a feasibility set, since feasibility, as specified for the PriorityScheduler, is a simple asumption that we have "an adequatly fast machine to handle the periodic and sporadic load"?
    I actually assumed that feasibility analysis performs real cost budgeting taking into account deadlines and so on, but it seems to be specified simply to make a negative statement always when aperiodic tasks are involved ?The RTSJ scheduling framework provides support for feasibility analysis by defining the admission control methods eg setXXXIfFeasible. However the RTSJ does not, and can not, mandate any non-trivial feasibility algorithm because in simple terms no such general algorithms exist. There are some static feasibility tests in the literature and you could apply those offline to your application (assuming you can find the values of all the "magic" numbers in such formulae - which is generally not the case). At present the RTSJ doesn't support even these simple feasibility tests because blocking-time is not recorded in the release parameters - something being addressed in RTSJ 1.1. In any case unless there is a pluggable framework for feasibility tests it would be a waste of time for VMs to implement them given they can (more) easily be done offline using other tools.
    Only dynamic admission control is really of interest and as far as I am aware no such general dynamic admission control policies exist (anything you find in the literature is very context specific). So it is left up to an implementation as to whether they try and define dynamic admission control algorithms - and so far none have because they don't have one.
    In "Getting More Flexible Scheduling in the RTSJ" Wellings and Zerzelidis propose some (more or less) "minor" extensions to the RTSJ API in order to enable hierarchical scheduling within the fixed priority framework.
    Since Andy Wellings is a member of the RTSJ Technical Interpretation Committee, is there any attempt to evolve the specification in a similar direction as described above, in order to support more flexible scheduling mechanisms and feasibility analysis?If there is ever a RTSJ 2.0 then more sophisticated scheduling support is one of the items on the wishlist. But there's no guarantee there ever will be a RTSJ 2.0
    David Holmes

Maybe you are looking for

  • BSP-MVC download to excel

    Hello experts, I know there are many threads on this topic in the forum. I tried using method cl_bsp_utility=>download but nothing happens. Here is the scenario - 1. I have BSP 2. From Do_handle_event in controller class I am calling model method whi

  • Nokia Lumia 1320 data coonection problem!

    since update to 8.1 i can't use data connection on phone, but internet sharing works. so APN works no problems with calls, wifi, just data connection on phone! I do not want hard reset!!! Nokia Lumia 1320 OS v.: 8.10.12393.890 firm.: 3058.50000.1424.

  • NAS or Firewire 800 drive for iTunes storage?

    My iTunes files are currently about 5 or 6 TB of files. I tend to add about 1 to 2TB of media files a year. I have a Netgear ReadyNAS Pro which has 9TB of capacity and has dual gigabit cards (redundant - load balancing) wired via cat6 to a gigabit ro

  • Safari always crashes when opening media players in separate windows

    Every time I go to open a TV network website to watch episodes, it crashes when the episode player is opening. It does the same thing when I try to open a website with a song player that opens in a separate window. I tried doing something I read in a

  • Bootcamp drive wont mount

    i partitioned my hard drive and installed xp sp2 on my hard drive and everything works fine but in mac it wont mount my drive so i cant use parallels without installing a whole new copy of windows ive gone into the disk utility and it says its diskOs