Torus heat equations to get dizzy from. Hooping with xC
Joint presentation with with Dr. Lawrence John Dickson (Larry)
Read at IEEE-COPA 2021 fringe
April 2021
Lucky Strike with Missing Bytes
Original at IEEE life members newsletter Dec. 2020
Excerpt at Lucky Strikes with Missing Bytes
Article derived from Lucky strike with missing bytes (2002)
Dec. 2020
Channeling against the flow
As always presented to students at TTK4145 Sanntidsprogrammering (Real-time programming).
Read at NTNU_2019/foredrag.pdf (20 MB, reduced graphics - builds not included.) Full graphics at NTNU_2019/foredrag_full.pdf (76 MB)
https://www.ntnu.no/studier/emner/TTK4145
7. May 2019
Unravelling XC concepts [[combine]], [[combinable]], [[distribute]], [[distributable]] and [[distributed(..)]] plus par and on..Read here: Unravelling XC concepts [[combine]], [[combinable]], [[distribute]], [[distributable]] and [[distributed(..)]] plus par and on.. - start from there
19. August 2018 at Technische Universität Dresden
Thinking about it: Channels more than connect threads. They protect themDownload first, from NTNU_2018/foredrag.pdf (25 MB, reduced graphics) - then read as full page, since all builds are included.
Alternatively read directly at NTNU_2018/foredrag_full.pdf (69 MB, full graphics) since there's one page per page - or download if you prefer to.
https://www.ntnu.no/studier/emner/TTK4145
1. February 2018
Messing Around with Timeouts. In Contracts?Read here: Messing Around with Timeouts. In Contracts? - start from there
http://wotug.org/cpa2016/programme.shtml
21. August 2016
From hard microseconds to speedy years. Real time in the industryRead here: NTNU_2016/foredrag.pdf (9 MB)
https://www.ntnu.no/studier/emner/TTK4145
26. April 2016
https://www.teigfam.net/oyvind/home/technology/108-two-cpa-2015-fringe-presentations/
23 and 24Aug2015
Fra harde µ-sekunder til forte årLes her: NTNU_2015/foredrag.pdf (11 MB)
https://www.ntnu.no/studier/emner/TTK4145
20. april 2015
Fra harde µ-sekunder til forte årLes her: NTNU_2014/foredrag.pdf (14 MB)
https://www.ntnu.no/studier/emner/TTK4145
28. mars 2014
Go-style concurrency
CSP and process-oriented programming
Even after a long history of channel-based concurrency it is not mainstream
In the light of Google’s new programming language Go, this lecture will search for shores around the Channel Islands
Read here: embedded-TRD_2014/lecture.pdf (2 MB)
http://www.meetup.com/embedded-TRD
26. March 2014
- Keys
- Channels, synchronous, asynchronous, buffers, overflow, flow control, CSP.
- Author
- Øyvind Teig
Autronica Fire and Security (AFS) (A UTC Fire and Security company) - http://www.autronicafire.no- In
- Presented at: Communicating Process Architectures 2013 (CPA-2013), at Edinburgh Napier University, Scotland (25-28 Aug. 2013)
- Proceedings:
- Communicating Process Architectures 2013
P.H. Welch et al. (Eds.)
© 2013 The authors. All rights reserved.
Open Channel Publishing Ltd., 2013
ISBN ...
© 2013 The authors and Open Channel Publishing Ltd. All rights reserved.- Abstract
- This paper suggests an additional semantics to XCHANs, where a sender to a synchronous channel that ends up as a component in a receiver’s selective choice (like ALT) may (if wanted) become signaled whenever the ALT has been (or is being) set up with the actual channel; not in the active channel set. Information about this is either received as the standard return on XCHAN‘s attempted sending or on the built-in feedback channel (called x-channel) if initial sending failed. This semantics may be used to avoid having to send (and receive) messages that have been seen as uninteresting. We call this scheme feathering, a kind of low level implicit subscriber mechanism. The mechanism may be useful for systems where channels that were not listened to while listening on some other set of channels, will not cause a later including of those channels to carry already declared uninteresting messages. It is like not having to treat earlier bus-stop arrival messages for the wrong direction after you sit on the first arrived bus for the correct direction. The paper discusses the idea as far as possible, since modeling or implementation has not been possible. This paper’s main purpose is to present the idea.
- More
- After the conference:
Read at: CPA2013/paper.pdf (locally) - http://wotug.org/paperdb/ (web)
Presentation at: CPA2013/presentation.pdf
- Prologue
- This paper had a prologue in a blog note I wrote in the spring of 2013, "Waiting faster" where I discussed Tony Hoare’s lecture “Concurrent programs wait faster”, see https://www.teigfam.net/oyvind/home/technology/062-waiting-faster/
Fra harde µ-sekunder til forte årLes her: NTNU_2013/foredrag.pdf (8 MB)
https://www.ntnu.no/studier/emner/TTK4145
15. april 2013
The below text and links are the original, and kept as such. After Oct2023 see this entry updated at XCHANs: Notes on a New Channel Type
- Keys
- Channels, synchronous, asynchronous, buffers, overflow, flow control, CSP.
- Author
- Øyvind Teig
Autronica Fire and Security (AFS) (A UTC Fire and Security company) - http://www.autronicafire.no- In
- Presented at: Communicating Process Architectures 2012 (CPA-2012), at Abertay University in Dundee, Scotland (26-29 Aug. 2012)
- Proceedings:
- Communicating Process Architectures 2012 (CPA-2012)
Proceedings of the 34th WoTUG Technical Meeting (pages 155-170)
P.H. Welch et al. (Eds.)
Open Channel Publishing Ltd., 2012
ISBN 978-0-9565409-5-9
© 2012 The authors and Open Channel Publishing Ltd. All rights reserved.- Abstract
- This paper proposes a new channel type, XCHAN, for communicating messages between a sender and receiver. Sending on an XCHAN is asynchronous, with the sending process informed as to its success. XCHANs may be buffered, in which case a successful send means the message has got into the buffer. A successful send to an unbuffered XCHAN means the receiving process has the message. In either case, a failed send means the message has been discarded. If sending on an XCHAN fails, a built-in feedback channel (the x-channel, which has conventional channel semantics) will signal to the sender when the channel is ready for input (i.e., the next send will succeed). This x-channel may be used in a select or ALT by the sender side (only input guards are needed), so that the sender may passively wait for this notification whilst servicing other events. When the x-channel signal is taken, the sender should send as soon as possible – but it is free to send something other than the message originally attempted (e.g. some freshly arrived data). The paper compares the use of XCHAN with the use of output guards in select/ALT statements. XCHAN usage should follow a design pattern, which is also described. Since the XCHAN never blocks, its use contributes towards deadlock-avoidance. The XCHAN offers one solution to the problem of overflow handling associated with a fast producer and slow consumer in message passing systems. The claim is that availability of XCHANs for channel based systems gives the designer and programmer another means to simplify and increase quality.
- More
- After the conference:
Read at: CPA2012/paper.pdf (locally) - http://wotug.org/paperdb/ (web)
Presentation at: CPA2012/presentation.pdf
- Fringe at CPA-2013 (the year after)
- An occam Model of XCHANs
Peter H. WELCH, School of Computing, University of Kent, UK
at http://wotug.org/cpa2013/programme.shtml#paper63
and at https://www.cs.kent.ac.uk/research/groups/plas/wiki/An_occam_Model_of_XCHANs- Prologue
- This paper had a prologue in a blog note I wrote in the spring of 2012, "034 - Output guard vs. "channel ready" channel." See, http://oyvteig.blogspot.no/2011/12/034-output-guard-vs-channel-ready.html
Fra harde µ-sekunder til forte årLes her: NTNU_2012/foredrag.pdf (5,1 MB. Kopi og utskrift: mail meg)
https://www.ntnu.no/studier/emner/TTK4145
17. april 2012
Fra harde µ-sekunder via mjuke sekunder til forte årLes her: NTNU_2010/foredrag.pdf (3.3 MB) og NTNU_2011/foredrag.pdf (3.1 MB)
https://www.ntnu.no/studier/emner/TTK4145
23. november 2010 og 5. april 2011
Fra
sekvensielt til parallelt (og multikjerne)
10. november 2010 (Gjesteforeleser fra
AFS)
Les her: HiST_2010/foredrag.pdf
(2.8 MB)
Høgskolen i Sør-Trøndelag, Trondheim (Avdeling for informatikk og e-læring, AITeL): http://www.hist.no/aitel/
Fra harde µ-sekunder via mjuke sekunder til forte år (Helt ny i 2009!)Les her: NTNU_2009/foredrag.pdf (2.8 MB)
https://www.ntnu.no/studier/emner/TTK4145
18. november 2009
Fra
sekvensielt til parallelt (og multikjerne)
13. november 2009 (Ommund Øgård
og jeg hadde en time hver, som gjesteforelesere fra AFS)
Les her: HiST_2009/foredrag.pdf
(2.8 MB)
Høgskolen i Sør-Trøndelag, Trondheim
(Avdeling for informatikk og e-læring, AITeL): http://www.hist.no/aitel/
- Subtitle
- "Two excerpts from a small channel based scheduler"
- Keys
- Application timers, alternative, synch-point scheduling
- Author
- Øyvind Teig and Per Johan Vannebo
Both at Autronica Fire and Security (AFS) (A UTC Fire and Security company) - http://www.autronicafire.no- In
- Presented at: Communicating Process Architectures 2009 (CPA-2009), at the Technische Universiteit Eindhoven, The Netherlands (1-4 Nov. 2009)
- Proceedings:
- Communicating Process Architectures 2009 (WoTUG-32)
Peter Welch, Herman W. Roebbers, Jan F. Broenink, Frederick R.M. Barnes, Carl G. Ritson, Adam T. Sampson, Gardiner S. Stiles and Brian Vinter (Eds.)
IOS Press, 2009 (135-144)
ISBN 978-1-60750-065-0
© 2009 The authors and IOS Press. All rights reserved- Abstract
- During the design of a small channel-based concurrency runtime system (ChanSched, written in ANSI C), we saw that application timers (which we call egg and repeat timers) could be part of its supported ALT construct, even if their states live through several ALTs. There are no side effects into the ALT semantics, which enable waiting for channels, channel timeout and, now, the new application timers. Application timers are no longer busy polled for timeout by the process. We show how the classical occam language may benefit from a spin-off of this same idea. Secondly, we wanted application programmers to be freed from their earlier practice of explicitly coding communication states at channel synchronisation points, which was needed by a layered in-house scheduler. This led us to develop an alternative to the non-ANSI C “computed goto” (found in gcc). Instead, we use a switch/case with goto line-number-tags in a synch-point-table for scheduling. We call this table, one for each process, a proctor table. The programmer does not need to manage this table, which is generated with a script, and hidden within an #include file.
- More
- Read at: CPA2009/paper.pdf (locally) - http://wotug.org/paperdb/ (web)
Presentation at: CPA2009/presentation.pdf (1 MB)
Fra harde µ-sekunder via mjuke sekunder til forte år (etc)Se NTNU_2008/presentation.html - main presentation (700 kB)
A presentation (in Norwegian) was also presented. It is called "Tilstandsmakinparken = f(Scheduler)"read at NTNU_2008/tilstandsmaskinparken_f_scheduler.pdf. Its English title would have been "State Machine-Park = function of (Scheduler)". The theme has also been transformed into a short note. Read at notes/18_A_scheduler_is_not_so_transparent.html. (Update 2009: this theme resulted in a completely new scheduler, see "New ALT for Application Timers and Synchronisation Point Scheduling" above.)
Fra harde µ-sekunder via mjuke sekunder til forte år
Se NTNU 2007
- Subtitle
- ...
- Keys
- Case study, embedded, channel, Office Mapping Factor, cohesion, coupling, black-box encapsulation
- Author
- Øyvind Teig - https://www.teigfam.net/oyvind/
Autronica Fire and Security (AFS) (A UTC Fire and Security company) - http://www.autronicafire.no- In
- Presented at: Communicating Process Architectures 2007 (CPA-2007), Surrey, Department of Computing at the University of Surrey, Guildford, Surrey, U.K. (8-11 July 2007)
- Proceedings:
- Communicating Process Architectures 2007
Alistair McEwan, Steve Schneider, Wilson Ifill and Peter Welch (Eds.)
IOS Press, 2007 (pages 313-322)
ISBN 978-1-58603-767-3
© 2007 The authors and IOS Press. All rights reserved- Abstract
- This case observation describes how an embedded industrial software architecture was “mapped” onto an office layout. It describes a particular type of program architecture that does this mapping rather well. The more a programmer knows what to do, and so may withdraw to his office and do it, the higher the cohesion or completeness. The less s/he has to know about what is going on in other offices, the lower the coupling or disturbance. The project, which made us aware of this, was an embedded system built on the well-known process data-flow architecture. All interprocess communication that carried data was on synchronous, blocking channels. In this programming paradigm, it is possible for a process to refuse to “listen” on a channel while it is busy doing other things. We think that this in a way corresponds to closing the door to an office. When another process needs to communicate with such a process, it will simply be blocked (and descheduled). No queuing is done. The process, or the programmer, need not worry about holding up others. The net result seems to be good isolation of work and easier implementation. The isolation also enables faster pinpointing of where an error may be and, hence, in fixing the error in one place only. Even before the product was shipped, it was possible to keep the system with close to zero known errors. The paradigm described here has become a valuable tool in our toolbox. However, when this paradigm is used, one must also pay attention should complexity start to grow beyond expectations, as it may be a sign of too high cohesion or too little coupling.
- More
- Read at: CPA2007/paper.pdf (locally) - http://wotug.org/paperdb/ (web)
Presentation: CPA2007/presentation.html
Felles forside, se NTNU_2006/index.html
- Fra harde µ-sekunder via mjuke sekunder til forte år
Se #NTNU_2004- From message queue to ready queue
See #Ercim05- A NetLOGO based Message Sequence Diagram trace tool developed for AFS
- Note 7
- Subtitle
- "The Rubber Band of Getting it Right and Simple"
- Keys
- Case study, embedded, channel, run-time system
Synchronous message based process communication built on top of an asynchronous run-time system- Author
- Øyvind Teig - https://www.teigfam.net/oyvind/
Autronica Fire and Security (AFS) (A UTC Fire and Security company) - http://www.autronicafire.no- In
- Presented at: Communicating Process Architectures 2006 (CPA-2006), Edinburgh, 17-20. Sept. 2006
- Proceedings:
- Communicating Process Architectures 2006,
Peter Welch, Jon Kerridge, and Fred Barnes (Eds.)
IOS Press, 2006, pages 331-338
ISBN 1-58603-671-8- Abstract
- This article is a follow-up after the paper "From message queue to ready queue", presented at the ERCIM Workshop last year. A (mostly) synchronous layer had been implemented on top of an existing asynchronous run-time system. After that workshop, we discovered that the initial implementation contained two errors: both concerning malignant process rescheduling associated with timers and 'reuse' of the input side of a channel. Also, the set of process/dataflow patterns was not sufficient. To keep complexity low, we have made two new patterns to reflect better the semantic needs inherent in the application. Our assumption of correctness is also, this time, based both on heuristics and 'white-board reasoning'. However, both the previous and this paper have been produced before any first shipment of the product, and well within full-scale testing. Our solutions and way of attacking the problems have been in an industrial tradition.
- More
- Read at: CPA2006/paper.pdf (locally) - http://wotug.org/paperdb/ (web)
Presentation at: CPA2006/presentation.html
- Subtitle
- Kommentar (Comment)
- Keys
- - Programvareutvikling, metodikk, dato holdes som lovt
- Software design methodology, set dates which are held as promised- Author
- Øyvind Teig - https://www.teigfam.net/oyvind/
Autronica Fire and Security (AFS/UTC) - http://www.autronicafire.no
The comment is behalf of myself. It does not reflect any official view within AFS.
However, it has been subject to prereading within AFS.- In
- Teknisk Ukeblad internett februar 2006 og nr. 15, mai 2006, side 71
- Abstract
- - Om utvikling av programvare med "interne" releaser basert på lovte (og holdte) releasedatoer (funksjonalitet kan skli) i stedet for definert funksjonalitet (med frustrerte kunder). Fra et forsøk.
- About software incremental "internal" releases based on promised and held release days (functionlity may be delayed) instead of set functionality (with frustrated customer). From a case study.- More
Felles forside, se NTNU_2005/index.html
- Fra harde µ-sekunder via mjuke sekunder til forte år
Sann tid i industrien
NTNU 2004
Se #NTNU_2004- From message queue to ready queue
Case study of a small, dependable synchronous blocking channels API
"Ship & forget rather than send & forget"
ERCIM Workshop on Dependable Software Intensive Embedded Systems
Porto, 2005
See #Ercim05
- Subtitle
- Case study of a small, dependable synchronous blocking channels API
"Ship & forget rather than send & forget"- Keys
- Synchronous message based process communication built on top of an asynchronous run-time system
- Author
- Øyvind Teig - https://www.teigfam.net/oyvind/
Autronica Fire and Security (AFS) (A UTC Fire and Security company) - http://www.autronicafire.no- In
- First ERCIM Workshop on Software-Intensive Dependable Embedded systems,
in cooperation with
31st EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA)
Porto, Portugal, 30. August - 3. Sept. 2005
See http://www.itk.ntnu.no/misc/ercim/
- Proceedings:
- First ERCIM Workshop on Software-Intensive Dependable Embedded systems
Editors: Amund Skavhaug, Erwin Schoitsch
ISBN 2-912335-15-9, IEEE Computer press
http://www.ercim.org/publication/workshop_reports.html- Abstract
- This case study shows CSP style synchronous interprocess communication on top of a run-time system supporting SDL asynchronous messaging, in an embedded system. Unidirectional, blocking channels are supplied. Benefits are no runtime system message buffer overflow and "access control" from inside of a process of client processes in need of service. A pattern to avoid deadlocks is provided with an added asynchronous data-less channel. Even if still present here, the message buffer is obsoleted, and a ready queue only could be asked for. An architecture built this way may be formally verified with the CSP process algebra.
A follow-up is "No Blocking on Yesterday’s Embedded CSP Implementation" (above)- More
- Paper: ercim05_at_euromicro-2005/paper.pdf
- Presentation: ercim05_at_euromicro-2005/workshop.pdf
- Subtitle
- -
- Keys
- Asynkron og synkron meldingsbasert prosesskommunikasjon.
- Asynchronous and synchronous message based process communication.- Author
- Øyvind Teig - https://www.teigfam.net/oyvind/
Autronica Fire and Security (AFS) - http://www.autronicafire.no
The chronicle is behalf of myself. It does not reflect any official view within AFS.
It has not been subject to any approval procedure by AFS.- In
- Teknisk Ukeblad, nr. 5, februar 2005, side 26
3/4 side kronikk (3/4 page chronicle)- Abstract
- Det er ikke noe annerledes mellom dataprogrammer enn mellom oss mennesker. Har du noe å si er det sikrere å basere seg på avtalt oppmøte, enn brev uten kvittering - overlatt til et stresset postverk. Dette er det mange programmerere som vet. Flyene, bilene og mobiltelefonene fungerer. Men, kanskje ikke alltid..
- There is not much difference between computer programs and humans. If you have something to say it's is better to rely on a rendezvous, than a letter with no acknowledge - left to a stressed postal administration. Many programmers don't know this. The airplanes, cars and mobile phones work. But perhaps, not always..- More
- TekniskUkeblad_05_2005/tu_05_05_s26.pdf - The page
- Subtitle
- Sann tid i industrien (Real time in the industry)
- Keys
- Programming of real-time embedded systems, mainly with synchronous blocking channels. CSP, occam, synchronous and asynchronous communication, some UML 2.0.
- Author
- Øyvind Teig - https://www.teigfam.net/oyvind/
Autronica Fire and Security (AFS) - http://www.autronicafire.no
The lecture is behalf of myself. It does not reflect any official view within AFS.
It has not been subject to any approval procedure by AFS.- In
- NTNU, fag TTK 4145, Real-Time Programming (mer..)
Gjesteforelesning, 12. oktober 2004
http://www.itk.ntnu.no - Institutt for teknisk kybernetikk
Fakultet for informasjonsteknologi, matematikk og elektronikk- Abstract
- I am singing the synchronous channel and all its bliss (and sorrows) mantra
- More
- The presentation in PowerPoint
- Subtitle
- PLUSSING new code by ROLLING out and compile?
- Keys
- Object orientation, Safe languages, Concurrency
- Author
- Øyvind Teig (Kongsberg Maritime Ship Systems, Ship Control)
- In
- Communicating Process Architectures 2001, Alan Chalmers, Majid Mirmehdi and Henk Muller (Eds.), IOS Press, NL, 2001, Pages 283-303, ISBN 1 58603 202 X (IOS Press), 4 274 90467 9 C3000 (Ohmsha), Library of Congress Control Number: 2001094313
In: Concurrent Systems Engineering Series (ISSN 1383-7575), Eds.: M.R. Jane, J. Hulskamp, P.H. Welch, D. Stiles, T.L.Kunii, Volume 59- Presented at
- CPA 2001 conference.
Communicating Process Architectures 2001
Department of Computer Science
University of Bristol, Bristol, UK
UK, 16-19. Sept. 2001
In the series: "WoTUG-24"- Abstract
- This article expands a concurrent language to support implementation inheritance by making block structures of the super process-class pluggable, and to interface inheritance by making the language's protocol inheritable. The parallel "object-based" concurrent language occam 2 has been used as a catalyst for the concept, causing the language in fact to become (almost?) "object-oriented" (OO). The result is white-box reuse between a "process-class" and its sub process-class, and black-box reuse seen from the client side. Since occam is aliasing free and considered a "safe" concurrent language, the expansion we discuss here keeps those properties - somewhat unusual for an OO system. This new language should be well suited in safety critical systems, since it has inherited the static (compile-time) and analysable properties from occam proper. Basically, two new keywords are defined: PLUSSING and ROLLING. The language feature suggestion is on sketch level only and therefore not complete, no BNF description exists and no compiler has been written.
- More
- The paper, as in proceedings (pdf)
- The paper (html, with erratum and joke!)
The presentation
Also available at http://wotug.org/paperdb/
- Subtitle
- MOBILE structures and ALTing over memory?
- Keys
- "Safe" handling of the inherent nondeterministic dynamic memory handling
- Author
- Øyvind Teig (Kongsberg Maritime Ship Systems, Ship Control)
- In
- Communicating Process Architectures 2001, Alan Chalmers, Majid Mirmehdi and Henk Muller (Eds.), IOS Press, NL, 2001, Pages 305-308, ISBN 1 58603 202 X (IOS Press), 4 274 90467 9 C3000 (Ohmsha), Library of Congress Control Number: 2001094313
In: Concurrent Systems Engineering Series (ISSN 1383-7575), Eds.: M.R. Jane, J. Hulskamp, P.H. Welch, D. Stiles, T.L.Kunii, Volume 59- Presented at
- CPA 2001 conference.
Communicating Process Architectures 2001
Department of Computer Science
University of Bristol, Bristol, UK
UK, 16-19. Sept. 2001
In the series: "WoTUG-24"- Abstract
- The paper suggests a way to handle the nondeterministic "malloc" within a language construct which already exists and handles nondeterminism (occam ALT or "selection") - making it possible to program safely and analyze system behavior when memory is scarce.
Memory objects are assigned to processes over aCHAN
nel like construct. This way one can wait for an object indefinitely, or with timeout in anALT
construct - coexisting withCHAN
nel inputs. The run-timeSYSTEM
will handle requests. Alternatively, a user memory handler process may use the underlyingSYSTEM
and serve other clients. Occam 2 is used as catalyst language.- More
- The paper, as in proceedings (pdf)
- The paper (html)
The presentation
Also available at http://wotug.org/paperdb/
- Subtitle
- -
- Keys
- aliasing, concurrency, encapsulation errors
- Author
- Øyvind Teig (Kongsberg Maritime Ship Systems, Ship Control (was: Autronica/Navia)
- In
- Dr.Dobb's Journal, January 2001, p.12
- Abstract
- Letter commenting on: Mark Mitchell's "Type-Based Alias Analysis" (DrDobb's Oct.2000)
- More
- The letter is available at DrDobbsJournal_Jan2001/Letter.html
The Dr.Dobb's Journal CD-rom will contain this letter.
The Mission impossible? Encapsulate that aliased alien! (below) handles this theme more thoroughly.
The Instansieringen av Java (Norw. below) part that wasn't published also handles this theme.
- Subtitle
- Between need and bleed: Aliasing in computer languages
- Keys
- aliasing, concurrency, encapsulation errors
- Author
- Øyvind Teig (Autronica)
- In
- Institutt for telematikk, NTNU, Trondheim, Norway
Lunch seminar, 10.Nov.2000, 12:15-13:00, see http://www.item.ntnu.no/kollokvium/- Abstract
- Aliasing is when several different identifiers in a computer program refer to the same object. This may give rise to bugs as variables change their values seemingly on their own, if there is a reader/writer role conflict in the computer program. Examples in Fortran, C, occam and Java are shown, and an interesting trait about object-oriented (oo) programming languages is also shown.
- More
- Aliasing_NTNU_10Nov2000/Index.html - The presentation
Beware: your trust in (some) computer programs may be diminished..
Also mentioned in Dr.Dobb's Jan 2001.
The Instansieringen av Java (Norw. below) part that wasn't published also handles this theme.
- Subtitle
- A penny's worth of advice and a Java generic Protocol class.
- Keys
- Computer protocol design.
- Author
- Øyvind Teig (Autronica)
- In
- Dedicated Systems Magazine
2000 - Q3 (pages 60-65)
www.dedicated-systems.com- Abstract
- Programmers who define protocols try to do it right. The article lists some design suggestions born out of several close encounter protocol design experiences. A warning of mixing of protocol layers is issued. An "XML light" scheme is briefly described. A generic Java protocol class to be used on top of a Java CSP library (JCSP) is also shown.
- More
- The article - local
http://www.dedicated-systems.com/magazine/00q3/index003.htm
http://www.dedicated-systems.com/magazine/00q3/2000q3_p060.pdf
- Subtitle
- Industrial practitioner's diary: In search of a new fairway
- Keys
- Concurrent programming.
- Author
- Øyvind Teig (Autronica)
- In
- Communicating Process Architectures
P.H. Welch and A.W.P. Bakkers (Eds.)
IOS Press, NL, 2000
Pages 251-262
ISBN 1 58603 077 9 (IOS Press), 4 274 90401 6 C3000 (Ohmsha), Library of Congress Catalog Card Number: 00-107566, ISSN: 1383-7575- Presented at
- CPA 2000 conference. (In the series: "WoTUG-23")
Communicating Process Architectures, University of Kent at Canterbury, UK, 10-13. Sept. 2000 http://www.wotug.org/cpa2000/- Abstract
- This paper is a non-academic hands-on log of practical experiences of software engineering problems, where the process leading to the decision to use CSP to program real-time systems is on trial. A new and hopefully objective decision process is instigated. What we have previously learnt by using CSP in embedded real-time process control is used as subjective basis (or bias?) for the new process. The conclusion seems to be that CSP should be sufficiently future-proof to justify its use even in new projects. The term "CSP" is here used as shorthand for both the CSP language proper and different implementations of subsets.
- More
- The paper, as in proceedings (pdf)
- The paper is available here (html)
The presentation is available here
Also available at http://wotug.org/paperdb/
- Subtitle
- Taking the pain out of multitasking
- Keys
- Embedded programming. Multitasking in general.
- Author
- Øyvind Teig (Autronica)
- In
- Cover story in Embedded Systems (http://www.allembedded.com/) June 2000
- Abstract
- Designing software for multitasking and multiprocessing systems is one of the most difficult things to get right, as many failures in the field testify. The author claims that the theory of communicating sequential processes (CSP) can streamline development and produce fewer errors. It has formed part of dedicated languages such as Ada and occam but can also be easily applied to more popular languages such as C and Java.
- More
- The article is available here - With errata and a better figure 1.
Scan of page 57 in magazine - Rather low quality- Known reference in
- "Introducing Time Driven Programming using CSP/occam and WCET Estimates" by Martin Korsgaard
Master of Science in Engineering Cybernetics thesis
Norwegian University of Science and Technology (NTNU), August 2007
(He introduces a new language calledTIME/occam
)
(My paper is [14] in his paper, referenced at page 30)
(WCET = Worst-Case Execution Time)
- Subtitle
- Real-time Java is coming, but Java lacks a lot and it is not scalable...
- Keys
- Programming of real-time embedded systems in Java. Is it possible?
- Author
- Øyvind Teig (Autronica)
- In
- Institutt for telematikk, NTNU, Trondheim, Norway
Lunch seminar, 1.Oct.1999, 12:15-13:00, see http://www.item.ntnu.no/kollokvium/old/koll-host-99-no.html- Abstract
- Java's Insecure Parallelism, Per Brinch Hansen, ACM SIGPLAN Notices 34, 4 (April 1999), pp38-45 is discussed.
- Brinch Hansen's abstract: The author examines the synchronization features of Java and finds that they are insecure variants of his earliest ideas in parallel programming published in 1972-73. The claim that Java supports monitors is shown to be false. The author concludes that Java ignores the last twenty-five years of research in parallel programming languages.
- J Consortium and Sun's Real-Time project are discussed.
- Two CSP libraries written in Java are discussed - with them you'd have a scalable system and you can forget about synchronized, wait and notify.
- More
- Lecture - (zip) Mostly in Norwegian. Still, the reference list might be of interest for all.
- Subtitle
- "Med utgangspunkt i kritikk fra dansken Per Brinch Hansen setter kronikkforfatteren spørsmålstegn ved sikkerheten." - Referring to criticism by Per Brinch Hansen the feature article author questions the safety.
- Keys
- Programming of real-time embedded systems in Java.
- Author
- Øyvind Teig (Autronica)
- In
- Teknisk Ukeblad, 146 Årgang, nr. 32, 2. september 1999
- Abstract
- Java's Insecure Parallelism, Per Brinch Hansen, ACM SIGPLAN Notices 34, 4 (April 1999), pp38-45 is discussed.
- Brinch Hansen's abstract: The author examines the synchronization features of Java and finds that they are insecure variants of his earliest ideas in parallel programming published in 1972-73. The claim that Java supports monitors is shown to be false. The author concludes that Java ignores the last twenty-five years of research in parallel programming languages.
- Teig concludes by pointing to Magee & Kramer, Concurrency: State Models and Java Programs,
- http://www-dse.doc.ic.ac.uk/concurrency/ (as a way to make concurrent programming safer) and www.nist.gov/itl/div896/emaildir/rt-j/msg00385.html by Peter Welch (as a means to avoid using Java's synchronized by building CSP on top of its usage).
- More
- TrygtMedJava_TU_32_1999.jpg - Article scanned from magazine
- TrygtMedJava_TU_32_1999.html - Article text only
- Subtitle
- --
- Keys
- Programming of real-time embedded systems. Automatic generation and verification of source code.
- Author
- Øyvind Teig (Autronica)
- In
- WoTUG-22. Architectures, Languages and Techniques for concurrent systems, p.19-36.
Edited by B.M.Cook.
ISBN 90 5199 480 X, 4 274 90285 4 C3000, ISSN 1383-7575
IOS Press, NL- Presented at
- WoTUG-22 conference:
11-14 April 1999
Department of Computer Science
Keele University, UK
http://www.keele.ac.uk/depts/cs/events/wotug22/
Other WoTUG conferences: http://www.wotug.org/parallel/groups/wotug/index.html- Abstract
- 26500 lines of Standard C (ANSI C) generated from occam sources by the Southampton Portable occam Compiler (SPoC) has been analysed by the static analysis tool PC-lint. The target machine is a TMS320C32 DSP where all (the supported) C's primitive data types are mapped to 32 bit read and writes. This architecture stretches "ANSI" C quite a bit, but the "portable" occam compiler promised to handle it. Even if we had experienced no problems with the generated code and it compiled with all error handling enabled, we had to insert some 15-20 different global PC-lint filters plus local filters via in-line C in the occam sources. This was in addition to the base-level filters we also used for hand-written C. It kept PC-lint quiet, for individual C files as well as "global wrap up". By discussing each individual filter we arrive at the conclusion that none hid errors in the generated C. The analysis revealed a few points where the occam language definition could have been made stricter. We would like to PC-lint the generated sources with fewer messages disabled - changes to SPoC are therefore suggested. Altogether SPoC seems to have passed this test quite well. Even if we have no expertise to modify the (open) SPoC sources, this report could be considered as contributing to a prospective "Bazaar" development model - to bring forward an even more robust compiler for a portable and perhaps prospering occam language.
- More
- The paper - (with later corrections)
The presentation
Also available at http://wotug.org/paperdb/
- Subtitle
- --
- Relevance to product
- --
- Author
- Øyvind Teig (Autronica)
- In
- Copies handed to conference attendants.
- Presented at
- SISU Forum 1998
IT-Industriens Utviklingsforum
Metoder for utvikling av sanntidssystemer
Klækken hotell 17.-18.nov.1998- Abstract (in English)
- This paper argues fiercely that real-time systems designed with a paradigm that has some formal background, and implemented with a mapping as close to 1-1 as possible, yields higher quality systems.
CSP is one such formal theory. The parallel language occam is an "instance" of a subset of CSP.- More
- IT-industriens teknologiforum: http://www.ittf.no/
- SISU Forum 1998 - Not modified since conference invitation
- Copy at Autronica
- The presentation
- Subtitle
- Machine-generated ANSI-C implements runnable occam in Autronica GL radar-based fluid level gauge. Case study and reflections.
- Keys
- Programming of real-time embedded systems.
- Author
- Øyvind Teig (Autronica)
- In
- Real-Time Magazine 98-3, p.83-90
(A Belgian magazine)
The magazine has from Q1 2000 been renamed to "Dedicated Systems Magazine".- Presented at
- --
- Abstract
- An embedded real-time system programmed in occam and automatically translated to ANSI C is running on top of a non-preemptive (or cooperative) run-time scheduler. This is done without programmer intervention, since the occam compiler automatically inserts descheduling points. The system has proved to function quite successfully.
- More
- The article - Local
- http://www.dedicated-systems.com/magazine/98q3/index983.htm
- http://www.dedicated-systems.com/magazine/98q3/1998q3_p083.pdf
- Subtitle
- SPoC occam to ANSI-C translator marries hand-written C in Autronica GL radar-based level gauge. Case study and reflections.
- Keys
- Programming of real-time embedded systems with mixed occam and ANSI C.
- Author
- Øyvind Teig (one chapter by John Henrik Wollan) (both Autronica)
- In
- WoTUG-21. Arhitectures, Languages and Patterns for Parallel and Distributed Applications, p.1-18.
Edited by P.H.Welch
ISBN 90 5199 391 9 (IOS Press), ISBN 4 274 90216 1 C3000 (Ohmsha), ISSN 1383-7575
IOS Press, NL- Presented at
- WoTUG-21 conference:
5-8 April 1998, Computing Laboratory, University of Kent at Canterbury, UK
http://www.wotug.org/parallel/groups/wotug/wotug21/
Other WoTUG conferences: http://www.wotug.org/parallel/groups/wotug/index.html- Abstract
- The article describes how SPoC (Southampton Portable occam Compiler) has been used - together with hand-written C - in Autronica's new GL radar-based fluid level gauge. The final C-code is running on a Texas TMS320C32 DSP. Some 26000 lines of C-code have been automatically generated from the occam sources. SPoC's non-preemptive scheduling filled our needs with a few exceptions. The main problem has been aligning occam 2 and ANSI-C data abstractions. A realtime system based on language support of high-level concurrency abstractions (as opposed to separate real-time kernel and use of library calls without direct language support) is soon to monitor worldwide charging and discharging of oil-tankers.
- More
- The paper: PAR_and_STARTP_Take_the_Tanks.htm
Also available at http://wotug.org/paperdb/
- Subtitle
- --
- Keys
- Programming of threads in Java and ANSI C.
- Author
- Øyvind Teig (Autronica)
- In
- Dr.Dobb's Journal, January 1998, p.10
- Abstract
- Letter about Allan Vermeulen's article "Java Deadlock" in Dr.Dobb's Journal, Sept. 1997. Deadlock does not have to involve two parties only, any number of resources waiting for each other in a ring will cause deadlocks to happen.
- More
- DrDobbs_Jan98.gif - Scanned from magazine
Submitted letter.
The Dr.Dobb's Journal CD-rom contains this letter.
- Subtitle
- Safe algorithm that's easy to implement.
- Keys
- Programming
- Author
- Øyvind Teig
- In
- EDN, June 6, 1996, p.179-184..
- Presented at
- ...
- Abstract
- Numerous schemes for passing data between processors and dual-port memory are possible. However, a Ping-Pong scheme uses just three semaphores, uses no state information in the dual-port memory, and does not depend on time. Article contains a simulator written in occam.
- More
- Submitted article - it was printed unabridged.
2020: I cannot find any reference to this at the EDN page any more.
Scanned from the magazine
- Subtitle
- --
- Keys
- The Java programming language
- Author
- Øyvind Teig (Autronica)
- In
- PC Magazine Norge, 9 1996
- Presented at
- ...
- Abstract
- Comment to article by John C. Dvorak (PC Magazine Norge, June 1996). Contrary to Dvorak's opinion, Java is considered a language with interesting prospects, especially the multithreading support - even if the language has no deep understanding of how threads must behave to cooperate correctly.
- More
- PC-MAGAZINE_9_96.pdf - Scanned from magazine
Submitted letter - (In Norwegian - more in depth)
Follow-up letter - Not printed (In Norwegian) - About "aliasing" in Java, also see C++ Aliasing and Mission impossible? Encapsulate that aliased alien!
- Subtitle
- Case Study of a Development Process. Extended Summary
- Keys
- Programming of real-time embedded systems. Network programming. Systems programming.
- Author
- Øyvind Teig (Autronica) and Thor Vollset (Tordivel AS)
- In
- NTUG'93. Third Nordic Transputer Conference, 14-15 May 1993, Gentofte, Copenhagen, Denmark, Extended Summaries. Edited by Jan Bardino, p.83-86. (Bound proceedings, no ISBN number.)
- Presented at
- Nordic Transputer User Group
3rd Conference Copenhagen 14.15-May 1993- Abstract
- The new NK-100 contains transputers programmed in occam in the units that are installed close to each diesel engine. Communication is done with the host PC over an Echelon LON network. The host server program is a Microsoft Windows (3.11 at the time) user interface programmed in Borland Turbo Pascal. Data is exported over MITS network running the TCP/IP protocol. The product pioneered several new technologies.
- More
- Article - Product foils (-2- and -3-) - occam foils
- About NK-5, the NK-100 forerunner
- The article "Mikroprosessorbasert sylindertrykkindikator" ("Microprocessor-based cylinder pressure indicator") is from the Norwegian magazine ETT or "Elektroteknisk Tidsskrift" Bd 98, nr 5, 4 March 1985. Read more here: Autronica_NK5_MIP_kalkulator_Elektro_Elektroteknisk_Tidsskrift_Bd_98_nr5_4_mars_1985.pdf.
Also observe the ELAB report STF44 F86002 "MIP Calculator NK-5 Compute Software" by Per Ovesen, January 1986
- Subtitle
- Occam's cube
- Author
- Øyvind Teig (Autronica)
- In
- Computer Language (9.1991)
- Read at
- Computer Language 9.1991 p11
- This entry moved to
- Notes from the vault – 0x05 – RTX-51, an embedded scheduler on 12Apr2022
- Subtitle
- RTX-51
- Keys
- Programming of real-time embedded systems.
- Author
- Øyvind Teig (Autronica)
- Abstract
- The paper describes a real-time executive (rx or scheduler) designed for the 8051- or 8052- type microcomputers. Up to 8 concurrent processes (or tasks) may be defined.
A synchronizing primitive consisting of a protected mailbox is defined.- More
- Read here: rtx-51/rtx-51.html and here (25 MB searchable PDF)
- About this paper
- This paper was written internally at Autronica in 1988 with the purpose to be shown around. It was published here in 2011. The run-time system described was used in two embedded components of a major fire detection system system, which was a huge success for Autronica, the BS-100. It has now been discontinued, but the software described will (in concert with the other sw and hw) continue to "protect life, environment and property" for many more years. Publishing the paper now should hopefully delay oblivion. (An interesting feature is that the "task" could not be descheduled before it was down to the bottom of the stack. This is like the "generator" of Python, which is also not stackful.)
The oldest part of this file has been extracted from the file http:// www.autronica.no/pub/tech/rd/PublicationList.htm which was obsoleted in the process to remove ownership of the http::// www.autronica.no domain by Kongsberg, in February 2004. At that time these publications also seem to have been removed. The file and referenced publications were copied from a backup dated 12Dec2002, by Øyvind Teig, on 11Mar2004. These publications are already in print, so any copyright issues against me should be void.
© Øyvind Teig |