PCB描述信息

task_struct内容


1,标识符

内核用来识别不同进程,用户程序通过进程pid发送命令,新创建的进程的pid比前一个进程多1,最大进程号是32767;


2,进程状态:


1>运行时状态:分为两种,正在运行和等待运行,都位于运行队列中。current所指向的就是正在运行的进程,cpu是这些进程唯一等待的资源。(task_running)

2>等待状态:位于等待队列,可以被信号唤醒从而进入运行状态的成为可中断等待信号,反之因为硬件资源的缺失称为不可中断信号,(task_interruptible,task_uninterruptible)

3>暂停状态:当收到SIGSTOP,SIGTTIN,SIGTOUT,SIGTSTP时,进程从运行态到暂停态。例如正在调试的进程;(task_stopped)

4>僵死状态:子进程已经停止但是父进程没有执行wait()系统调用。此时仍然占领折系统资源(task_zomble)

3.进程调度信息

need_resched:(调度标志):一旦被设置,在下一次调度中就会调用schedule();

Counter(动态优先级):递减,剩余时间片;

Nice(静态优先级):用于对Counter赋值,可以通过nice()系统调用改变这个值;

Policy(调度策略):先来先服务,时间片轮转和其他调度策略,只有root用户可以通过sched_setscheduler()系统调用改变调度策略;

rt_priority(实时优先级):


4,进程通信;为了多个进程可以互相协调高效的完成一项任务,进程之间就需要互相通信。有UNIX通信机制(管道(pipe),信号(signals))和System V/ Posix( 共享内存,信号量,和消息队列)


5,进程之间链接关系

一个父进程可以通过fork()或clone()函数创建一个或几个子进程,子进程之间成为兄弟进程,通常子进程拷贝了除pid等进程独有的信息外其余进程描述信息,子进程与父进程之间进行通信,比如父进程向子进程发送kill()信号时,系统有必要建立这种“亲属”链接,每一个进程的task_struct结构体中有多个指针指向其余父子进程,这样系统中所有进程通过指针形成了一个以初始化init进程为根的大树。


6,时间定时器信息

Start_time:进程创建时间

Pre_cpu_utime:进程运行时在用户态下耗费的时间;

pre_cpu_stime:进程运行时在系统态下耗费的时间;

Counter:进程剩余的时间片;


7,页面管理:当物理内存不足够时,linux内存管理子系统将内存中部分页面置换到外存。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值