i feel that the grammar of a programming language is among the least appropriate of all possible facets of its behavior to start off with.
-
ipc performance is not only determined by the kernel algorithms, but also by the user/kernel interface. It is important to support typical usage and permit compilers to optimize code.
clearly we agree on the important things??? lol
Since there are no compilers (as far as we
know) which permit interfaces to be specified at register level and basic block sequences to be optimized by programmer supplied usage information, we had to use hand coding for the critical ipc related parts.see i love this guy lmao
@hipsterelectron I have no fucking clue what any of this means but this guy seems chill and I love these types of threads where you liveblog the nerd shit you're reading anyways
-
oh amoeba is so cool lmao https://dl.acm.org/doi/abs/10.1145/54289.54291
6. THE FAST AMOEBA FILE SERVER
Like the Amoeba communication primitives, the Amoeba file server, called the bullet server was designed for extremely high performance.you're allowed to say stuff like this if you can back it up. let's see:
In particular, the decrease in the cost of disk and RAM memories over the past decade has allowed to use a radically different design than is used in UNIX and most other operating systems. In particular, we have abandoned the idea of storing files as a collection of fixed size disk blocks.
HELL yes i win again
All files are stored contiguously, both on the disk and in the server's (16 MB) main memory
16 mb lmao
The bullet server is an immutable file store, with as principal operations READ-FILE and CREATE-FILE.
this is how pants works and how my shared memory ipc worked, it's cool
(For garbage collection purposes there is also a DELETE-FILE operation.)
love this!
-
oh amoeba is so cool lmao https://dl.acm.org/doi/abs/10.1145/54289.54291
6. THE FAST AMOEBA FILE SERVER
Like the Amoeba communication primitives, the Amoeba file server, called the bullet server was designed for extremely high performance.you're allowed to say stuff like this if you can back it up. let's see:
In particular, the decrease in the cost of disk and RAM memories over the past decade has allowed to use a radically different design than is used in UNIX and most other operating systems. In particular, we have abandoned the idea of storing files as a collection of fixed size disk blocks.
HELL yes i win again
All files are stored contiguously, both on the disk and in the server's (16 MB) main memory
16 mb lmao
@hipsterelectron 16.... Huh????? Whuh????? That's a typo that's gotta be a typo
-
The bullet server is an immutable file store, with as principal operations READ-FILE and CREATE-FILE.
this is how pants works and how my shared memory ipc worked, it's cool
(For garbage collection purposes there is also a DELETE-FILE operation.)
love this!
the cache kernel is sick. closest thing to the macrokernel i've found so far https://dl.acm.org/doi/10.1145/504390.504414 research sponsored by ARPA wish ARPA did more locality-centric memory motion stuff
-
the cache kernel is sick. closest thing to the macrokernel i've found so far https://dl.acm.org/doi/10.1145/504390.504414 research sponsored by ARPA wish ARPA did more locality-centric memory motion stuff
SPIN kernel rox my sox!!! https://www.cs.cornell.edu/people/egs/papers/spin-tr94-03-03.pdf they're literally just saying "yeah so turns out applications have highly structured resource dependencies and you can just ask them for that shit"
In terms of memory resources, multimedia applications use large amounts of data (audio and video streams) with access patterns that interact poorly with locality-based page replacement algorithms [Anderson 93, Nakajima et al. 92]. Application-specific virtual memory management policies can solve this problem.
yes!!!!!!! but they go deeper:
High-level information about media
direction, edit cuts, and temporal constraints are directly relevant to page replacement decisions.yes!!!!!!!!!
When presenting a video stream, for example, an application can sequentially prefetch video frames directly from disk into memory-resident buffers. Information about synchronization between media streams can also be specified to prevent unnecessary replacement of pages that are interdependent.
literally the application knows what they want lmao
Filesystem performance can benefit from application-specific information in several ways.
TRUTHNUKE
The application can provide hints about future usage to the filesystem to help it schedule disk traffic [Gibson et al. 92]. This can result in
more effective prefetching policies and lower buffer cache miss rates.amazing
An effective prefetching policy can also remove virtual memory remapping operations from the critical path, since disk blocks are already mapped into the application address space when they are needed.
i think this is prob what i'm doing
In addition, the application can inform the kernel about how it will use the buffer cache, so that the kernel can make informed decisions about physical memory allocation [Stonebraker 81]
y e s
-
SPIN kernel rox my sox!!! https://www.cs.cornell.edu/people/egs/papers/spin-tr94-03-03.pdf they're literally just saying "yeah so turns out applications have highly structured resource dependencies and you can just ask them for that shit"
In terms of memory resources, multimedia applications use large amounts of data (audio and video streams) with access patterns that interact poorly with locality-based page replacement algorithms [Anderson 93, Nakajima et al. 92]. Application-specific virtual memory management policies can solve this problem.
yes!!!!!!! but they go deeper:
High-level information about media
direction, edit cuts, and temporal constraints are directly relevant to page replacement decisions.yes!!!!!!!!!
When presenting a video stream, for example, an application can sequentially prefetch video frames directly from disk into memory-resident buffers. Information about synchronization between media streams can also be specified to prevent unnecessary replacement of pages that are interdependent.
literally the application knows what they want lmao
Filesystem performance can benefit from application-specific information in several ways.
TRUTHNUKE
The application can provide hints about future usage to the filesystem to help it schedule disk traffic [Gibson et al. 92]. This can result in
more effective prefetching policies and lower buffer cache miss rates.amazing
An effective prefetching policy can also remove virtual memory remapping operations from the critical path, since disk blocks are already mapped into the application address space when they are needed.
i think this is prob what i'm doing
In addition, the application can inform the kernel about how it will use the buffer cache, so that the kernel can make informed decisions about physical memory allocation [Stonebraker 81]
y e s
Extensible interprocess communication
An extensible IPC interface enables applications and servers to define their own semantics for interprocess communication enabling the best tradeoff between performance and functionality.of course but also yes!!!!!!!!
-
Extensible interprocess communication
An extensible IPC interface enables applications and servers to define their own semantics for interprocess communication enabling the best tradeoff between performance and functionality.of course but also yes!!!!!!!!
Some systems rely on “little languages” to safely extend the operating system interface through the use of interpreted code that runs in the kernel [Lee et al. 94, Mogul et al. 87, Yuhara et al. 94].
i think it's a cute idea but it shouldn't be code it should be data describing a set of access patterns for an isolated application process
These systems suffer from three
problems. First, the languages, being little, make the expression of arbitrary control and data structures cumbersome, and therefore limit the range of possible extensions.this is why you never make your own language for a specific problem and then force people to use it!!!!
Second, the interface between the language’s programming environment and the rest of the system is generally narrow, making system integration difficult.
great to hear how bazel and nix were by no means the first to make this mistake
-
Some systems rely on “little languages” to safely extend the operating system interface through the use of interpreted code that runs in the kernel [Lee et al. 94, Mogul et al. 87, Yuhara et al. 94].
i think it's a cute idea but it shouldn't be code it should be data describing a set of access patterns for an isolated application process
These systems suffer from three
problems. First, the languages, being little, make the expression of arbitrary control and data structures cumbersome, and therefore limit the range of possible extensions.this is why you never make your own language for a specific problem and then force people to use it!!!!
Second, the interface between the language’s programming environment and the rest of the system is generally narrow, making system integration difficult.
great to hear how bazel and nix were by no means the first to make this mistake
a professor i follow on here who has been way more annoying on here recently and i didn't know why......anyway happened to find a paper of his from last year and he's just doing literal LLM slop now. RIP in peace
-
a professor i follow on here who has been way more annoying on here recently and i didn't know why......anyway happened to find a paper of his from last year and he's just doing literal LLM slop now. RIP in peace
sloperating system
-
on the internet:
Large block processing costs are dominated by memory bandwidth, not software overheads.
that makes sense. the difficulty with fitting network i/o into my beautiful symphony of data locality is that the network is "necessary global" in some sense, and can't do multi-level queueing or w/e because you can't dictate to network resources how fast or slow to send data to you!
As Blackwell discusses [4], processing overhead on smaller packets is necessarily much higher.
hmmmm
