作业系统L3-行程
行程(Process)–正在执行的程式
行程(Process) VS 程式(Program)
行程(Process):执行中的程式,主动个体程式(Program):储存在硬碟中的可执行档,被动一个程式可能有数个行程行程记忆体结构
文本区(text):程式码,包含PC计数器和暂存器资料
资料区间:包含全域变数
堆积(Heap):动态配置的记忆体
堆叠(stack):区域变数,函式参数
行程状态
new: Process已被建立,取得PCB空间,未载入记忆体ready:Process已在记忆体,等待CPUwaiting: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)︰接收者取回有效讯息或无效资料