抽象:进程

抽象:进程

进程的非正式定义:
运行中的程序

时分共享(time sharing)CPU技术:
通过让一个进程只运行一个时间片,然后切换到其他进程,提供存在多个虚拟CPU的假象,允许用户运行多个并发进程。潜在开销是性能损失。

机制(mechanism)和策略(policy):
机制是一些低级方法或协议,实现所需的功能,解决“how”问题。
策略是在操作系统内做出某种决定的算法,解决“which”问题。
分离:将两者分开可以轻松改变策略,而不必重新考虑机制,因此这是一种模块化(modularity)的形式,一种通用的软件设计原则。

1. 抽象:进程概念

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

进程的机器状态(machine state):
程序在运行是可以读取或更新的内容,包括内存、寄存器和存储设备。

2. 进程API

操作系统的所有接口必须包含:

  • 创建(create)
  • 销毁(destroy)
  • 等待(wait)
  • 其他控制(miscellaneous control)
  • 状态(status)

3. 进程创建:更多细节

步骤:

  1. 将代码和所有静态数据加载到内存中,加载到进程的地址空间中。
  2. 为程序运行时栈(run-time stack)和程序的堆(heap)分配内存。
  3. 执行初始化任务,特别是与输入/输出(I/O)相关的任务。
  4. 启动程序,在入口处运行,即 mian()。
    加载:从程序到进程

跳转到 mian() 例程后,OS将CPU的控制权转移到新创建的进程中,从而程序开始执行。

4. 进程状态

进程可以处于以下三种状态之一:

  • 运行(runing):
    程序在处理器上运行,执行指令。
  • 就绪(ready):
    进程准备好运行但不在此时运行,可能CPU被占用。
  • 阻塞(blocked):
    进程执行某种操作,如从磁盘读取数据或等待网络数据包,直到发生其他事件才准备运行。此时其他进程可以使用处理器。
    进程:状态转换

5. 数据结构

data structure
操作系统有一些关键的数据结构来跟踪各种相关的信息。
如:进程列表(process list)

猜你喜欢

转载自blog.csdn.net/qq_39389123/article/details/112798483