threads - tu dresden · communication ipc, irq platform virtual machine rights apabilities. tu...

37
MICHAEL ROITZSCH Faculty of Computer Science Institute of Systems Architecture, Operating Systems Group THREADS

Upload: others

Post on 11-Mar-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

MICHAEL ROITZSCH

Faculty of Computer Science Institute of Systems Architecture, Operating Systems Group

THREADS

Page 2: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

RECAP

�2

Page 3: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

MICROKERNELkernel:

provides system foundation usually runs in privileged CPU mode

microkernel: kernel provides mechanisms, no policies most functionality implemented in user mode, unless dictated otherwise by

security performance

�3

Page 4: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

ABSTRACTIONS

�4

Resource Mechanism

CPU Thread

Memory Task

Communication IPC, IRQ

Platform Virtual Machine

Rights

Capabilities

Page 5: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

VIRTUAL MACHINE

provides an exclusive instance of a full system platform

may be a synthetic platform (bytecode)

full software implementations

hardware-assisted implementations in the kernel (hypervisor)

see virtualization lecture on Dec 11th

�5

Page 6: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

IPC

inter-process communication

between threads

two-way agreement, synchronous

memory mapping with flexpages

see communication lecture next week

�6

Page 7: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

TASK(virtual) address space

unit of memory management

provides spatial isolation

common memory content can be shared shared libraries kernel

see memory lecture in two weeks

�7

Page 8: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

SHARED KERNEL

�8

User

Kernel

Task 1

User

Kernel

Task 2Physical RAM

Pagetables

Pagetables

Page 9: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

KERNEL AS

�9

User Kernel

User Address Space Kernel Address Space

Page 10: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

ALTERNATIVES

�10

user shared system privileged

Monolith Exokernel Microkernel SoftwareIsolation

mor

e co

de

Page 11: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

THREADS

�11

Page 12: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

BASICSabstraction of code execution unit of scheduling provides temporalisolation typically requires a stack thread state:

instruction pointer stack pointer CPU registers, flags

�12

CPUIPSP

Regs

Code

Stack

Page 13: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

STACK

storage for function-local data local variables return address

one stack frame per function

grows and shrinksdynamically

grows from high to low addresses

�13

Stack Frame 1

Stack Frame 2

Stack Frame 3

Page 14: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

KERNEL’S VIEWmaps user-level threads tokernel-level threads

often a 1:1 mapping threads can be implemented in userland

assigns threads to hardware

one kernel-level thread per logical CPU

with hyper-threading and multicore, we have more than one hardware context

�14

Page 15: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

KERNEL ENTRY

thread can enter kernel:

voluntarily system call

forced interrupt exception

CPU

IPSP

Regs

Code

Stack

�15

Page 16: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

KERNEL ENTRYIP and SP point into kernel user CPU state stored in TCB

old IP and SP registers flags FPU state MMX, SSE, AVX

CPU

IPSP

Regs

�16

Stack

Code

Code

Stack

Regs

Page 17: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

TCBthread control block

kernel object, one per thread

stores thread’s userland state while it is not running

untrusted parts can be stored in user space separation into KTCB (kernel TCB) and UTCB (user TCB) UTCB also holds system call parameters

�17

Page 18: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

KERNEL EXITonce the kernel has provided its services, it returns back to userland

by restoring the saved user IP and SP

the same thread or a different thread

the old thread may be blocking now waiting for some resource

returning to a different thread might involve switching address spaces

�18

Page 19: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

SCHEDULING

�19

Page 20: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

BASICSscheduling describes the decision, which thread to run on a CPU at a given time

When do we schedule? current thread blocks or yields time quantum expired

How do we schedule? RR, FIFO, RMS, EDF based on thread priorities

�20

Page 21: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

POLICYscheduling decisions are policies should not be in a microkernel L4 used to have facilities to implement scheduling in user land

each thread has an associated preempter kernel sends an IPC when thread blocks preempter tells kernel where to switch to

no efficient implementation yet scheduling is the only in-kernel policy in L4

�21

Page 22: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

L4

scheduling in L4 is based on thread priorities

time-slice-based round robin within the same priority level

kernel manages priority and timeslice as part of the thread state

see scheduling lecture on Nov 6th

�22

Page 23: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

EXAMPLEthread 1 is a high priority driver thread, waiting for an interrupt (blocking)

thread 2 and 3 are ready with equal priority

�23

Thread 1

Thread 2Thread 3

Priority

Page 24: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

EXAMPLE1 hardware context

kernel fills time slices of threads 2 and 3

scheduler selects 2 to run

�24

Thread 1

Thread 2Thread 3

Priority

Page 25: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

EXAMPLEdevice interrupt arrives

thread 2 is forced into the kernel, where it unblocks thread 1 and fills its time slice

switch to thread 1 preempts thread 2

�25

Thread 1

Thread 2Thread 3

Priority

Page 26: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

EXAMPLEthread 1 blocks again (interrupt handled, waiting for next)

thread 2 has time left

�26

Thread 1

Thread 2Thread 3

Priority

Page 27: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

EXAMPLEthread 2’s time slice has expired

timer interrupt forces thread 2 into kernel

scheduler selects the next thread on the same priority level (round robin)

�27

Thread 1

Thread 2Thread 3

Priority

Page 28: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

EXAMPLEit’s really only one hardware thread being multiplexed

�28

Thread 1

Thread 2Thread 3

Priority

Kernel

Page 29: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

SYNCHRONIZATION

�29

Page 30: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

BASICS

synchronization used for mutual exclusion producer-consumer-scenarios

traditional approaches that do not work spinning, busy waiting disabling interrupts

�30

Page 31: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

ATOMIC OPS

for concurrent access to data structures

use atomic operations to protect manipulations

only suited for simple critical sections

�31

Page 32: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

EXPECTATION

�32

Thread 1

Thread 2Thread 1 in critical section

Thread 2 in critical section

Page 33: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

SOLUTION

�33

Thread 1

Thread 2Thread 1 in critical section

Thread 2 in critical section

Serializer Thread

IPC call

IPC call

IPC reply

IPC reply

Page 34: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

SEMAPHORES

serializer and atomic operations can be combined to a nice counting semaphore

semaphore shared counter for correctness wait queue for fairness down (P) and up (V) operation semaphore available iff counter > 0

�34

Page 35: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

SEMAPHOREScounter increments and decrements using atomic operations when necessary, call semaphore thread to block/unblock and enqueue/dequeue

�35

Thread 1

Thread 2

Semaphore Thread

down

down

enqueue and block

up

dequeue and unblock

up

Page 36: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

BENEFITScross-task semaphores, when counter is in shared memory

IPC only in the contention case good for mutual exclusion when contention is rare for producer-consumer-scenarios, contention is the common case

optimisation for small critical sections in scheduling lecture

�36

Page 37: Threads - TU Dresden · Communication IPC, IRQ Platform Virtual Machine Rights apabilities. TU Dresden MOS: Threads VIRTUAL MACHINE provides an exclusive instance of a full system

TU Dresden MOS: Threads

RECAPrepeated basic microkernel concepts

paradigm, resource abstractions closer look on threads

TCB, kernel entry scheduling

time slices, priorities, preemption synchronization

atomic ops, serializer thread, semaphore next up: IPC

�37