dez#107
"Ha tudnád hogyan működik a 16 bites cooperative üzemmód, nem irnál le ekkora marhaságokat... De elmagyarázom. (megint) A 16 bites cooperative mutltitaskra (gyk 3.x-es win) irt programok gyakorlatilag maguk kezelik a multitaskot ami annyit jelent, hogy nem az kernel ütemezője veszi vissza adott futási idő után a vezérlést a programtól (és adja egy másiknak), hanem maga a program, mikor úgy érzi, hogy "eleget" dolgozott."
Köszi, de ezt eddig is tudtam. Valószínű jópár évvel, vélhetően egy évtizeddel korábban, mint te.
"Ezért van az, hogy ezeken az oprendszereken (3.x-es win és lefelé, ill macos egészen 2001-ig) ha egy program elszáll vagy akárcsak végtelen ciklusba kerül, akkor képtelen visszaadni a vezérlést a kernelnek (az meg a cooperative multitask okán képtelen erőszakkal visszavenni) és jöhet a restart."
Ezt is.
"Ennek semmi köze a win95-höz, csak annyi, hogy az is képes ezeket a gagyi 16 bites cooperative multitaskra megirt programokat futtatni, de ő sem képes átírni a kódjukat preemtive-re. Azaz 95 alatt ezek a programok a saját kis homokozójukban mennek szépen cooperative multitaskban (mivel preemtive-ben képtelenek, mert nem úgy vannak megirva) a többi nativ win95-ös alkalmazás meg megy preemtive multitaskban. Ilyen egyszerű."
És gondolom azt hiszed, hogy az a homokozó viszont már (mint önálló program) maga is preemptive-en futott, mint a többi 32-bites program. Hát nem. Lásd a lenti idézetből: "Of potentially greater concern, Windows 95's multitasking performance drops radically when even a single 16-bit Windows 3.1 program is run". Szal valamit elcsesztek. Ezzel szemben: "whereas OS/2's multitasking will not be adversely affected in this case."
És megint csak ne feledkezzünk meg róla, hogy ekkor még a programok nagy része Win3.1-es volt, lévén idő kellett az "portoláshoz". Sok programot nem is írtak át, vagy nem teljes egészében.
De van itt további érdekesség is: "While both OSes use pre-emptive multitasking, OS/2 implements this feature much more completely than does Windows 95. Specifically, many Windows 95 system calls are "non-reentrant," which means that they can only be called by one program at a time. This may produce some "jerkiness" to the multitasking of Windows 95."
"És ne gyere amigaos-es röhejekkel, mert az eleve képtelen futtatni ezeket az alkalmazásokat."
Simán nem is, mivel totálisan más platform. De emulátor már akkor is volt, és az így futtatott Wines programok mellett vígan futottak az AmigaOS-es programok.
"egyszerűen csak adna ezeknek az ősrégi alkalmazásoknak egy cooperative multitaskos homokozót, hogy tudjanak futni."
Persze, de ezt is lehet jól is csinálni, lásd OS/2.