Linux中进程的概念

一.进程的基本概念

概念:程序的一个执行实例,正在执行的程序等。
内核观点:进程是承担系统资源分配的基本单位。

二.描述进程

Linux是有C语言写的,操作系统管理进程必须的“先描述,在组织”。进程的信息被放在一个叫做task_struct(linux中的进程控制块PCB)的结构体中(以链表的形式组织),可以理解为进程属性的集合。

三.task_struct的内容描述

问:在linux操作系统下描述进程的是一个名叫task_struct的结构体,
  那么这个结构体中包含哪些东西呢?
1.标示符:描述进程的唯一描述符(pid)。
2.状态:任务状态,退出代码,退出信号等。
3.优先级:相对于其他进程的优先级。
4.程序计数器:程序中即将被执行的下一条指令的地址。
5.内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。
6.上下文数据:进程执行时处理器的寄存器中的数据。
7.I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
8.记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
  程序被加载到内存中去运行,肯定不止一个,那要怎么区分呢?这时候标示符出来了,用来区别与其他进程。和我们人类的身份证一样。
  
  进程是来完成一些任务的,所以这时候必须有任务状态来表示进程的任务完成的怎么样了,进程也可能会退出,可能是完成任务自动退出,也可能是没有完成任务被OS切换下去,也可能是异常退出(被杀死或者硬件异常等),就必须有退出代码和退出信号来表示进程是什么原因退出的。
  
  
  加载到内存中的程序都需要被执行,但是CPU的数量是固定的,所以必须有个执行的先后顺序,所以进程优先级就出来了,让众多的进程能够合理的分配到资源。
  
  内存指针是用来找到内存中程序相应的代码和数据的,这样才能被执行。
  
  被加载到内存的程序有很多,但是不是一个进程被执行完之后才执行下一个,可能执行了一段时间没有执行完,但是时间到了,就必须得被切换下去,换下一个进程,但是到了下一次又到了这个被切换下去的进程的时候,操作系统怎么知道上一次这个进程被执行到哪里了呢?这时候就有了上下文数据,因为进程是动态切换的,所以相关的信息和数据就被存储在了寄存器中,方便下次再被拿出来。
  
  记账信息:进程一次被执行的时间段,时间一到就会被切下来,不管执行完了没有。

谈到进程,其中最重要的几点就是pid,优先级,上下文数据,内存指针这几个概念。

四:进程的特性

1.竞争性:系统进程数目众多,而CPU的资源只有少量,甚至1个,所以进程间具有竞争属性的,为了高效的完成任务,更合理竞争相关资源,便具有了优先级。(优先级体现竞争性)
2.独立性:多进程运行,需要独享各种资源,多进程运行期间互不干扰。
3.动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
4.并发:多个进程在一个CPU下采用进程切换的方式,多个进程在一段时间内都得以推进。
5.异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。

五.查看进程的命令

1.top
2.ps axj / ps aux(可以通过管道和grep命令更详细的看:ps axj | head -n1 && ps axj | grep “程序的名字”)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值