进程管理

进程就是 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

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值