Category Archives: lecture
Time and Clocks
We want to be able to interface with time. To do this we need to gain access to time (using clocks), and then be able to co-ordinate execution with the environment, specifying rates of execution and specifying deadlines. We also … Continue reading
Garbage Collection 2
Cost of Garbage Collection I think basically if you have a very small reachable heap copying is good (Cheney’s Algorithm). But otherwise Mark-and-Sweep is pretty good. Mark Phase with Pointer Reversal Note: You’d do this because doing a DFS down … Continue reading
Low-Level Programming in Ada
In Ada you have device drivers, which manipulate device registers and respond to interrupts. Ada assumes that the device registers are shared memory, and an interrupt is essentially a hardware protected procedure call (devices are kinda like hardware tasks). Ada … Continue reading
Power Attacks
Note: Clearly the lectures were performed out of order, as he talked about the previous lecture discussing ‘timing properties’ which is not the order on the website. I was absent from the ‘timing properties’ lecture, so don’t have any notes … Continue reading
Non-standard search approaches to design
Local optimisation – Hill Climbing We did a very small amount of this in ADS; it was a guest lecture where the guy talked about genetic algorithms. The problem with searching using hill climbing is that sometimes you can get … Continue reading
Attacking the Implementation (and timing attacks)
So far, we have always assumed that a cryptographic system is a purely “mathematical” black box and input/output is all that can be viewed/analysed. However that isn’t how it works in the real world; they’re executed on physical devices. These … Continue reading
Resource Control and Requeue in Ada
Resources can be encapsulated and accessed only through a high-level interface (a package in Ada). In Ada – If the resource manager is a server then the package body will contain a task (or an access object to a task … Continue reading
Memory Organisation and Procedure Call Protocol
Generally RAM is split up into (in order): Code Static Data Stack Free Space Heap And code memory is usually split up into code for procedures, with entry points at the bottom (lowest address) for each procedure. Storage can be … Continue reading
Data Representation
First, a summary of Run Time Organisation Run time organisation deals with the general issues of mapping high-level programming language constructs onto low-level features of the target machine. We are going to look at: Data representation. Memory organisation. Procedure call … Continue reading
Asynchronous Notification in the RTSJ
Asynchronous Event Handling RTSJ uses event handling to communicate asynchronously. Asynchronous events (AE) are data-less ‘happenings’ are fired by the program or associate with interrupts in the environment. One or more handlers (AEH) can be associated with a single event, … Continue reading