目录
基本概念
🎈课本概念:程序的一个执行实例,正在执行的程序等
🎈内核观点:担当系统分配资源(cpu 时间,内存)的实体。
描述进程-PCB
🎈进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。
🎈课本上称之为PCB(process control block), Linux操作系统下的PCB是: task_struct
task_struct-PCB的一种
🎈 在Linux中描述进程的结构体叫做task_struct。
🎈task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息
task_ struct内容分类
🎈标示符: 描述本进程的唯一标示符,用来区别其他进程。
🎈状态: 任务状态,退出代码,退出信号等。
🎈优先级: 相对于其他进程的优先级。
🎈程序计数器: 程序中即将被执行的下一条指令的地址。
🎈内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
🎈上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
🎈I/ O状态信息: 包括显示的I/O请求,分配给进程的I/ O设备和被进程使用的文件列表。
🎈记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
🎈其他信息
组织进程
🎈可以在内核源代码里找到它。所有运行在系统里的进程都以task_struct链表的形式存在内核里。
查看进程
🎈进程的信息可以通过 /proc 系统文件夹查看
🎈如:要获取PID为1的进程信息,你需要查看 /proc/1 这个文件夹
🎈大多数进程信息同样可以使用top和ps这些用户级工具来获取
进程和线程说明
🎈通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。
🎈在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位。
🎈而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源。
🎈故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。
🎈当下推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。