首页 > 系统相关 >操作系统2_进程管理

操作系统2_进程管理

时间:2024-05-24 17:54:07浏览次数:28  
标签:状态 操作系统 管理 程序 调度 PCB 进程 终止

操作系统2_进程管理

文章目录

1. 进程的引入

  • 多道程序设计技术:多道程序同时驻留内存
    • 宏观上并行运行
    • 微观上串行运行
  • 多道程序设计技术带来的问题
    • 程序执行过程的间断性问题
    • 程序执行环境的封闭性问题
    • 程序执行结果的再现性问题
  • 引入进程
    • 描述程序的执行过程,以及分配相关资源

2. 进程概念、特征及状态

2.1 进程的概念

进程process是一个具有一定独立能力的程序在一个数据集合上的一次动态执行过程

它是系统进行资源分配和调度的基本单位

2.2 进程的特征

  • 结构特征/进程映像:进程地址空间的结构划分,如:程序段、数据段、核心段、PCB等([见下3.1](### 3.1 进程组成))
  • 动态性:进程具有动态的地址空间,地址中间的大小和内容都是动态变化的
  • 并发性:指多个进程实体同存于内存中,且能够在一段时间内同时运行
  • 独立性:各进程的地址空间相互独立,除非采用进程间通信手段,否则不能相互影响
  • 异步性:指进程以各自独立的、不可预知的速度向前推进

2.3 进程的状态

进程在从创建到终止的全过程中一直处于一个不断变化的过程;为了刻画进程的这个变化过程,所有操作系统都把进程分成若干种状态,约定各种状态间的转换条件

  • 三种基本状态

    • 就绪状态ready:进程已获得除处理器外的所需资源,目前在等待分配处理器资源,只要分配了处理器进程就可执行
    • 执行状态running
      • 用户态/目态
      • 系统态/内核态/管态
    • 阻塞状态blocked/等待状态/封锁状态/睡眠状态:当进程由于等待I/O操作或进程同步等条件而暂停运行时,其处于阻塞状态;在该条件满足之前,即使把处理器分配给该进程,该进程也是无法继续执行的
  • 三种基本状态间的转换

    image-20240515173953824

    • 进程调度/调度运行dispatch:从就绪进程列表中选择一个进程,进入运行状态
    • 超时timeout:由于用完时间片或高优先级进程就绪等原因导致进程暂停运行
    • 事件等待/等待事件event wait:进程要求的事件未出现而进入阻塞;可能的原因包括:申请系统服务或资源、通信、I/O操作等
    • 事件出现event occurs:进程等待的事件出现,如:操作完成、申请成功等
  • 具有挂起状态的进程状态图

    image-20240515174914674

3. 进程的组成及上下文

3.1 进程组成

  • 程序段:进程执行时的程序代码

  • 数据段:程序执行时所需要的数据

  • 进程控制端PCB:进程存在的标志性数据结构

    • 作用

      • 当操作系统要调度某进程执行时,要从该进程的PCB中查出其现行状态及其优先级
      • 在调度到某进程后,要根据其PCB中所保存的处理机状态信息,设置该进程恢复运行的现场,并根据其PCB中的程序和数据的内存始址找到其程序和数据
      • 进程在执行过程中,当需要和与之合作的进程实现同步、通信或访问文件时,也都需要访问PCB
      • 当进程由于某种原因而暂停运行时,又需将其执行断点的处理机环境保存在PCB中
    • 特性

      • PCB是系统感知进程存在的唯一标志
      • PCB可以被操作系统中的多个模块读或修改,如:调度程序、资源分配程序、中断处理程序、监督和分析程序等
      • PCB全部或部分常驻内存
      • 系统将所有的PCB组织成若干个链表(或队列),存放在操作系统中专门开辟的PCB区内
      • PCB中包含有进程的描述信息、控制信息以及资源信息,是进程动态特有的集中反映
      • 创建一个进程时首先创建其对应的PCB,当一个进程完成功能后,系统释放其PCB,进程随之消亡
      • 系统根据PCB感知进程的存在,通过PCB中所包含的各项变量的变化,掌握进程所处的状态,系统通过修改PCB中相应项的值来调整进程状态和控制进程的活动
    • 其中的信息

      • 进程描述信息:进程标识符process id(进程标识符用于唯一标识一个进程)
        • 内部标识符:在所有的操作系统中,都为每一个进程赋予一个唯一的数字标识符,其通常是一个进程的符号;设置内部标识符主要是为了方便系统使用
        • 外部标识符:由创建者提供,通常是由字母、数字组成,往往是由用户/进程在访问该进程时使用;进程名通常是可执行文件名
        • 用户标识user id:以指示拥有该进程的用户
        • 进程组process group
      • 处理机状态信息:主要是由处理机的各种寄存器中的内容组成的
        • 通用寄存器/用户可视寄存器:是用户程序可以访问的,用于暂存信息,在大多数处理机中,有8-32个通用寄存器,在RISC结构的计算机中可超过100个
        • 指令寄存器:其中存放了要访问的下一条指令的地址
        • 程序状态字PSW:含有状态信息,如:条件码、执行方式、中断屏蔽标志等
        • 用户栈指针:指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址;栈指针指向该栈的栈顶
      • 进程调度信息:一些与进程调度和进程对换有关的信息
        • 进程状态:指明进程的当前状态,作为进程调度和对换时的依据
        • 进程优先级:用于描述进程使用处理机的优先级别的一个整数,优先级高的进程应优先获得处理机
        • 进程调度所需的其他信息:与所采用的进程调度算法有关,如:进程已等待CPU的时间总和、进程已执行的时间总和等
        • 事件:是指进程由执行状态转变为阻塞状态所等待发生的时间,即阻塞原因
      • 进程控制信息
        • 程序和数据的地址:是指进程的程序和数据所在的内存或外存地/首址,以便再调度到该进程执行时,能从PCB中找到其程序和数据
        • 进程同步和通信机制:指实现进程同步和进程通信时必须的机制,如:消息队列指针、信号量等,其可能全部或部分地放在PCB中
        • 资源清单:是一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的列表
        • 链接指针:给出了本进程PCB所在队列中的下一个进程的PCB的首地址
    • PCB链表

      image-20240515182826363

    • 进程控制块的索引

      image-20240515182854595

3.2 进程上下文

  • 进程上下文的定义:进程执行活动全过程的静态描述
  • 进程上下文的内容
    • 进程的用户地址空间内容
      • 正文段
      • 数据集
      • 堆栈
    • 处理器中寄存器内容
    • 该进程相关的核心数据结构
  • 进程上下文的分类
    • 用户级上下文:
      • 用户正文段
      • 用户数据段
      • 用户栈
    • 寄存器级上下文:
      • 程序寄存器
      • 处理器状态寄存器
      • 栈指针
      • 通用寄存器的值
    • 系统级上下文:
      • 进程的静态部分(PCB和资源表格)
      • 由核心栈等构成的动态部分

3.3 进程空间

  • 进程空间的定义:进程中所有能使用的地址集合
    • 所有程序的执行都在自己的进程空间中进行
    • 用户程序、进程的各种控制表格都按一定结构排列在进程空间中
  • 进程空间的大小:进程空间的大小与处理机中指令的地址长度有关
  • 分类
    • 用户空间(用户程序)
    • 系统空间(系统程序)

4. 进程的创建与撤销

4.1 创建进程

  • 进程的创建者
    • 由系统程序创建
    • 由父进程创建
  • 创建进程时机(引起进程创建的事件)
    • 用户登录
    • 作业调度
    • 提供服务
    • 应用请求
  • 进程创建过程
    1. 申请空白PCB
    2. 为新进程分配资源
    3. 初始化进程控制块
    4. 将新进程插入就绪队列

4.2 撤销进程

  • 引起进程终止的事件/时机
    • 正常结束
    • 异常结束
      • 越界错误、保护错误、非法指令、特权指令错误
      • 运行超时、等待超时、算术运算错误、I/O故障
    • 外界干预
      • 操作员或操作系统干预
      • 父进程请求
      • 父进程终止
  • 进程终止方式(谁来终止进程)
    • 由操作系统终止进程
    • 由进程向操作系统发出终止请求,终止进程
  • 进程的终止过程
    1. 根据被终止的进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态
    2. 若该进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度
    3. 若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防它们成为不可控的进程
    4. 将被终止进程所拥有的全部资源,或归还给其父进程,或归还给系统
    5. 将被终止进程(其PCB)从所在队列(或链表)中移出,等待其他程序来搜集信息

5. 进程的阻塞和唤醒

  • 引起程序阻塞的事件
    • 请求系统服务
    • 启动某种操作
    • 新数据尚未到达
    • 无新工作可做
  • 进程阻塞过程
    1. 保存当前进程的CPU现场
    2. 将其状态修改为等待状态
    3. 将其PCB插入对应的等待队列
    4. 转调度程序进行重新调度
  • 进程唤醒过程
    1. 根据唤醒原因,从对应的等待队列中摘下一个PCB
    2. 将其状态修改为就绪状态
    3. 将其PCB插入就绪队列
    4. 转进程调度程序或返回
  • <

标签:状态,操作系统,管理,程序,调度,PCB,进程,终止
From: https://blog.csdn.net/Ausgelebt/article/details/139095480

相关文章

  • 智慧平安小区建设方案:EasyCVR视频+AI能力全面提升小区安全管理水平
    随着城市化进程的加快和科技的不断发展,智慧平安小区建设成为了提升社区治理水平和居民安全感的重要手段。TSINGSEE青犀EasyCVR智慧平安小区平台采集汇总智慧小区各类视频资源基础数据,进行分级分类管理,并为公安、政法、大数据局、街道社区等用户提供数据深度应用服务,可实现基层数据......
  • 夏日采摘季,视频智能监控管理方案助力智慧果园管理新体验
    5月正值我国各地西瓜、杨梅、大樱桃、油桃等水果丰收的季节,许多地方都举办了采摘旅游活动,吸引了众多游客前来体验采摘乐趣。随着采摘的人流量增多,果园的管理工作也面临压力。为了提升水果园采摘活动的管理效果,减少人工巡查成本,TSINGSEE青犀视频推出了一套水果园采摘活动视频智能监......
  • 10-3-前后台进程切换- nice进程优先级-实战screen后台执行命令
    10.3.1Linux后台进程与前台进程的区别前台进程:是在终端中运行的命令,那么该终端就为进程的控制终端,一旦这个终端关闭,这个进程也随着消失。后台进程:也叫守护进程(Daemon),是运行在后台的一种特殊进程,不受终端控制,它不需要与终端交互;Linux的大多数服务器就是用守护进程实现......
  • 如何远程实时查看监控管理员工电脑屏幕?远程查看多台员工电脑屏幕的方法
    现代化企业管理中,远程监控员工电脑屏幕已经成为一种有效的手段,用于提升工作效率、确保信息安全以及维护工作纪律。 而这种事情,也仿佛已经很常见了。那么一般都如何监控的呢? 一、选择合适的远程监控软件1.域智盾域智盾提供实时屏幕查看功能,允许管理员通过直观的......
  • Docker安装Portainer(docker容器管理工具)
    1.拉取镜像dockerpullportainer/portainer-ce:latest2. 启动portainer(默认端口9000)dockerrun-d\--nameportainer\-p9000:9000\--restart=always\-v/var/run/docker.sock:/var/run/docker.sock\-vportainer_data:/data\--privileged=true\portaine......
  • Facebook开户 & Facebook商务管理平台(BM)篇
    Facebook广告投放是如今最受欢迎的网络营销方式之一,它能够帮助企业轻松地将品牌推广到全球各地的潜在客户,提高品牌知名度和销售业绩。但是,对于新手来说,Facebook广告投放的全流程可能会有些复杂和困难。在这之前小编今天先来讲讲Facebook商务管理平台(BusinessManager,简称BM);它......
  • 参数和配置管理:argparse 和 Hydra
    目录参数和配置管理:argparse和Hydraargparse特点示例Hydra特点示例主要区别选择建议参数和配置管理:argparse和Hydraargparse和Hydra是两个用于处理命令行参数和配置管理的Python库。虽然它们都可以用于解析命令行参数,但它们的设计目标和功能有很大的不同。以下是这两个库......
  • Linux系统postdrop服务进程持续增加导致无法登录
    临时解决方案:#servicepostfixstatus#servicesendmailstatus#servicepostfixstop[root@wign~]#ps-ef|grepsendmail|wc-l3038[root@wign~]#ps-ef|greppostdrop|wc-l3162停止postdrop服务,杀掉postdrop的进程#psaux|greppostdrop|grep-vgrep|cut-c9-15|xargs......
  • 关于supervisor的supervisord和supervisorctl及supervisor进程管理中的常用命令
    一、关于supervisor的supervisord和supervisorctl    之前写过几篇supervisor的文章,自己也尝试使用了多次,今天在一台服务器上执行:supervisorctl发现提示unix:///tmp/supervisor.socknosuchfile[dev@dev~]$sudosupervisorctlunix:///tmp/supervisor.socknosuch......
  • MySQL大师课:36秘技解锁数据库性能与管理新高度?
     ......