计算机利用系统历程(2)

打印 上一主题 下一主题

主题 1022|帖子 1022|积分 3066

系列文章目录

第二章:历程的描述与控制


   文章目录

  

  • 系列文章目录
  • 前言
  • 一、挂起利用的界说:
  • 二、历程状态的转换:
  • 总结
  

前言

    上一节我们讲了介绍了历程的相干概念和基本状态,这段内容我们将详细的扩展挂起利用和历程状态的转换,历程的控制和一点历程同步的内容。下面我们对其进行讲解。


一、挂起利用的界说:

       在很多系统中,历程除了就绪,执行和阻塞三种最基本的状态外,为了系统和用户观察分析历程的必要,还引入了一个对历程的重要利用——挂起利用。当该利用作用于某个历程时,该历程将被挂起,意味着此时该历程除于静止状态。如果历程正在执行,它将暂停执行。若原本就处于就绪状态,则该历程此时暂不担当调理。与挂起利用对应的利用是激活利用。
     简易理解:就是把历程中的内存的内容转移到外存当中。



  • 历程不重要/更重要的历程:挂起利用的一个缘故起因是系统资源(如内存)不足时,利用系统会选择挂起某些历程(可能是那些暂时不重要的历程)以释放资源,从而给更重要或优先级更高的历程提供资源。
  • 内存数据量大时:如果系统的内存不足,可能会将某些历程的状态保存到磁盘(例如交换空间或虚拟内存)中,以释放内存给其他历程使用。这一过程可能是“挂起”利用的一个构成部门,通常陪同有“换出”(swap out)利用。
二、历程状态的转换:

      历程状态转换是利用系统进行资源调理和管理的核心机制。
在典型利用系统中,历程可能处于以下状态:


  • 新建(New)​:历程正在被创建。
  • 就绪(Ready)​:历程已准备好运行,等候CPU时间片。
  • 运行(Running)​:历程正在CPU上执行。
  • 阻塞(Blocked)​:历程因等候事件(如I/O)暂停执行,分为:

    • 活动阻塞(Active Blocked)​:驻留在内存中。
    • 静止阻塞(Suspended Blocked)​:被换出到外存。

  • 挂起(Suspended)​:历程被移出内存,分为:

    • 就绪挂起(Ready Suspended)​:挂起但已满意运行条件。
    • 阻塞挂起(Blocked Suspended)​:挂起且仍在等候事件。

  • 终止(Terminated)​:历程执行完毕或被强制终止。
    这里面其实我想夸大一下运行和就绪的转换,由于在Java当中就绪和运行就是线程中的两种差异的概念

    就绪到运行:

必要调理器选择该历程分配CPU
例子:就绪队列中的历程A被调理器选中,抢占历程B的CPU时间片。
      运行到就绪:



  • 时间片耗尽​(如轮转调理算法)。
  • 更高优先级历程抢占CPU​(如实时利用系统)
     历程A在运行中因时间片用完被中断,回到就绪队列等候下一次调理。
     运行到活动阻塞:

   历程自动或被动等候事件:


  • 发起I/O哀求(如读取磁盘文件)。
  • 哀求互斥锁但锁已被占用。
  • 等候用户输入(如 scanf())。
例子:历程调用 read() 系统调用读取文件,进入阻塞状态直到数据就绪。
        活动阻塞到就绪:

     等候的事件已完成(如I/O完成、锁释放)。
   例子:磁盘I/O完成后,利用系统通过中断唤醒阻塞的历程,将其标志为就绪。
       活动阻塞到静止阻塞:

   系统必要释放内存资源(如内存不足时)。
例子:在Linux中,当OOM Killer(内存不足杀手)触发时,长时间阻塞的历程可能被换出。
      静止阻塞到活动阻塞:



  • 事件完成且历程被换入内存 → 转为活动阻塞。
  • 事件完成且资源足够 → 直接转为就绪。
   

自身理解:
利用系统在资源约束下,通过动态调解历程状态,均衡效率(CPU利用率)、相应速度(延迟)和公平性。



总结

  以上就是今天要讲的内容,我们又复习了一遍历程的全部基本状态及转换。我们接下来会继承更新重中之重的历程的同步,谢谢大家,大家一起努力。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

圆咕噜咕噜

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表