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 |