"David P. Reed" <dpr...@deepplum.com> writes:

> Regarding EDF.
>
> I've been pushing folks to move latency sensitive computing in ALL OS's to a 
> version of EDF since about 1976. This was when I was in grad school working 
> on distributed computing on LANs. In fact, it is where I got the idea for my 
> Ph.D. thesis (completed in 1978) which pointed out a bigger idea - that 
> getting ACID consistency [ACID hadn't been invented then as a term, we called 
> it atomic actions] on data in a distributed system being processed by 
> concurrent distributed transactions can be done by using timestamps that 
> behave like the "deadlines" in EDF. In fact, the scheduling of code in my 
> thesis was a generalized version of EDF, approximated because of the 
> impossibility of perfect synchronization.
>
> The Croquet system, which was a real-time edge based decentralized system, 
> with no central server, that we demonstrated with a Second-Life style virtual 
> world that wored entirely on a set of laptops that could be across the 
> country from each other was based on an OS implemented in a variant of the 
> Squeak programming language, where the scheduling and object model was not 
> process based, but message based with replicated computation synchronized via 
> a shared "timestamp" that was used for execution scheduling (essentially 
> distributed EDF). The latency requirements for this distributed virtual world 
> were on the order of 100 msec. simultaneity for mouse clicks affecting all 
> participating nodes across the country in a virtual 3D world, with sound, etc.
>
> Croquet was built in 2 years by 3 people (starting from scratch).  And 
> scheduling was never a problem, nor was variable network delay (our protocol 
> was based on UDP frames synchronized by the same timestamps used to 
> synchronize each object method execution.
>
> The operating system model is one I created within that modified Squeak 
> environment as part of its base "interpreter", which wasn't a loop, but a 
> scheduler using EDF.
>
> To make this work properly, the programming model has to be unified around 
> this kind of scheduling.
>
> And here's why I am mentioning this. To put EDF *only* into the networking 
> stack, but leave the userspace applicaiton living with the stupid Linux 
> timesharing system scheduler, optimized for people typing commands on 
> terminals every few seconds and running batch compilation is the *worst of 
> all possible ways to use EDF*.
>
> Because it creates a huge mess bridging those two ideas.
>
> Croquet is a much more complicated thing that a teleconferencing system, 
> because it actually lets end users write simple programs that control the 
> user interactive experience, 30 frames per second across the entire US, 
> replicated on each computer, in the Squaak variant of Smalltalk. And we did 
> it with 3 coders in a couple of years. (yes, they are sckilled people - me, 
> David A. Smith, and the late Andreas Raab, who died way too young).
>
> In contrast, trying to bridge between EDF and regular Linux processes running 
> under the ordinary scheduler, even with "nice" and all kinds of hacks, just 
> to do a video conferencing system with fixed, non-programmable behavior, 
> would take far more design, far more lines of code, etc.
>
> So this is why I think timesharing OS's are really obsolescent for modern 
> distributed interactive systems. Yeah, "rsync" and "git" are nice for batch 
> replication of files. ANd yeah, EDF can help make them perform faster in 
> their file transferring.
>
> But to make an immersive, real-time experience (which is what computing today 
> is all about, on all time scales, even in the servers other than HPC) it is 
> ALL wrong, and incrementally patching little pieced of Linux ain't gonna get 
> there. Windows or BSD (macOS) ain't gonna do it either.
>
> I'm old. Why is Linux living in the idea space of operating systems that 
> precededed networking, distributed computing, media sharing?
>
> My opinion, and it is only an opinion based on experience, is that it really 
> is time for networking to stop focusing on file transfers, and OS's to stop 
> focusing on timesharing behavior. The world is "live" and time-based. It may 
> not be hard-real-time. But latency is what matters.
>
> Since networking will remain separate from OS's, the interface concepts in 
> both really need to be matched to get to that future.
>
> It's why I pushed so hard for UDP, not reliable in-order streams alone. And 
> in my view, though no one every implemented it, those UDP packets will be 
> carring times, essential for synchronization of coordinated operations at all 
> the endpoints of the computation.
>
> I'd love to see that happen before this old guy dies. I think it will make it 
> a whole lot easier to make networked programs work.
>
> Decentralization isn't "blockchain". My thesis, in 1978, talked about one way 
> to decentralize computation, not just data structures. And timing is critical.
>
> Sorry for the rant. I'm tired of waiting for "backwards compatibility" with 
> Unix version 1 to allow us to go forward. To me, Linux is a great version of 
> a subset of the operating systems I worked on in the early 1970's. And little 
> more.


This was a fascinating read, thank you! Are you aware of any
contemporary systems implementing such a unified EDF scheduling model?

-Toke

_______________________________________________
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel

Reply via email to