threads - tu dresden · communication ipc, irq platform virtual machine rights apabilities. tu...
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/1.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/2.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/3.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/4.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/5.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/6.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/7.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/8.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/9.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/10.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/11.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/12.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/13.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/14.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/15.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/16.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/17.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/18.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/19.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/20.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/21.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/22.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/23.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/24.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/25.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/26.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/27.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/28.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/29.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/30.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/31.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/32.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/33.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/34.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/35.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/36.jpg)
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](https://reader033.vdocument.in/reader033/viewer/2022041916/5e69b8b243bca35ed87c95bd/html5/thumbnails/37.jpg)
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