Linux进程和进程边界

1. 进程和线程

2. 手机操作系统的发展

3. 进程的地址空间边界

4. 进程边界的安全围栏: Crash的不可扩延性

5. 进程边界的安全围栏: 全局数据和服务的不可访问性

http://www.jikexueyuan.com/course/25.html

---------------------------------

1. 进程和线程

    可执行文件: 就是一个文件,不活动就是普通文件, binary

    进程: 可执行文件的running,一次运行。

    线程: CPU(核)的调度单位,进程的内部的 并发任务调度

               单核CPU的并发: 伪并发,时间片的调度

                多核CPU的并发:物理意义上的真正并发

    资源和调度:进程 是资源的基本分配单位,独立的地址空间,堆,stack

                     线程:没有独立的地址空间,只有独立的stack,和独立的时间片调度

 

2. 手机操作系统的发展

    Feature Phone时代: 单进程多任务(线程)的非智能系统, 一个线程就是一个应用。封闭的,应用只能通过J2ME扩展

    Smart Phone时代: 多进程多任务 的智能系统,开放的,应用可扩展

 

3. 进程的地址空间边界

    物理内存:一块固定的内存,如上图中最下方

    每个进程都有 0~4G的虚拟内存(地址空间),其中3~4G的地址都映射到同一块物理内存(这块内存就是Kernel sapce)

          0~3G(head, stack,..) 的映射的物理地址都是独立的,不一样的(但并不一定是连续的)

 

4. 进程边界的安全围栏: Crash的不可扩延性

   地址空间的独立 的好处

   一个进程的Crash 不会导致 其他进程 或者 系统 的Crash。

   ANR: UI block 时间过长

   Force Close: 进程意外终止

 

    Kernel Crash 或者 Filesystem Crash那么整个 OS就crash了, 具有扩延性。手机蓝屏或重启

    比Feature Phone好多了,Feature Phone 一个应用Crash整个系统Crash

  

5. 进程边界的安全围栏: 全局数据和服务的不可访问性

    每个Application的0~3G的地址空间独立的,

    别的Application即使知道了当前应用的函数地址,别的App也读不到,因为app地址映射到了不同的物理内存

      

   

 

posted @ 2015-08-26 17:26  carlo-z  阅读(411)  评论(0编辑  收藏  举报