作业系统L3-行程

作业系统L3-行程

行程(Process)–正在执行的程序

行程(Process) VS 程序(Program)

  • 行程(Process):执行中的程序,主动个体
  • 程序(Program):储存在硬碟中的可执行档,被动
  • 一个程序可能有数个行程

行程记忆体结构

  • 文本区(text):程序码,包含PC计数器和暂存器资料

  • 资料区间:包含全域变数

  • 堆积(Heap):动态配置的记忆体

  • 堆叠(stack):区域变数,函式参数

行程状态

  • new: Process已被建立,取得PCB空间,未载入记忆体
  • ready:Process已在记忆体,等待CPU
  • waiting:Process邓带IO中
  • running:Process取得CPU执行中
  • terminated:完成工作,准备回收PCB

行程控制表(PCB)

    又称任务控制表(task control block)
  • 行程ID:唯一
  • 行程状态︰running或waiting等
  • 程序计数器︰指向下一个要执行指令的位址
  • CPU暂存器:记录在暂存器的值
  • CPU排班相关的资讯:
  • 记忆体管理资讯:
  • 会计资讯
  • I/O资讯

行程排班

伫列

  • 工作伫列(Job queue) –所有行程的集合

  • 就绪伫列(Ready queue)–位於主记忆体中且就绪等待执行的行程

  • 装置伫列(Device queues)–等待某I/O装置的行程

      伫列图(Queuing diagram)
    

排班伫列

  • 长程排班程序(Long-term scheduler,job scheduler):放入Ready queue,控制多元规划程度

  • 短程排班程序(Short-term scheduler,PU scheduler):并将CPU分配给它

  • 中程排班程序(Medium-term scheduler)

  • 行程描述:

    • I/O倾向行程(I/O-bound process):IO花费时间多
    • CPU倾向行程(CPU-bound process):CPU花费多
  • 置换(swapping):从记忆体移除行程,储存到磁碟OR从磁碟回存到记忆体继续执行


Context Switching

  • CPU要从旧行程转到新行程时,在储存装置载入和储存状态
  • Context Switching的转换时间是负担,OS和PCB影响时间

行程产生/结束

  • fork():呼叫新行程
  • exec():新行程取代记忆体空间
  • exit():新行程执行完後,删除自身
  • abort():父行程可以结束子行程的执行
  • wait():子行程输出资料到父行程

行程通讯

合作行程

  • 行能够影响其它行程,或是受到其它行程所影响
  • 好处:(1)资讯共享、(2)加速运算、(3)模组化、(4)方便性
  • 行程间通讯(Inter-Process Communication, IPC)
    • 讯息传递(Message passing)
    • 共用记忆体(Shared memory)
  • 无限缓冲区(unbounded-buffer)对於缓冲区的大小没有限制
  • 有限缓冲区(bounded buffer)假设缓冲区的大小固定

独立行程

  • 无法影响其它行程的执行且不受其它的行程影响

通讯链

  • 构成
    • send(P, message) –传送讯息给行程P
      *** receive(Q, message) –从行程Q接收讯息**
    • port(信箱埠):传送与接收讯息,两个行程共用信箱埠时,它们才可互相联系
  • 操作
    • 产生一个新的信箱埠
    • 经由信箱埠传送并接收讯息
    • 删除一个信箱埠
  • 同步
    • 等待(blocking),同步(synchronous)
      • 等待传送(blocking send)︰传送行程等待,直到讯息被接收
      • 等待接收(blockingreceive)︰接收者等待,直到有讯息出现
    • 非等待(non-blocking)被视为非同步(asynchronous)
      • 非等待传送(non-blocking send)︰传送行程送出讯息後继续执行
      • 非等待接收(non-blocking receive)︰接收者取回有效讯息或无效资料

缓冲器(Buffer)

  • 1.零容量(Zero capacity)–零讯息传送者必须等候接收者(约会)
  • 2.有限容量(Bounded capacity)–有限长度n 的讯息如果链已经填满,那麽传送者必须等待
  • 3.无限制容量(Unbounded capacity)–无限长度传送者不需要等待

<<:  作业系统L2-系统结构

>>:  作业系统L4-执行绪

所学跟工作结合时---我用JS画了12个班级的座位表

来到铁人赛的最後一篇! 走到现在,人生中如果能学以致用,真的很幸福~虽然心中有过无数将网页开发结合到...

Day 26:53. Maximum Subarray (2)

今日题目 题目连结:53. Maximum Subarray 题目主题:Array, Divide ...

Day 7【钱包登入区 - Login Button】Kitten or Ice Cream?

【前言】 先来回顾一下 Day2 Project 分析的使用者流程,今天先来做第一步的 「登入按钮...

[JS] You Don't Know JavaScript [this & Object Prototypes] - Object [番外 - getter/setter]

前言 我们在Object [下]中有提到 getter / setter,由於这个部分在书中的解释是...

TailwindCSS 从零开始 - 自订 addBase 套件

修改基底样式 addBase 专案会使用到很多的标题样式,在不同的页面都会出现,那我就可以订一个套...