Reaves.dev

v0.1.0

built using

Phoenix v1.7.17

Shared Memory Multiprocessor OS

Stephen M. Reaves

::

2024-02-16

Notes about Lecture 4f for CS-6210

Summary

OS for Parallel Machines

Challenges:

Principles

Cache Conscious Decisions:

Refresher on Page Fault Service

GcpuCPUtlbTLB Lookupcpu->tlbVPNptPT Lookuptlb->ptMissfileFilept->fileLocatepfPage Framefile->pfI/OptuPT Updatepf->ptuVPN,PFNtlbuTLB Updateptu->tlbuVPN,PFNpfscPage Fault Service completetlbu->pfsc

Parallel OS and Page Fault Service

Easy Scenario:

Hard Scenario:

Recipe for Scalable Structure in Parallel OS

For every subsystem:

Tornado’s Secret Sauce

Gn0n0orObject Referencen0->orrep0rep0or->rep0rep1rep1or->rep1rep2rep2or->rep2n1n1n1->orn2n2n2->or

Illusion of single object

Degree of clustering?

Traditional Structure

GfsFile SystempcPage Cachefs->pcvmVirtual Memoryvm->pcssStorage Systempc->ss

VM Data Structures

Objectization of Memory Management

Address Space -> Process Object (PCB)

Carve up Backing Store => File Cache Manager for each region

Page Frame Manager => DRAM object

Page I/O => Cached Object Rep (COR)

Objectized Structure of VM Manager

Gcluster_rpcReplicated per CPUcluster_regionPartial Replicationcluster_fcmPartitionedcluster_corTrue sharedcluster_repSeveral representationscluster_pagediskprocessprocesstlbtlbprocess->tlbregion1region1process->region1region2region2process->region2fcm1fcm1region1->fcm1fcm2fcm2region2->fcm2cor1cor1fcm1->cor1DRAMDRAMfcm1->DRAMcor2cor2fcm2->cor2fcm2->DRAMpage1pagepage1->cor1page2pagepage2->cor2

Advantages of Clustered Object

Gcluster_repn0n0orObject Referencen0->orrep0rep0or->rep0rep1rep1or->rep1rep2rep2or->rep2n1n1n1->orn2n2n2->or

Same object references on all nodes

Allows incremental optimization

Page fault handling scales with number of processors

Destroying memory in a region does not scale as well

Implementation of Clustered Object

Translation table

Miss Handling table

Miss handler is a partitioned data structure and may not exist on the processor

Non-Hierarchical Locking

Hierarchical locking:

Use refcount + existence guarantee instead of hierarchical locking

Dynamic Memory Allocation

Break up heap space into regions

IPC

Object calls need IPC

Tornado Summary

Summary of Ideas in Corey System