Кіріспе
Эрлангте компьютерлік көп тапсырмалылыққа жеңіл процестерді қол жеткізу құралдары. Компьютерлік операциялық жүйелерде жеңіл процесс (ЖЖП) – көп тапсырмалылыққа қол жеткізудің бір жолы. Терминнің дәстүрлі мағынасында, Unix System V және Solaris жүйелерінде қолданылғандай, ЖЖП бір ядролық жіп үстінде пайдаланушы кеңістігінде жұмыс істейді және бір процестегі басқа ЖЖП-мен адрестік кеңістігі мен жүйелік ресурстарын бөліседі. Жіп кітапханасымен басқарылатын бірнеше пайдаланушы деңгейіндегі жіптер, бір немесе бірнеше ЖЖП-нің үстіне орналастырылуы мүмкін, бұл пайдаланушы деңгейінде көп тапсырмалылықты жүзеге асыруға мүмкіндік береді, бұл кейбір өнімділік артықшылықтарын ұсынуы мүмкін. Кейбір операциялық жүйелерде ядролық жіптер мен пайдаланушы жіптері арасында жеке ЖЖП қабаты болмайды. Бұл пайдаланушы жіптері тікелей ядролық жіптер үстінде іске асырылады дегенді білдіреді. Мұндай жағдайларда "жеңіл процесс" термині көбінесе ядролық жіптерге қатысты қолданылады, ал "жіптер" термині пайдаланушы жіптерін білдіруі мүмкін. Linux-та пайдаланушы жіптері ресурстарды бөлісуге рұқсат беру арқылы іске асырылады, бұл кейде осы процестерді "жеңіл процестер" деп атауға себеп болады. Сол сияқты, SunOS 4 нұсқасынан бастап (Solaris-ке дейін) "жеңіл процесс" пайдаланушы жіптерін білдірді.
lightweight processes in Erlang
In computer operating systems, a light weight process (LWP) is a means of achieving multitasking. In the traditional meaning of the term, as used in Unix System V and Solaris, a LWP runs in user space on top of a single kernel thread and shares its address space and system resources with other LWPs within the same process. Multiple user level threads, managed by a thread library, can be placed on top of one or many LWPs allowing multitasking to be done at the user level, which can have some performance benefits. In some operating systems, there is no separate LWP layer between kernel threads and user threads. This means that user threads are implemented directly on top of kernel threads. In those contexts, the term "light weight process" typically refers to kernel threads and the term "threads" can refer to user threads. On Linux, user threads are implemented by allowing certain processes to share resources, which sometimes leads to these processes to be called "light weight processes". Similarly, in SunOS version 4 onwards (prior to Solaris) "light weight process" referred to user threads.
Қолдайтын операциялық жүйелер
Solaris 2.2 нұсқасынан бастап жеке LWP қабатын енгізді. 9 нұсқаға дейін Solaris LWP және пайдаланушы жіптері арасында көпке көптей шамаланған сәйкестікке мүмкіндік берді. Бірақ, ол күрделілікті күшейткендігі және ядроның жоспарлаушысының өнімділігін арттыру қажеттігіне байланысты тоқтатылды. UNIX System V және оның қазіргі туындылары IRIX, SCO OpenServer, HP UX және IBM AIX пайдаланушы жіптері мен LWP арасында көпке көптей шамаланған сәйкестікке мүмкіндік береді. NetBSD 5.0 жаңа, кеңейтілген 1:1 жіптік модельді енгізді. Әрбір пайдаланушы жібі (pthread) жеңіл салмақты процесс (LWP) деп аталатын ядро жібіне ие. Ядро ішінде процестер мен жіптер LWP ретінде жүзеге асырылады және жоспарлаушы оларды бірдей қамтиды.