Solaris supports separate thread related concepts. These are process, user-level threads, light-weight processes and kernel threads.
1. Process: A user process is a collection of one or more application threads or user-level threads. A process includes the user’s address space, stack and PCB (Process Control Block).
2. User-Level Threads: It implemented through a threads library in the address space of a process. These are invisible to the operating system.
3. Light-Weight Process: It creates the interface between user-level threads and kernel threads. Each Light-Weight Process is associated with a kernel thread. It is scheduled by the kernel independently and it may execute in parallel on multi-processors.
4. Kernel Threads: Each user process is associated with at least one kernel thread. Kernel threads are the only entity to which the kernel has access for scheduling purposes.
Process Structure in Solaris:
1. Process ID: It is the unique identification number of each process.
2. User ID: It specifies the user identification which includes login names.
3. Signal Dispatch Table: It specifies what to do when sending a signal to a person.
4. File Descriptors: It describes the state of files in use by this process.
5. Memory Map: It defines the memory space for this process.