OS_process_threading

进程

  • 定义:

    • 发展历史中,为了解决什么问题而引入“进程”
    • 程序:
      • 就是一个指令序列,早期计算机只支持单道程序
      • 程序的代码放在程序段内,程序运行过程处理的数据放在数据段内(变量)
      • 引入多道程序后,为方便OS管理,完成各程序并发执行,引入进程实体概念,
    • 进程实体又叫进程映像简称进程
      • 问题:内存中同时放入多道程序,各个程序的代码,运算数据存放的位置不同.OS要如何寻找各程序的存放位置?
      • 答:PCB是系统为每个运行程序配置的一个数据结构,用于描述进程的各种信息(如存放程序代码的位置)
    • 所谓创建进程,实质上hi创建进程实体中的PCB;而撤销进程,实质上是撤销进程实体中的PCB
    • 角度不同,定义不同,传统定义有:
      • 进程是程序的一次执行过程
      • 程序及其数据在处理机上顺序执行时所发生的活动
      • 具有独立功能的程序在数据集合上运行的过程,系统进行资源分配和调度的一个独立单位(“动态性”)
    • 引入进程实体后,可定义为:
      进程是进程实体的运行过程,是系统进行资源分配调度的一个独立单位
    • 严格来说进程实体和进程并不一样,进程实体是静态的,进程是动态的。不过除非题目专门考察二者区别,否则可以认为进程实体就是进程。
  • 组成

    • 每个进程由那些部分组成
    • PCB (进程控制块,Process control block)
      • OS通过PCB来管理进程,因此PCB中应该包含OS对其进行管理所需的各种信息
      • 进程的描述信息
        • 进程标识符 PID
          • 当进程被创建时,OS会为该进程分配一个唯一不重复的ID,区分进程
        • 用户标识符 UID
      • 进程控制和管理信息
        • 进程当前状态
        • 进程优先级
      • 资源分配清单
        • 程序段指针
        • 数据段指针
        • 键盘
        • 鼠标
      • 处理机相关信息
        • 各种寄存器值
          • 当进程切换时需要用保存并记录当前状态,存放到PCB中,如程序计数器的值标识当前程序执行到那一句
    • 程序段
      • 程序代码存放的位置,存放要执行的代码
    • 数据段
      • 程序运行时使用,产生的运算数据。如全局变量、局部变量、宏定义的常量。(程序本身的运行所需的数据)
  • 组织方式

    • 系统中各个进程之间如何被组织起来的
    • 进程的组成讨论的是进程内部由那些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题
    • 进程的组织方式
      • 链接方式
        • 按照进程状态将PCB分为多个队列
        • OS持有指向各个队列的指针
          在这里插入图片描述
      • 索引方式
        • 根据进程状态不同,建立几张索引表
        • OS持有指向各个索引表的指针
          在这里插入图片描述
  • 特征

    • 相比于程序的特点
    • 动态性(进程最基本的特征)
      • 进程是程序的一次执行过程,是动态的产生、变化和消亡的
    • 并发性
      • 内存中有多个进程实体,各进程可以并发执行
    • 独立性
      • 进程能独立运行,独立获得资源,独立接受调度的基本单位
    • 异步性
      • 各进程按各自独立的、不可预知的速度向前推进,OS要提供“进程同步机制”来解决异步问题
      • 异步性会导致并发程序执行结果的不确定性。
    • 结构性
      • 每个进程都会配置一个PCB。结构上看,进程由PCB,程序段,代码段组成
        在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值