Yes, I have read many materials related to operating system. And I am still reading. But it seems all of them are describing the process and thread in a "abstract" way, which makes a lot of high level elabration on their behavior and logic orgnization. **I am wondering what are they *physically*?** In my opinion, they are just some in-memory "data structures" which are maintained and used by the kernel codes to facilitate the execution of program. For example, operating system use *some process data structure (PCB)* to describe the aspects of the process assigned for a certain program, such as its priority, its address space and so on. Is this all right?