Filename:[OS] 进程管理简介(一)
Version:V1.0.0
Date:6/3/2010
Author:S.C.Leon
Copyright: 本文可在非商业目的下署名传播和复制。对于商业目的下对本文的任何行为需经作者同意。联系方式:leonsc@126.com
=====================================================================
[OS]进程管理简介(一)
本文主要从OS角度对进程管理这一操作系统的基石进行简要阐述,有兴趣深入的可参阅本文附列参考文献。
本文将从以下三部分展开
o 进程和线程
o CPU调度
o 进程同步
第一部分、进程和线程
1.1进程的概念
o 定义
“什么是进程(process)”。进程是运行着的程序和它所占有的资源。
进程是动态的概念,程序是静态概念。
1.2 进程的组成
o Program counter
o Data section,stack,regs
o State.
1.3进程状态
o 每个操作系统有不同的进程状态的定义,处于不同状态的进程是不同的进程。
1.4进程控制块(Process Control Block,PCB)
下图大致描述了进程控制块的结构
o PCB主要有,指针,进程状态,pid,CPU内部寄存器,内存分配,文件打开情况…
1.5 Multi-programming(多进程)
o 两个以上进程在宏观上同时运行。
o 需要操作系统做context switch
o 目的:尽量多的使用CPU
1.6进程切换
o Context switch 从效率上是overlap(为了实现multi-programming)
o Context switch from process to process
1.7 进程队列管理
o 将同一状态的进程用链表串起来。
o Job queue:系统中运行的进程。
o Ready queue:驻留在内存中,等待执行的进程队列。
o Device queue:等待IO设备的进程队列。
1.8 进程的创建
o Fork
n 子进程和父进程共享所有资源。
n 子进程和父进程同时执行
n 子进程和父进程共享地址空间
o Exec 子进程置换进程代码,即跳到另一个地方执行。
1.9 进程协同
o 进程协同的好处
n Information sharing
n Computation speed-up
n Modularity
n Convience
o 进程协同的问题
n Bounded buffer-Producer Consumer problem
1.10 线程
o 单线程和多线程
o 线程模型
n Many to One
n One to One
n One to Many
参考文献
1.操作系统 电子工业出版社 William Stallings
2.深入理解linux内核 中国电力出版社
3.边干边学-linux内核指导 浙江大学出版社
4.IBM developworks