进程管理

来源:互联网 发布:淘宝 购物 受伤 索赔 编辑:程序博客网 时间:2024/06/15 20:08

进程就是 a program in execution。

进程的运行由OS控制,包括如何分配存储资源和cpu。存储资源的分配包括代码区、数据区、堆栈区(理论上堆栈区可以达到4G)。

进程的运行过程通过PCB控制,存放运行中的所需要的一切的一切状态,包括process state:new------ready--------------running-------waiting-------terminated。

多个进程产生的多个PCB一般由数组实现(局部性原理),再用一指针指向所有ready的进程。

process creation:典型的树结构:command---》shell process-----》kernel;

process termination:写代码的return实际是返回OS,返回的值要自我约束,没有统一规范。

进程的基本原则是彼此分离,进程和进程的cooperation通过message passing(稍好)、shared memory实现。

c程序打出来的是虚拟地址,不是实际物理地址。


线程的基本原则是共享,除了id、register、stack。出现的最大的意义是,可以使用一个线程实现耗时操作,另一个线程实现对于用户的响应(android比ios耗时的原因?)

线程的实现可以由user thread或者kernel thread级实现,user级显然自我定制程度更好,不与kernel交互因此更有效率,而当一定要与kernel交互的时候,比如io操作,由于OS看到的其实只有一个thread,因此一个user thread阻塞整个都阻塞。


一些对比:                                   线程                                                                              进程

                                                      ie、FF                                                                          chrome

                                                      IIS                                                                                    apache

线程能干的事肯定进程也能干,线程更效率,不管时间和空间;进程更稳定,但开销更大。至于安全,表面上看,进程更安全,但实际因素太多了。                                                                     



原创粉丝点击