IT铁人
Process就是前面提到的Job跟Task,Process是执行中的程序。
当Process被建立时,主要组成包括下列:
Section | 内容 |
---|---|
Code Section(Text Section) | 就是Program code部分。 |
Data Section | Containing the global variables。 |
Stack | 包含temporary data(例如Function Parameters、Local variables、return address)。 |
Heap | 包含Memory dynamically allocated during run time(例如pointer变数的需求空间)。 |
Programming counter & other registers | 会有下一条指令的所在位置。 |
Process的内容在Memory中如下:
Memory会分配一块区间给Process,而最低的放Code Section跟Data Section,之後heap往上长而Stack由上往下长。
PCB的全名是Process Control Block,就是在Process被建立时,kernel会建立一个表格,纪录有关该Process的资讯,以便之後切换不同process时还可以正常运作。
PCB主要纪录的资讯有:
项目 | 内容 |
---|---|
Process NO. | unique Process ID. |
Process State | ready, new, running, wait state,etc. |
CPU Register | accumulator, Stack Top pointer, Index register,etc. |
CPU Scheduling Info | process优先权值, PCB pointer,etc. |
Memory Management Info | Base limit register值 or page Table or Segment Table, base on OS memory management. |
Program Counter | Next instruction address. |
Accounting Info | Process使用CPU Time的最大值, 目前使用了多少CPU Time, 多少资源, etc. |
I/O-Status Info | 目前配给process之I/O-Device为何,已发出哪些I/O-request,完成多少I/O-request,etc. |
前面说纪录PCB的目的就是为了能够切换不同的process,所以每个Process都会需要在不同的state中切换,就有了以下的State Transition Diagram:
建立好Process後,分配完Memory後进入ready state,拿到CPU後进入running state,中间会来回切换执行别的process,执行完成之後就terminated,如果执行中间需要进行I/O或是意外状况,则进入waiting state等待完成。
这种类型的State Transition Diagram是考虑了Memory不够的状况,这时候有些process会swap进入disk,等到Memory够用或是该轮到他的时候再从disk移出来。
提到了process会轮流执行,那麽就要介绍有甚麽挑选process的方式,以下会介绍三种Scheduler:
种类 | 内容 |
---|---|
Long-Term Scheduler | 又称为Job Scheduler,目的在於从Job Queue中抓Job进入Memory中以便执行。因为执行的频率最低,所以称为Long-Term。 |
Short-Term Scheduler | 又叫做CPU Scheduler或Process Scheduler。目的在於从Ready Queue中抓Process给CPU执行。因为执行频率最高,所以称为Short-Term。 |
Medium-Term Scheduler | 当Memory空间不够时,要把Process swap out到disk中,直到空间足够时再将Process swap in到Memory。因为执行频率在中间,所以称为Medium-Term。 |
这边介绍了PCB以及会有不同的State,後面会介绍在切换不同的process时会发生甚麽事情,以及一些酷东西XDD
上一篇 | 下一篇 |
---|---|
System Call & OS架构 | Child Process |
>>: Day.24 提升大数据资料管理 - 资料表分区 ( MYSQL Partition)
在 OpenTelemetry 中有提到 trace 的概念。而 Trace 由多个 Span 组成...
不知不觉已经到了这个挑战的终点,现在回头看,应该有比刚开始的自己更进步了吧! 想当初参加这比赛时,因...
前言 该系列是为了让看过Vue官方文件或学过Vue但是却不知道怎麽下手去重构现在有的网站而去规画的系...
前言 从上周末开始到周三,除了学习老师教的观察者模式(Observer Pattern)和几种排序方...
新增日历的功能 点选日期,可以让区间内的Cell的颜色变成灰色 让操作可以更直觉 在didselec...