Page 1 of 1
New linux kernel 2.6.21 με το πολυαναμενόμενο Dynticks!
Posted: Thu Apr 26, 2007 1:26 pm
by HdkiLLeR
Κυκλοφόρησε ο νέος linux kernel (stable branch)
2.6.21. Τα νέα features και τα improvements αρκετά (μπήκε και το Virtual Machine Interface μέσα πλέον οπότε μαζί με το KVM συμπληρώνεται σιγά σιγά το {para}virtualization κομμάτι) αλλά αυτό που τραβάει την προσοχή είναι το Dynticks feature, όπου πλέον ανοίγει τον δρόμο για πραγματικά hi-resolution timers, καλύτερο scheduling και συνεπώς multitasking με χαμηλότερο latency.
Περισσότερα εδώ:
http://kernelnewbies.org/LinuxChanges
Posted: Thu Apr 26, 2007 3:44 pm
by PaP
Πάει πολύ μπροστά το linux αν και μονολιθικό !
Αυτό πώς συγκρίνεται με τους τωρινούς schedulers ?
http://kerneltrap.org/node/8059
Posted: Fri Apr 27, 2007 2:36 pm
by HdkiLLeR
Το είχα δει πρίν λίγο καιρό αυτό. Να σου πω την αλήθεια είναι καλό approach αλλά δεν ξέρω ακόμα πως θα πάει. Υπάρχουν ενδιαφέροντα features όπως τα scheduling classes όπου σε συνδιασμό με το καλύτερο time granularity που δίνουν οι νέοι kernels (όπου βασίζεται και το dyntics παραπάνω) θα υπάρχουν ουσιαστικά nice levels. Οπότε υποτίθεται ότι θα είναι πιο fair στο να τρέχουν παράλληλα σε ένα μηχανάκι background services αλλά και desktop applications. Tώρα απο την άλλη αυτό που έκανε απλά είναι η χρήση RB-Trees (red-black trees). Απ' όσο ξέρω δεν έχει ξαναβάλει κάποιος σε kernel space τέτοιες δομές. Ο τύπος βέβαια που το γράφει είναι πολύ καλός σε τέτοια θέματα, είναι ο ίδιος που έγραψε τον O(1) scheduler και τον HTTP/FTP in kernel server.
Posted: Fri Apr 27, 2007 3:05 pm
by PaP
Κάποτε είχαν προτείνει genetic αλγόριθμο στον scheduler αλλά θα μπορούσε το "γονίδιο" κάποιων διεργασιών να εξαλειφθεί...
Πλάκα θα είχε genetic programming για scheduler
Posted: Fri Apr 27, 2007 3:49 pm
by HdkiLLeR
Ναι αλλά αυτά είναι far beyond απο το O(1). Σκοπός είναι να έχεις bounded time για να πάρεις μια απόφαση του ποια διεργασία θα εξυπηρετήσεις μέσα απο το pending set. Δηλαδή να ξέρεις ότι είτε είναι 1 process που τρέχει είτε 1000 είτε 10000000 πάντα θέλεις πχ 100ms για να βρεις την επόμενη. Αυτό είναι ιδιαίτερα σημαντικό σε συστήματα που θέλουν χαμηλό latency για ένα response και μάλιστα αυτό να μην αυξάνεται καθώς βαραίνει ο scheduler απο νέα processes.