进程概念

进程控制块(PCB/TCB)

作为下列信息的仓库

  • 进程状态:新的,就绪,运行,等待,停止
  • 程序计数器:下个指令的地址
  • CPU寄存器
  • CPU调度信息:优先级,调度队列
  • 内存管理信息
  • 记账信息:时间等
  • I/O状态信息

进程调度

  • 作业队列:包括所有进程
  • 就绪队列:内存中就绪的,等待运行的继承
  • 设备队列:等待I/O设备的进程

调度程序

通过调度器或者调度程序选择进程

  • 长期调度程序:从缓冲池中选择进程加到内存,以便执行

  • 短期调度程序:从准备执行的进程中选择进程

  • I/O密集型进程:IO多

  • CPU密集型进程:CPu运算多

上下文切换

中断发生时,系统保存当前运行在CPU上的进程的上下文,以便在处理后能够恢复,上下文采用PCB表示,包括CPU寄存器的值,进程状态等。

  • 上下文切换:切换CPU到另一个进程需要保存当前进程状态和恢复另一个进程的状态。

进程运行

进程创建

fork()

每一个进程都用一个唯一的整型进程标识符来标识,通过fork()课创建新进程,子进程调用fork()的返回值为0,父进程返回值为子进程的pid

exec()

调用fork之后,进程使用exec可以用新程序取代进程的内存空间

进程终止

通过exit()进程终止,父进程可通过wait()等待子进程终止,还可通过参数获得子进程的退出状态

进程间通信