Timing out design by contract with a stopwatch

Excerpt: Can time be part of a contract? Is it a contract when time is included? «Shall we meet at half past eight at the Pub for a beer?» Let’s steer past that one. Timing requirements are important, they are extensively used in hard real-time systems. In some protocols a client does not need to send any «end of request» signal as the server times out after a period of inactivity to close the connection (like HTTP persistent connections). This blog note tries to discuss when timeouts are fine to use, and when they do turn the components’ interactions into a quiz.

My XMOS notes

Started 18Feb2015, updated 27Oct2021 (MIPI) – Plus a short update 31May2023 («NumPages» for .xe file for 14.4.1) This page is in group Technology (plus My XMOS pages) and is a blog note about my experience with the XMOS toolset xTIMEcomposer and XMOS HW and how I am going to use used the startKIT to control a small 40 litre […]

What, a square hole in the hull! None round?

9Jan2015, updated 5Oct2015 This page is in group Technology and discusses the problem area of how to reply to the rightful question: given one dangerous and undetected fault found in the software, are there any similar problems lurking? It’s dangerous for the users of a safety critical systems if it’s not being reported that the system is not able […]

How much concurrency?

Started 29Oct2014, updated 1Sept2015 (then a small chapter on XMOS 12Nov2021) This page is in group Technology and is about a facet of multi-threaded concurrent programming where it’s an important matter that more or less independent sw-processes shall not make running difficult for the others. Intro During my previous blog notes, especially «Not so blocking after all» I […]

Not so blocking after all

Started 8Sept2014, updated 9Sep2020 (User forums). This page is in group Technology and is about a facet of multi-threaded (or perhaps single-threaded) programming After having heard so often that «blocking is evil» and that it’s kind of the opposite – a necessary side of life –  I have finally unblocked on the semantics. It’s both. And neither. If so, I’d have […]

Eventual concurrency

Started 12Sep2013, finished 19Sep2013. Updated 28Jan2014 This page is in group Technology. Intro In this blog page I will try to understand how so-called «single threaded» software architectures based on «event-loop concurrency» and callbacks (where mostly all blocking is «evil»), differs from light-weight processes that communicate using channels  (where any needed non-blocking is built explicitly (or by […]

Nondeterminism

Published 31Dec2012, updated 30Nov2021 This page is in groups Technology, My Go (golang) notes and My XMOS pages. This blog note has been moved from http://oyvteig.blogspot.no/2012/04/045-nondeterministic-note-about.html. I have written a little about nondeterminism before [1], [2]. [1] is about Ada and the Ravenscar Profile for safety-critical systems. The newer note IEC 61508 and (safe?) concurrency also covers the matter somewhat. Observe that (non)determinsm […]

My Zephyr RTOS notes

Started 9Jul2019 as chapters being moved from other notes. Updated 25Sep2023 («A9 SoC on Xilinx») This page is in group Technology and is a blog note where I will try to keep a scratchpad of what I might find out about the Zephyr RTOS. Sharing Zephyr with others Because I was rather confused I have had help […]

Technology

Also see Google Scholar «Øyvind Teig» here About These blogs are «mine», but I try to spice them with other people’s opinion as expressed to me, most often if people do reply to a mail. If so, I always ask for permission. The more I blog the more I realise that I am not a computer scientist, and […]