1/21
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
What is shared memory? [2]
All processors are connected over a logical bus
All have access to common memory
Why is shared memory not easy to implement? [2]
Speed of access of processors is not constant
Harder to keep consistent with more caching
What is unified memory access (UMA)? [2]
Processors have equal access to shared memory
One processor can access bus at one time
What are disadvantages of UMA? [2]
Bus contention
Cache coherency
What is non-uniform memory access? [2]
Use a large scale network instead of bus
Memory closer to the CPU on network is faster since less hops needed
What is an NC NUMA machine? [2]
Non-Cache Coherent Non-Uniform Memory Access
Avoids caching or leaves programmer to deal with it
What is a CC NUMA? [2]
Requires OS to keep track of caches
Uses a directory to keep track
What are 3 ways an OS is used on multi-processor machines? [3]
Every processor runs its own OS
Leader-follower approach
Symmetric Multi-Processors (SMP)
How does one OS per processor work? [3]
Full, independent OS on each processor
Extended memory mapping API
Better than having separate machines as resources can be shared
How does the leader-follower approach work? [3]
OS runs on first processor
Coordinates launching user processes on other processors
Bottlenecks at scale
How does SMP work? [3]
All processors take turns becoming the leader
Removes bottleneck
Need to manage single copy of OS tables, if more than one processor tries to access, we risk corruption
What is multiprocessor scheduling? [3]
Multiple kernel threads running simultaneously
Maintain list of threads running and threads ready to run
Load balance across all processors
What is smart scheduling? [2]
Letting a thread run a little longer than its allocated time
So system is overall more efficient
What is affinity scheduling? [2]
When a thread runs on a processor, it fills the cache
Therefore next time slice, it should run on the same processor
What is two-level scheduling? [2]
Thread is allocated to least busy processor on creation
Then scheduled within that processor
What is space sharing? [2]
If multiple threads communicate, making them run together is more efficient
So assume threads are created in batches, only allocate when enough processors available
What is gang scheduling? [2]
Groups of related threads scheduled in a gang
All gang members run at once on different processors, start and end time slice together
What is message passing? [2]
Uses a standardised API which allows for portability of applications
Point to point messages and collective operations
What are remote procedure calls? [2]
One process can call a function on another processor
Client calls a stub in library, which calls server stub in remote server
What is distributed shared memory? [2]
When process accesses memory location that is not mapped, requests a copy
Allows multiple read only copies for whole system
What is false sharing? [2]
Two processors have own private variables within single page
Writing to the page will require maintaining coherence
What are distributed systems? [2]
Each machine is separate
Parallelism comes from a user level layer