Я читал Документ ядра Linux и обнаружил, что в некоторых местах они используют контекст задачи и контекст процесса.
linux/Documentation$ grep -R "task context" .
./driver-model/driver.txt:147:The probe() entry is called in task context, with the bus's rwsem locked
./DocBook/device-drivers.tmpl:429: this writing all such functions are usable only from task context.
./gpio.txt:141:a task context. However, for spinlock-safe GPIOs it's OK to use them
./gpio.txt:258:a task context. However, for spinlock-safe GPIOs it's OK to request GPIOs
./PCI/pci-error-recovery.txt:134:shouldn't do any new IOs. Called in task context. This is sort of a
linux/Documentation$ grep -R "process context" .
./spinlocks.txt:110:manipulated from a "process context", ie no interrupts involved.
./dma-buf-sharing.txt:286: atomic dma_buf kmaps at the same time (in any given process context).
./DocBook/kernel-locking.tmpl:508: If you are in a process context (any syscall) and want to
./DocBook/lsm.tmpl:152:have no process context (e.g. network input operations).
Я понимаю разницу между контекстом процесса и контекстом irq, но AFAIK, процесс и задача не так сильно отличаются в Linux (наверное, я ошибаюсь). Кто-нибудь может просветить меня?