freenode/#sicl - IRC Chatlog
Search
6:01:25
no-defun-allowed
I'm now thinking that green threads might violate expectations on how one is supposed to call C functions; if the called function blocks, or takes some time to execute, the entire OS thread is blocked and cannot be preempted. (For example, the Erlang manual page on native functions states "a native function doing lengthy work before returning degrades responsiveness of the VM, and can cause miscellaneous strange
6:02:39
no-defun-allowed
I was hoping you'd say "Why are you using FFI in the first placeā½", but that will suffice :)
6:03:00
beach
... due to the fact that "modern" operating systems have to do so many costly context switches because of the stupid way they were designed.
6:04:05
no-defun-allowed
You're not wrong, but I want something to allow me to write somewhat sane networking code before CLOSOS.
6:08:29
no-defun-allowed
A quick review of prior art: Java code which calls "native" code will have to be fixed, Haskell delegates blocking operations to another OS thread pool, which then wake up green threads, and Go has a thread which watches for OS threads which are blocking in C code, and creates new OS threads to continue scheduling.
6:10:26
no-defun-allowed
The last two are interesting, and the Go solution seems like it would have less overhead for calling functions which don't block for too long, as it doesn't require sending operations between threads.
6:12:54
no-defun-allowed
So, there is an acceptable patch for this hack, which fixes this kludge, which is nice to see short-term.
6:39:09
no-defun-allowed
It's only speculation, and it will remain that way, but it's much more fun to speculate about than trying to speculate on electives for two universities at once.
6:41:43
no-defun-allowed
(My current university cancelled the FPGA design course I wanted to take, so trying to ask to enrol for that was a waste of time. That was the last straw with the curriculum here.)
13:51:11
ebrasca
beach: Interesting reading. But do you need to have ssd to store data without hierarchy having good performance?
14:18:56
beach
ebrasca: For CLOSOS, there is no file system because there are no files. So the only systems concerned with external memory are the paging system and the checkpointing system. So the primary memory can be seen as a cache for the secondary storage. The paging system is a pretty ordinary demand-paging system.
14:18:57
beach
The preferred checkpointing system (described in section 6.2) may require an SSD for the "segment headers" which take up a small fraction of the total secondary storage. All the rest should be possible on either HDD or SSD.