进程概念

泛谈Linux操作系统中有描述操作系统的相关概念,对进程的理解有帮助。
本片博客会粘贴部分代码,想要了解更多代码信息,可访问小编的GitHub关于本篇的代码

进程概念

  • 课本概念:程序的一个执行实例,正在执行的程序等
  • 内核观点:担当分配系统资源(CPU时间,内存)的实体
  • 一个具有以下特征的活动单元:一组指令序列的执行,一个当前状态和相关的系统资源的集合。
    站在操作系统的角度看进程是PCB(进程控制块:每一个进程的描述都是一个结构体)

进程控制块PCB

Linux下的PCB有它专有的名字task_struct, task_struct内容包括

  • 标示符: 描述本进程的唯一标示符,用来区别其他进程。、
  • 进程状态:运行状态(R)、可中断睡眠状态(S)、不可中断死亡状态(D)、停止状态(T)、僵尸状态(Z)
  • 优先级: 相对于其他进程的优先级。
  • 程序计数器: 程序中即将被执行的下一条指令的地址。
  • 内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
  • 上下文数据: 进程在自己的时间片用完后,会把进程当前状态存储在PCB中,以供下次再次被CPU处理。单核CPU任何时刻都只有一个进程在被处理,进程在Run状态表明当前进程可被CPU调度。
  • I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。

虚拟地址空间

物理寻址和虚拟寻址
一个系统的进程共享内存和CPU资源,为了更加有效地管理内存并且少出错,现代系统提供了一种对主存的抽象概念,叫做虚拟内存。
虚拟内存为每一个进程提供了一个一致的地址空间,从而简化了内存管理,它保护了每个进程的地址空间不被其它进程破坏。

物理地址:计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组。每一个字节都对应唯一的物理地址。
物理寻址:CPU访问内存的最自然的的方式就是使用物理地址,这种方式被称为物理寻址,早期的PC使用物理寻址。
Linux下虚拟内存地址空间如图所示
这里写图片描述
页表:虚拟地址空间实际是一个结构体struct_mm
记录虚拟地址与物理地址之间的映射关系
内存的访问控制
这里写图片描述
通常情况下父子进程代码共享,数据也共享,当有一方写操作时,便以写时拷贝的方式各自备有了数据段。
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值