Multicore OSes: Looking Forward from 1991, er, 2011 David A. - - PowerPoint PPT Presentation

▶
multicore oses looking forward from 1991 er 2011
SMART_READER_LITE
LIVE PREVIEW

Multicore OSes: Looking Forward from 1991, er, 2011 David A. - - PowerPoint PPT Presentation

Multicore OSes: Looking Forward from 1991, er, 2011 David A. Holland and Margo I. Seltze (Harvard University) 18.01.2012, Presentation By Pawe Hajdan software is not parallelized enough to take advantage of the more and more parallelized


slide-1
SLIDE 1

18.01.2012, Presentation By Paweł Hajdan

Multicore OSes: Looking Forward from 1991, er, 2011

David A. Holland and Margo I. Seltze (Harvard University)

slide-2
SLIDE 2

✤

software is not parallelized enough to take advantage

  • f the more and more parallelized hardware

✤

how about moving to a shared-nothing architecture which is easier to scale?

slide-3
SLIDE 3

✤

supercomputers of ‘80s and ‘90s hit similar problems

✤

shared-memory replaced by shared-nothing + message passing

✤

Map-Reduce is shared-nothing and hugely successful

✤

don’t take the analogy too far

But we’ve been there before!

slide-4
SLIDE 4

Make messaging really cheap

✤

support messaging natively

✤

cost comparable to a procedure call

slide-5
SLIDE 5

Make messaging really cheap

✤

not just applications, operating systems too

✤

procedure calls are a special case of messages

✤

microkernel, “macrokernel”, or something completely different

slide-6
SLIDE 6

A Model of Messages and Channels

✤

channel <- value (send)

✤

value <- channel (receive)

✤

channels can be sent though channels

✤

communication and also synchronization

slide-7
SLIDE 7

Multiplexing

choose {

  • ption r1 <- c1: action1(r1); break;
  • ption r2 <- c2: action2(r2); break;
  • ption r3 <- c3: action3(r3); break;

};

slide-8
SLIDE 8

Peer vs. Hierarchical Structure

✤

caller/callee relationship is asymmetric

✤

this leads to a hierarchy

✤

which can become cumbersome or wasteful

slide-9
SLIDE 9

Implementing it

✤

UNIX and C

✤

needed in mainstream, must run legacy code easily

✤

concurrent dialect of C, lightweight parallelism

✤

more details are beyond the scope

slide-10
SLIDE 10

Implementing it

✤

no kernel-mode/user-mode transitions

✤

no signals for asynchronous kernel -> app messaging

✤

designated kernel and application cores

✤

no need for special hardware support, for now

slide-11
SLIDE 11

Implementing it

✤

the whole kernel must be architected to use message passing

✤

give every device driver its own thread

✤

less synchronization, cool!

✤

better fits static analysis models

slide-12
SLIDE 12

Implementation issues

✤

most can only be discovered during actual implementation

✤

implementing choice effectively

✤

decentralizing virtual memory management

✤

too much parallelism and no middle ground

slide-13
SLIDE 13

Implementation issues

✤

recovering from various failure scenarios

✤

scheduling threads on CPU cores

✤

scaling still not automatic, just easier

slide-14
SLIDE 14

Conclusions

✤

lightweight shared-nothing message-passing parallelism

✤

alternatives like hundreds of VMs are unsatisfying

✤

is systems research community ready for the challenge?

slide-15
SLIDE 15

Further reading

✤

BAUMANN, A., ET AL. The Multikernel: A new OS architecture for scalable multicore systems. In Proc. of the 22nd SOSP (October 2009). (Barrelfish, Microsoft Research, Cambridge)

✤

CLARK, J. Intel: Why a 1,000-core chip is feasible (December 2010). (48 and 80 cores already there; how do we program 1000 core chip?)

✤

  • GOOGLE. The Go programming language. http://golang.org/

✤

Jochen Liedtke’s papers (microkernels, L4) (1991 - 2001)

✤

Pierre-Evariste Dagan. Language Support for Reliable Operating Systems (June 2009).

slide-16
SLIDE 16

THE END