进程管理——进程概念

并发/分时环境

程序运行在并发环境中的问题

  • 运行过程不确定
  • 结果不可再现(程序运行被干扰)
  • 解决方案:对运行过程施加相互制约

 

一、进程概念

进程:描述和管理程序的“运行过程”

定义:

  • 进程是程序在某个数据集合上的一次运行活动
  • 数据集合:软/硬件环境,多个进程共存/共享的环境

特征:

动态性

  • 进程是程序的一次执行过程,动态产生/消亡

并发性

  • 进程同其他进程一起向前推进

异步性

  • 进程按各自速度向前推进

独立性

  • 进程是系统分配资源和调度CPU的单位

 

进程与程序的区别

动态与静态

  • 进程是动态的:程序的一次执行过程
  • 程序是静态的:一组指令的有序集合

暂存与长存

  • 进程是暂存的:在内存驻留
  • 程序是长存的:在介质上长期保存

程序和进程的对应

  • 一个程序可能有多个进程

 

进程的类型

按使用资源的权限

  • 系统进程
  • 用户进程

按对CPU的依赖

  • 偏CPU进程:计算型进程
  • 偏I/O进程

其他标准

 

二、进程状态

进程状态

运行状态

  • 进程已经占有CPU,在CPU上运行

就绪状态

  • 具备运行条件但由于无CPU,暂时不能运行

阻塞状态(等待状态)

  • 因为等待某项服务完成或信号不能运行的状态

 

进行状态的变迁

进程的状态可以依据一定的条件相互转化

 

Linux进程的状态

  • 可运行态:将就绪和等待放在一起
  • 阻塞(等待)态

                    浅度阻塞(可中断):能被其他进程信号或时钟唤醒

                    深度阻塞(不可中断):不能被其他进程信号或时钟唤醒

  • 僵死态:进程终止执行,释放大部分资源
  • 挂起态:进程被挂起

 

三、进程控制块(PCB)

进程控制块

  • 描述进程状态、资源、和与相关进程的关系的数据结构
  • PCB是进程的标志 
  • 创建进程时创建PCB,进程撤销后PCB同时撤销

进程=程序+PCB

PCB中的基本成员

  • name(ID):进程名称(标识符)
  • status:状态
  • next:指向下一个PCB的指针
  • start_addr:程序地址
  • priority:优先级
  • cpu_status:现场保留区(堆栈)
  • comm_info:进程通信
  • process_family:家族
  • own_resource:资源

 

Linux的进程控制块PCB:task_struct

  1. 进程状态
  2. 调度信息
  3. 标识符
  4. 内部进程通信信息
  5. 链接信息
  6. 时间和计时器
  7. 文件系统
  8. 虚拟内存信息
  9. 处理器信息

 

进程的切换

进程的上下文

  • Context,进程运行环境,CPU环境

进程切换过程

  • 换入进程的上下文,进入CPU(从栈上来)
  • 换出进程的上下文,离开CPU(到栈上去)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值