抽象:进程

背景

进程的定义:运行中的程序

当有许多进程需要运行时,由于它们都要CPU,所以我们需要提供一种假象:每个进程都独占CPU。操作系统通过虚拟化(virtualizing)CPU来实现这种假象,于是就有了时分共享(time sharing)CPU技术

一个进程运行只运行在一个时间片,然后切换到其他进程

为了更好地实现CPU的虚拟化,操作系统需要一些低级机制以及一些高级智能

低级机制->机制(mechanism)

一些实现了所需功能的 低级方法或协议

高级智能->策略(policy)

在操作系统内做出某种决定的算法

调度策略(scheduling policy)

分离 策略和机制

机制:how解决问题

策略:解决which问题

4.1 抽象:进程

进程(process):操作系统为正在运行的程序提供的抽象

进程的机器状态(machine state)

内存:进程可以访问的内存:地址空间(address space)

寄存器

4.2 进程API

操作系统提供给进程的接口API

创建(create)

操作系统必须包含一些创建新进程的方法

销毁(destroy)

由于存在创建进程的接口,因此系统还提供了一个强制销毁进程的接口

等待(wait)

有时等待进程停止运行是有用的,因此经常提供某种等待接口

其他控制(miscellaneous control)

除了杀死或等待进程外,有时还可能有其他控制

状态(statu)

通常也有一些接口可以获得有关进程的状态信息,例如运行了多长时间,或者处于什么状态

4.3 进程创建:更多细节

程序如何转换为进程?

操作系统如何启动并运行一个程序?

进程创建实际如何进行?

操作系统将代码和所有静态数据加载(load)到内存中,加载到进程的地址空间中

第4章 抽象:进程

接着操作系统创建初始化栈&执行I/O设置相关的其他工作
最后启动程序

4.4 进程状态

运行(running):

在运行状态下,进程正在处理器上运行。这意味着它正在执行指令。

就绪(ready):

在就绪状态下,进程已准备好运行,但由于某种原因,操作系统选择不在此时运行。

阻塞(blocked):

在阻塞状态下,一个进程执行了某种操作,直到发生其他事件时才会准备运行。
第4章 抽象:进程

调度(scheduled)vs 取消调度(descheduled)

更多的状态
第4章 抽象:进程

4.5 数据结构

操作系统是一个程序,它用关键的数据结构;来追踪各种相关的消息。

进程列表(process list):

里面有所有运行的进程

进程控制块(process control block PCB)

第4章 抽象:进程

相关文章: