线程、进程基础知识

本文为学习小林coding《图解操作系统系列》总结,详细内容请移步原文https://blog.csdn.net/qq_34827674/article/details/107305756

进程

进程描述:

    当我们编写的程序编译成可执行文件,运行后cpu就会执行我们程序中的指令,这个运行的程序就称为进程。我们的cpu不可能只运行一个程序,当我们的程序在等待资源或者其他原因暂时不能执行,那么cpu就要一直等待进程执行结束再去处理其他的工作,此时就会造成资源的浪费,所以我们可以在一个进程等待资源的时候,让cpu去处理其他的进程,等到原来的进程具备运行条件的时候,再来处理这个程序,这种多个程序交替执行的思想就是cpu管理多个进程的初步想法。

进程 1 与进程 2 切换

    多进程的操作系统,cup会在进程间切换执行,每个进程各运行几十后者几百个毫秒。这种虽然每个时间点只有一个程序在运行,但一个时间段内,可能会运行多个进程的方式称为并发,而同一时间点两个程序同时运行的方式称为并行。

并发与并行

进程的状态:

    一个进程在活动期间至少具备三种状态:

  • 运行状态(Runing):该时刻进程占用 CPU;
  • 就绪状态(Ready):可运行,但因为其他进程正在运行而暂停停止;
  • 阻塞状态(Blocked):该进程正在等待某一事件发生(如等待输入/输出操作的完成)而暂时停止运行,这时,即使给它CPU控制权,它也无法运行;

进程的三种基本状态

此外,进程还有两个基本的状态:

  • 创建状态(new):进程正在被创建时的状态;
  • 结束状态(Exit):进程正在从系统中消失时的状态;

一个完整的进程状态的变迁如下图:

进程五种状态的变迁

    以下各个状态的变化比较同意理解,知道了各个状态的含义,两个状态之间的变化经过哪些条件就可以知道了:

  • NULL -> 创建状态:一个新进程被创建时的第一个状态;
  • 创建状态 -> 就绪状态:当进程被创建完成并初始化后,一切就绪准备运行时,变为就绪状态,这个过程是很快的;
  • 就绪态 -> 运行状态:处于就绪状态的进程被操作系统的进程调度器选中后,就分配给 CPU 正式运行该进程;
  • 运行状态 -> 结束状态:当进程已经运行完成或出错时,会被操作系统作结束状态处理;
  • 运行状态 -> 就绪状态:处于运行状态的进程在运行过程中,由于分配给它的运行时间片用完,操作系统会把该进程变为就绪态,接着从就绪态选中另外一个进程运行;
  • 运行状态 -> 阻塞状态:当进程请求某个事件且必须等待时,例如请求 I/O 事件;
  • 阻塞状态 -> 就绪状态:当进程要等待的事件完成时,它从阻塞状态变到就绪状态;

    处于阻塞状态的进程会占用物理内存,所以虚拟内存管理的操作系统中,通常会把阻塞状态的进程换出到硬盘,等到再次运行时候,在从硬盘换到物理内存:

虚拟内存管理-换入换出

    这种没有占用实际物理内存的情况,就是挂起状态,不同于阻塞状态,阻塞是等待某个时间的返回。挂起状态分为两种:

  • 阻塞挂起状态࿱
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值