进程的知识

进程知识

1.进程和程序的区别:

  • 程序是静态的,它是保存在磁盘上的指令的有序集合,没有任何执行的概念
  • 进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和销毁的整个过程

2.进程的执行方式:

  • 并行执行 : 表示多个任务能够同时执行,依赖于物理的支持,比如 cpu 是 8 核芯,则可以同时执行 8 个任务

  • 并发执行 (重点): 在同一时间段有多个任务在同时执行,由操作系统调度算法来实现,比较典型的就是时间片轮转
    在这里插入图片描述

3.进程的空间分配 :

  • 进程建立之后,系统则要为这个进程分配相应的空间,32位Linux系统中,会为每个进程分配 4G 的空间。4G的进程空间主要分为两部分,高位1G是内核空间,低位3G是用户空间。

在这里插入图片描述
用户空间又具体分为如下区间:
在这里插入图片描述

  • stack : 存放非静态的局部变变量
  • heap : 动态申请的内存
  • bss : 未初始化过的全局变量(包括初始化为0的,未初始化过的静态变量(包括初始为0)
  • data : 初始化过并且值不为0的全局变量,初始化过的不为0静态变量
  • rodata : 只读变量(字符串之类)
  • txt : 程序文本段(包括函数,符号常量)

4.进程的状态管理

进程的状态管理的三态模型:

一个进程从创建而产生至撤销而消亡的整个生命期间,有时占有处理器执行,有时虽可运行但分不到处理器、有时虽有空闲处理器但因等待某个事件的发生而无法执行,这一切都说明进程和程序不相同,它是活动的且有状态变化的,这可以用一组状态加以刻画。为了便于管理进程,一般来说,
按进程在执行过程中的不同情况至少要定义三种不同的进程状态:
(1)运行(running)态:进程占有处理器正在运行。
(2)就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行。
(3)等待(wait)态:又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件
**
正在等待某个事件的完成。通常,一个进程在创建后将处于就绪状态。每个进程在执行过程中,任意时刻当且仅当处于上述三种状态之一。同时,在一个进程执行过程中,它的状态将会发生改变。引起进程状态转换的具体原因如下:
(1)运行态一一等待态:等待使用资源或某事件发生,如等待外设传输;等待人工干预。
(2)等待态一一就绪态:资源得到满足或某事件己经发生,如外设传输结束;人工干预完成。
(3)运行态一一就绪态:运行时间片到,或出现有更高优先权进程。
(4)就绪态一一运行态:CPU空闲时被调度选中一个就绪进程执行。

在这里插入图片描述

进程的状态管理的五态模型:

***(1)运行态(TASK_RUNNING) : 此时进程或者正在运行,或者准备运行,就绪或者正在进行都属于运行态
(2)睡眠态(TASK_SLEEP): 此时进程在等待一个事件的发生或某种系统资源

  • 可中断的睡眠(TASK_INTERRUPT) : 可以被信号唤醒或者等待事件或者资源就绪
  • 不可中断的睡眠(TASK_UNTERRUPT) : 只能等待特定的事件或者资源就绪
    (3)停止态(TASK_STOPPED) : 进程暂停接受某种处理。例如:gdb调试断点信息处理。
    (4)僵尸态(TASK_ZOMBIE):进程已经结束但是还没有释放进程资源***
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值