Dyskusja:Dzielenie czasu

message: Czy nie jest sensowniej o haśle pisać czym jest a nie na co pozwala?
Alias 03:56, 21 lip 2005 (CEST)
Chyba nie... Według mnie jest tak: dzielić można różne rzeczy: arbuzy, włos (na czworo), liczby i wiele innych ale czas? Nie wyobrażam sobie tego, chyba jestem ograniczony i nie wiem "czym jest" dzielenie czasu (albo jeszcze ciekawsza operacja odwrotna: mnożenie czasu!). Dlatego napisałem "dzielenie czasu w systemach operacyjnych komputerów..." co jest pewnego rodzaju kolokwializmem, wyszczególnieniem i ujednoznacznieniem. Również dlatego napisałem "na co pozwala", gdyż w ten sposób moim zdaniem idea jest lepiej wyjaśniona a przecież to jest naszym nadrzędnym celem, prawda? Każdą lepszą i bardziej rozbudowaną wersję artykułu powitam z radością. LukMak  list 04:22, 21 lip 2005 (CEST)

message: Z głowy czyli z niczego:
#Dzielenie czasu (time dispatcher) bez szeregowania procesów (scheduler) raczej nie mogłoby funkcjonować (nawet najprostsza FIFO, lub losowy wybór, kiedyś również stosowany, muszą być obsługiwane - przez scheduler właśnie). Tym niemniej są to dwa algorytmy, które muszą ze sobą współgrać.
#Procesy i wątki to zadania. Oba typy zadań mogą podlegać schedulowaniu i time dispatchowaniu. Jeśli te algorytmy działają dla wątków to dla procesów muszą (bo wątek to część procesu). Jeśli działają dla procesów to wcale nie muszą dla wątków. Dlatego trzeba pisać o zadaniach, czasem to jedyny sposób opisu wykorzystania procesora - goto military_area. Zadaniem dla procesora może być praca na rzecz innego sprzętu na przykład (najbardziej hardcorowy przykład jaki znam).
#Procesory (moc obliczeniowa) są zasobem a nie zadania, dlatego "procesor przydziela się zadaniom" (dystrybuuje zasób) a nie na odwrót ("zadaniom przydziela procesor"). W pierwszym przypadku zawsze jest coś do przydzielenia (choćby "yield()") a w drugim nie.
#Jako wyznawca mikrokerneli powiadam że zarówno time dispatcher jak i scheduler nie muszą być częścią jądra a mogą siedzieć w systemie operacyjnym jak inne zadania. W IA32 pierwszy z nich co prawda powinien być na ringu0, jeśli ma spełniać warunek samodzielności, ale drugi - niekoniecznie. Jądro bez nich też może istnieć, chociaż wiąże się to z dziwną konstrukcją samych zadań.
LukMak  list 15:16, 23 lip 2005 (CEST)
----
Widzę, że zgadzamy się chociaż co do tego, że nikt z nas nie ma zamiaru prowadzić wojny edycyjnej. Tak naprawdę, to istnieje więcej "punktów zbieżności" :)
Moje uwagi (żadna z nich nie jest ad personam!):
#Bardzo rosądne uzasadnienie zwrotu "zadanie" - moja akceptacja. W związku z tym zajmę się niedługo hasłem "przełącznie zadań", tak by uogólnić "przełączanie procesów".
#Katergoria "Systemy operacyjne" - akceptacja.
#Zacząłeś drugi akapit "Planista decyduje..." ot, tak (novum). W j. polskim obowiązuje zasada datum-novum, czyli po naszemu: stare-nowe. Warto wyprowadzić myśl od rzeczy wcześniej wspomnianej (wydaje się to logiczniejsze i jest poprawniejsze stylistycznie).
#Dzielenie czasu, po ang. raczej time-sharing (jeżeli już to time-dispatching), to proces, mechanizm który wykorzystuje algorytm szeregowania procesów. Trudno zatem mówić o dwu algorytmach. Podobnie jak produkcja mydła i estryfikacja - pierwsze to proces, drugie to "algorytm" z którego korzysta proces. Kontynuując - nie sposób wyznaczyć granicy między dzieleniem czasu a algorytmem szeregującym (różne kategorie porównywanych rzeczy), podobnie jak ciężko powiedzieć co jest wieksze: sekunda czy metr ;) Trudno zatem mówić o wrażeniu jakie wywiera na użytkowniku współpraca tych dwu "algorytmów" - to widać po efekcie działania mechanizmu wedle jakiegoś algorytmu. Co więcej, rozumowanie przeze mnie przedstawione potwierdza, że "(...)dzielenie czasu >>mechanizm<< (...) bez szeregowania procesów >>sposób realizacji mechanizmu<< (...) raczej nie mogłoby funkcjonować" :)
#Piszesz o tym, że to procesor(y) przydziela się zadaniom. Zgoda, ale jesteś w tym niekonsekwentny: "(...)zadania dystrybuuje się pomiędzy procesory.", czyli jednak zadania przydziela się procesorom :) W mojej opinii powinniśmy utrzymać to, że to zadania przydziela się procesorom. Uzasadnienie: przydzielamy coś niestałego rzeczy stałej; czas procesora, moc obliczeniowa (potocznie procesor) istnieje niezależnie od zadania, natomiast wykonywanie (wykonanie) zadania nie ma szans bez udziału procesora. Tak czy inaczej, dla dobra hasła, powinniśmy ustalić jedną, konsekwentną formę.
#"Dzielenie czasu" to rodzaj >>kolokwializmu technicznego<< podobnego do "czasu rzeczywistego" - czymże miałby byc "czas nierzeczywisty"? (Pyt. retoryczne.) A co byś powiedział na "mnożenie tortu" zamiast "dzielenia tortu"? (2. pyt. retor.) Dodam tylko, że słowa "dzielenie" i "mnożenie" zostały zapożyczone do matematyki z języka codziennego a nie na odwrót; w matematyce oznaczają czynności przeciwne, ale w innych dziedzinach niekoniecznie i stosowanie słowa "mnożenie" kontra "dzielenie" zwykle nie ma sensu poza matematyką.
#Ja też gustuję w mikrojądrach. Tych komputerowych :) Vide Amoeba.
Sława! Alias 21:00, 23 lip 2005 (CEST)
----
Fajnie jest, mobilizuję się właśnie do przemyślenia kilku rzeczy na nowo i douczenia się conieco :)
#"przełaczanie zadań", "...procesów" itp są moim zdaniem niepotrzebne - chyba wystarczy że jest "przełączanie kontekstu". Nie ma sensu robić 4 stubów jeśli można rozbudować jedno sensowne hasło obejmujące pozostałe 3
#Ad.3 jak najbardziej się zgadzam :)
#oddzielam time dispatching od schedulingu bo scheduling może istnieć i był, i jest wykorzystywany w systemach wsadowych, gdzie nie ma time sharingu
#dla mnie time sharing=time dispatching+scheduling. Sam time dispatching bez schedulingu to random process dlatego raczej nikt by go nie chciał. ergo time dispatching=time sharing - scheduling. Jednak zgoda, jak z mydłem, oba są tak blisko siebie jak bliźniaki syjamskie. Tym niemniej chciałem pokazać szczegóły time sharingu. Wydzielam time dispatching z time sharingu z jeszcze jednego powodu - wywłaszczania. IMNSHO wywłaszczaniem zajmować się może kernel albo właśnie dispatcher biorąc na siebie wszystkie czary z rejestrami, przerwaniami i przełączaniem kontekstu.
#być może byłem niekonsekwenty w tym co się czemu przydziela: procesy procesorom czy procesory procesom. Myślę jednak że lepiej przydzielać procesom procesory, tak jak przydziela się im przestrzeń dyskową, pasmo siociowe i inne elementy sprzętowe. Procesor to dla mnie taki sam zasób jak dysk a nie powiemy temu klastrowi przydzielono ten proces, tylko na odwrót. Problem zaczyna się chyba w ciekawszych komputerach, gridach ale pisząc o dystryubowaniu procesów cały czas myślałem o przyznawaniu procesom dostępu do mocy obliczeniowej.
#Ad.6 sorki za erystykę :) Dobry pomysł - może rzeczywiście na samym początku hasła należałoby napisać że jest to pewnego rodzaju techniczny kolokwializm?
#Amoeba fajna jest, tylko doba za krótka :)
Mój JID i GG znajdziesz na odpowiedniej stronie Wikipedii. Pozdrawiam. LukMak  list 21:28, 23 lip 2005 (CEST)
thread_title:  Wojnie edycyjnej stanowcze niet!