Linux并发程序设计-进程讲解(1)

1、进程

*case1:*要了解什么是进程?首先要知道什么是程序。
程序就是存放在磁盘上的指令和数据的有序集合(文件),程序时静态的。
指令和数据有何特点?
1.指令和数据都是按地址寻访,他们存放在存储器中。
2.指令和数据都采用二进制表示。
3.指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
4.指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件该表执行顺序。

*case2:*进程和程序的关系
1.执行一个程序所分配的资源总成就称为进程;
2.进程也是程序的一次执行过程;
3.其相对于静态的程序是动态的,包括创建、调度、执行、消亡。

2、进程的内容

进程内容
正文段
用户数据段
系统数据段
程序
进程控制块
CPU寄存器值
堆栈

系统数据段是为了有效管理进程。这其中涉及到了数据各种数据类型的生命周期,及作用域,后面会单独写一期关于C语言中数据存储类的博客。
如何清晰的描述一个进程?就需要进程控制块(pcb)不是焊板子的pcb!!
pcb主要包括
• 标识符(PID):进程相关的唯一标识符,用来区分其他进程;
• 状态:进程有不同的状态,例如运行,就绪,阻塞,僵尸等;
• 优先级:为了给处理机调度提供支持,优先级用来区分各种进程的先后执行顺序,从低到高;
• 内存指针:包括程序代码的进程相关数据的指针,以及与其他进程贡献那个内存块的指针;
• 上下文:进程是需要切换的,切换进程时需要保留进程的上下文信息,以防进程在切换时丢失现场数据;
• IO状态信息:包括显示IO请求,分配给进程的IO设备和被进程使用的文件列表等;
• 记账信息:包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。

3、进程的状态

在这里插入图片描述

运行态包括正在运行和可运行,可运行又称就绪态;
等待态又称阻塞态是进程等待一个事件的发生,分为可终端和不可中断两种模式;
停止态进程被终止;
僵尸态又称为死亡态,进程终止但pcb没有释放。

僵尸态对应僵尸进程,这一部分将放在下一讲关于父子进程中介绍!!

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值