operating systems and concurrency b02 - web hosting ...hesabu.net/en0572/assets/ra/b02.pdf ·...

14
Operating systems and concurrency B02 David Kendall Northumbria University David Kendall (Northumbria University) Operating systems and concurrency B02 1 / 14

Upload: phamdieu

Post on 01-Dec-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Operating systems and concurrency B02

David Kendall

Northumbria University

David Kendall (Northumbria University) Operating systems and concurrency B02 1 / 14

Page 2: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Architecture of the ARM Cortex M4

An OS acts as a hardware abstraction layer.Let’s look at the structure of some real hardware from which we canabstract.

Martin, T. The Designer’s Guide to the Cortex-M

Processor Family: A Tutorial Approach, Newnes, 2013

David Kendall (Northumbria University) Operating systems and concurrency B02 2 / 14

Page 3: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

LPC4088 Block Diagram

NXP, UM10562 LPC408x/407x User manual, NXP Semiconductors, 2014 (p.13)

David Kendall (Northumbria University) Operating systems and concurrency B02 3 / 14

Page 4: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

LPC4088 Memory Map

NXP, UM10562 LPC408x/407x User manual, NXP Semiconductors, 2014 (p.16)

David Kendall (Northumbria University) Operating systems and concurrency B02 4 / 14

Page 5: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Device handling - Polling

Typical I/O operation1 CPU repeatedly tests status register to see if device is busy2 When not busy, CPU writes a command into the command register3 CPU sets the command-ready bit4 When device see command-ready bit is set, it reads the command

from the command register and sets the busy bit in the statusregister

5 When device completes I/O operation, it sets a bit in the statusregister to indicate the command has been completed

6 CPU repeatedly tests status register, waiting for command to becompleted

Problem: busy-waiting at steps 1 and 6

David Kendall (Northumbria University) Operating systems and concurrency B02 5 / 14

Page 6: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Device handling - Interrupt-driven

Busy-waiting can be an inefficient use of the CPUCPU could be doing other useful computation instead of waitingE.g.

Assume: 10 ms for a disk I/O operation to complete; CPU clockspeed of 120 MHz; average instruction requires 1 clock cycle –(rough estimates)How many instructions could the CPU execute instead of waiting forthe disk I/O?

So, instead of waiting, CPU performs other useful work and allowsthe device to interrupt it, when the I/O operation has beencompleted

David Kendall (Northumbria University) Operating systems and concurrency B02 6 / 14

Page 7: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Interrupt-driven I/O cycle

David Kendall (Northumbria University) Operating systems and concurrency B02 7 / 14

Page 8: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Simple interrupt-driven program structure

Foreground /BackgroundBackground: Main(super) loop callsfunctions forcomputationForeground: Interruptservice routines (ISRs)handle asynchronousevents (interrupts)

David Kendall (Northumbria University) Operating systems and concurrency B02 8 / 14

Page 9: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Context switch

Notice that the state (context) of the background task must berestored on returning from servicing an interrupt

so that it can carry on its work, after the interrupt has beenserviced, as though it had not been interrupted

If the context is to be restored, it must first be savedWhat is the context of the background task?

. . . the complete set of user-mode registers

David Kendall (Northumbria University) Operating systems and concurrency B02 9 / 14

Page 10: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

ARM Cortex M3 Core Registers

ARM, Cortex-M3 Devices Generic User Guide, ARM 2010 (p.2-3)

David Kendall (Northumbria University) Operating systems and concurrency B02 10 / 14

Page 11: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

ARM Cortex M3 Vector Table

ARM, Cortex-M3 Devices Generic User Guide, ARM 2010 (p.2-24)

When an exception occurs, processor automatically transferscontrol to the instruction at the appropriate entry in the vector table

David Kendall (Northumbria University) Operating systems and concurrency B02 11 / 14

Page 12: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Interrupt entry

Microcontroller peripheral raises interrupt; NVIC causes ISRvector to be fetched from vector table and put into R15 (PC); atsame time, CPU pushes key registers onto the stack and storesspecial ‘return code’ in link register (R14/LR)If ISR needs to save more context, it must do so itself

David Kendall (Northumbria University) Operating systems and concurrency B02 12 / 14

Page 13: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Interrupt exit

ISR returns just like a normal function call, except special ‘return’code in LR causes processor to restore stack frame automaticallyand resume normal processingAny extra context that was saved on entry must be restored beforeexitOften necessary to clear the interrupt status flags in the peripheralbefore returning from ISR

David Kendall (Northumbria University) Operating systems and concurrency B02 13 / 14

Page 14: Operating systems and concurrency B02 - Web hosting ...hesabu.net/en0572/assets/ra/B02.pdf · Operating systems and concurrency B02 David Kendall ... UM10562 LPC408x/407x User manual,

Acknowledgements and Reading

Acknowledgements[SGG09] Silberschatz, A., Galvin, P. and Gagne, G., Operatingsystems concepts, John Wiley, 8th edition, 2009[SSW04] Sloss, A., Symes, D. and Wright, C., ARM SystemDeveloper’s Guide, Morgan Kaufmann, 2004[MAR13] Martin, T., The Designer’s Guide to the Cortex-MProcessor Family: A Tutorial Approach, Newnes, 2013

ReadingSGG09, 13.1 – 13.3MAR13, 1.1 – 1.5

David Kendall (Northumbria University) Operating systems and concurrency B02 14 / 14