( bzt | 2024. 08. 25., v – 18:47 )

1. A hagyományos terminológiában a multithreading a multiprocessing fokozása/fejlesztése: egyes processek -- az általános szabálytól eltérően -- közös címtartományban vannak, és osztoznak egyes erőforrásokon (file handle, shared memory, etc), ezek a threadek, avagy Light Weight Processek.

Megismétlem, nem létezik olyan, hogy "hagyományos terminológia", Te itt konkrétan a POSIX terminológiára utalsz, azaz a pthread-re, ami csak egy kis szelete az egésznek.
A kettőspont utánni definíciód meg éppúgy érvényes a signal handlerekre is, mint a pthread-es szálakra.

Namostan a process (avagy folyamat), az egy olyan programfutás, ami alá van vetve az ütemezésnek, azaz megkaphatja és elvesztheti/elengedheti a CPU-t, prioritása lehet, input-ra várhat, stb.

Megismétlem, multitaskingról beszélsz itt, nem többszálúságról, tehát alapjaiban hibás ez a definíció a processzre, mert nemcsak multitasking rendszerek léteznek.

Konkrét ellenpéldával cáfolva, lásd például a FreeDOS-t vagy MS-DOS-t (vagy bármelyik másik monotasking operációs rendszert), aminek se ütemezője, se yield hívása, se prioritási listája sincs, tehát semmi multitask, mégis egyértelműen rendelkeznek processzekkel (a linkelt forráskódból ez egyértelmű és tagadhatatlan).

TL;DR: annak, hogy van-e ütemező egyáltalán, semmi köze a processzekhez és a szálakhoz, monotasking rendszerben is van processz és (processzenként egy) szál.