TopPublication details

BlogsIEEE-COPA 2021 fringe presentation

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


BlogsIEEE life members newsletter

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


BlogsInvited lecture NTNU 2019

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


BlogsCPA 2018 fringe presentation

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


BlogsInvited lecture NTNU 2018

Thinking about it: Channels more than connect threads. They protect them

Download 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


BlogsCPA 2016 fringe presentation

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


BlogsInvited lecture NTNU 2016

From hard microseconds to speedy years. Real time in the industry

Read here: NTNU_2016/foredrag.pdf (9 MB)

https://www.ntnu.no/studier/emner/TTK4145

26. April 2016


BlogsTwo CPA 2015 fringe presentations

https://www.teigfam.net/oyvind/home/technology/108-two-cpa-2015-fringe-presentations/

23 and 24Aug2015


BlogsGjesteforelesning NTNU 2015 - (Mostly in Norwegian)

Fra harde µ-sekunder til forte år

Les her: NTNU_2015/foredrag.pdf (11 MB)

https://www.ntnu.no/studier/emner/TTK4145

20. april 2015


BlogsGjesteforelesning NTNU 2014 - (In Norwegian)

Fra harde µ-sekunder til forte år

Les her: NTNU_2014/foredrag.pdf (14 MB)

https://www.ntnu.no/studier/emner/TTK4145

28. mars 2014


Blogsembedded.TRD 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


BlogsSelective choice ‘feathering’ with XCHANs

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/

BlogsGjesteforelesning NTNU 2013 - (In Norwegian)

Fra harde µ-sekunder til forte år

Les her: NTNU_2013/foredrag.pdf (8 MB)

https://www.ntnu.no/studier/emner/TTK4145

15. april 2013


BlogsXCHANs: Notes on a New Channel Type

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

BlogsGjesteforelesning NTNU 2012 - (In Norwegian)

Fra harde µ-sekunder til forte år

Les her: NTNU_2012/foredrag.pdf (5,1 MB. Kopi og utskrift: mail meg)

https://www.ntnu.no/studier/emner/TTK4145

17. april 2012


BlogsGjesteforelesning NTNU 2010-11 - (In Norwegian)

Fra harde µ-sekunder via mjuke sekunder til forte år

Les 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


BlogsGjesteforelesning HiST 2010 - (In Norwegian)

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/


BlogsGjesteforelesning NTNU 2009 - (In Norwegian)

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


BlogsGjesteforelesning HiST 2009 - (In Norwegian)

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/


BlogsNew ALT for Application Timers and Synchronisation Point Scheduling

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)

BlogsGjesteforelesning NTNU 2008 - (In Norwegian)

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.)


BlogsGjesteforelesning NTNU 2007 - (In Norwegian)

Fra harde µ-sekunder via mjuke sekunder til forte år
Se NTNU 2007

BlogsHigh Cohesion and Low Coupling: the Office Mapping Factor

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

BlogsGjesteforelesning NTNU: gjennomgang av 1½ foredrag og et verktøy - (In Norwegian)

Felles forside, se NTNU_2006/index.html

  1. Fra harde µ-sekunder via mjuke sekunder til forte år
    Se #NTNU_2004
  2. From message queue to ready queue
    See #Ercim05
  3. A NetLOGO based Message Sequence Diagram trace tool developed for AFS
  4. Note 7

BlogsNo Blocking on Yesterday’s Embedded CSP Implementation

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

Top


BlogsSå mye hadde vi. Så mye rakk vi. Men får de? (In Norwegian)

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

Top


BlogsGjesteforelesning NTNU: gjennomgang av 1½ foredrag - (In Norwegian)

Felles forside, se NTNU_2005/index.html

  1. Fra harde µ-sekunder via mjuke sekunder til forte år
    Sann tid i industrien

    NTNU 2004
    Se #NTNU_2004
  2. 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

BlogsFrom message queue to ready queue

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

Top


BlogsUsikre meldinger i dataverdenen (In Norwegian)
Unsafe messages in the data world

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

Top


BlogsFra harde µ-sekunder via mjuke sekunder til forte år  - (In Norwegian)

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

Top


BlogsFrom safe concurrent processes to process-classes?

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/

Top


BlogsCHANnels to deliver memory?

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 a CHANnel like construct. This way one can wait for an object indefinitely, or with timeout in an ALT construct - coexisting with CHANnel inputs. The run-time SYSTEM will handle requests. Alternatively, a user memory handler process may use the underlying SYSTEM 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/

Top


BlogsC++ Aliasing

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.

Top


BlogsMission impossible? Encapsulate that aliased alien!

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.

Top


BlogsProtocol design: you get what you put

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

Top


BlogsCSP: arriving at the CHANnel island

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/

Top


BlogsSafer multitasking with communicating sequential processes (CSP)

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 called TIME/occam)
(My paper is [14] in his paper, referenced at page 30)
(WCET = Worst-Case Execution Time)

Top


BlogsJava - sanntid? - (In Norwegian) 
Java - Real-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.

Top


BlogsTrygt med Java? - (In Norwegian)
Safe with Java?

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

Top


BlogsAnother side of SPoC: occam's ALTer ego dissected with PC-lint

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/

Top


BlogsOccam - et blindspor? - (In Norwegian - with summary in English)
Occam - a dead end?

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

Top


BlogsNon-preemptive occam in DSP real-time system

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

Top


BlogsPAR and STARTP Take the Tanks

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/

Top


BlogsJava Deadlock

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.

Top


BlogsPing-Pong scheme uses semaphores to pass dual-port-memory privileges

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

Top


BlogsInstansieringen av Java - (In Norwegian)
The instanciating of Java

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!

Top


BlogsTransputers and MS-Windows

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

Top


BlogsComputer Language user comment

Subtitle
Occam's cube
Author
Øyvind Teig (Autronica)
In
Computer Language (9.1991)
Read at
Computer Language 9.1991 p11

Top


BlogsReal-time executive for 8051-type single-chip microcomputers

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.)

Top


BlogsHistory

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