7. Нишки, симетрични многопроцесорни системи, микроядра
Процеси и нишки.

4.1 Процеси и нишки
Две страни на един процес:
-- субект на владеене на ресурси: процес
-- обект за диспечера: нишка
** Многонишкова работа -- много нишки в един процес
--- FIGURE 4.1 ---
-- характеристики на процес:
   - виртуално адресно пространство, където се съхранява образа на процеса
   - защитен достъп до процесори, други процеси, файлове и I/O ресурси
-- характеристики на нишка:
   - състояние (готов, изпълнение, ...)
   - запазен контекст, когато не е в състояние изпълнение
   - стек за изпълнение - статична памет за локални променливи
   - достъп до памет и ресурси на процеса, използване заедно с другите нишки на процеса
--- FIGURE 4.2 ---
-- главни предимства на нишките: по-лесно се създанва нишка, отколкото процес; по-лесно се прекратява нишка, отколкото процес; по-лесно се превключват нишки, отколкото процеси
** Функциониране на нишките
* Състояния на нишките: изпълнение, готово и блокирано (без прекратено)
 4 главни операции за нишки:
   - множене: раждане на нова нишка (на същия процес или в резултат от множене на процеса)
   - блокиране
   - разблокиране
   - завършване
* Синхронизация на нишките
--- FIGURE 4.3 ---
--- FIGURE 4.4 ---
* Пример: Aldus PageMaker - печат, писане, обновяване на екрана; работа в различни прозорци, "busy" курсор
** Нишки на ниво ядро и нишки на ниво потребител
* Нишки на ниво потребител - ULT
* Нишки на ниво ядро  - KLT
--- FIGURE 4.6 ---
* Комбиниран подход
** Други комбинации
* Връзки много-към-много
* Връзки едно-към-много

Нишки : процеси Описание ОС
1 : 1 Всяка нишка е един процес със свое адресно пространство и ресурси повечето UNIX системи
М : 1 Всеки процес е собственик на свое адресно пространство и динамични ресурси. Много нишки могат да бъдат създадени и изпълнени в този процес Windows NT, Solaris
1 : М Една нишка може да "мигрира" от един процес на друг, което дава възмоност нишките лесно да се местят в различни системи  Ra(Clouds), Emerald
М : М Комбинация на предишните TRIX