Chinaunix首页 | 论坛 | 博客
  • 博客访问: 165974
  • 博文数量: 29
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 806
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-05 10:31
个人简介

share your ideas

文章分类

全部博文(29)

文章存档

2015年(1)

2013年(28)

分类: LINUX

2013-08-25 11:39:17

进程的属性:

1.       并发性:进程可以同时并发,相互之间互不干扰。

2.       动态性:进程有完整的生命周期,状态不断变化,动态的地址空间(代码,数据,进程控制块,)。

3.       交互性: 在执行过程中会与其他的进程进行直接或者间接地交互操作,同步和互斥,添加一些进程处理机制。

4.       独立性: 有一个完整的资源分配和调度的基本单位,进程的地址空间是相互独立的,只有采用某些通信机制才能实现进程间的通信。

5.       异步性 :独立,与不可预知性。

进程的类型:

1.       交互进程: 经常与用户交互,花时间等待用户的操作(shell 命令进程,文本编辑器,图形应用程序的运行)

2.       批处理进程: 不必与用户交互,后台运行,(编译,搜索)

3.       实时进程: 时间的调度要求较高,响应时间快,

进程的结构“

1.       指令和数据,程序计数器,处理器的所有寄存器,存储临时数据的进程堆栈,正在处理的进程包含处理器的一切活动。

2.       Linux 是多进程的os 必须分配等待,调度。

3.       所有的进程存放在双向的循环链表中,(进程链表),头是init_task 描述符。每一项类型是task_struct  称为 进程描述符的结构。

进程的状态:

1.       运行,可中断的等待,不可中断的等待,停止太,僵尸态。

进程的小结:

1.       Pid 内核之中唯一的标识一个进程。Short 的字节长度 216次方减1 可以再/proc/sys/kernel/pid_max 来确定。

2.       有一个指向task_struct currnet的指针记录正在执行的进程。

3.       Fork 函数采用的写时复制页技术,内核创建进程时其资源没有没有复制过来,资源的复制仅仅是在需要写入时才复制。此前一直是共享数据。

4.       进程的终止必须保证占用资源的回收。并且通知父进程。Linux 先将其设为僵尸态,进程无法投入运行,他的存在只是为父进程提供死亡的信息。申请死亡。父进程得到进程信息,调用wait 族函数终止进程,子进程占用的多有资源被释放。

5.       进程的内存结构:

a)         . linux  os 采用虚拟内存管理技术,4Gb 的线性虚拟空间。用户看到的和接触的是这虚拟空间。用户(0~ 3GB) 内核空(3GB~ 4GB),不能访问内核空间,只有用户调用系统调用才可以访问内核空间,(用户进程在内核态执行),内核负责地址空间的映射。

b)         . 只读段: 程序源码和只读的数据

c)         数据段: 全局和静态变量。其中可读可写的数据段已经存放在.data段 ,bbs 数据段存放在未初始化数据段(全局和静态变量)。

d)         堆栈段: 系统自动分配,释放,存放函数的参数,局部和返回地址。

e)         堆: 放动程序员态分配的数据,

f)          共享库的内存映射区,动态连接器和共享库的映射区域。

g)         Linux 下的每一个进程都会在/proc 文件系统下与之对应一个目录。

 

Linux 下线程的分类:

1.       用户级线程: 上下文切换问题,调度算法和调度全过程有用户自行选择。Os 提供了一个线程创建,调度,撤销的功能,内核任然只对进程进程进行管理。若某个进程和总的线程调用了一个阻塞的系统调用,进程中的其他线程也同时阻塞。缺点是无法发挥多处理器的优势

2.       轻量级的进程: 内核支持的进程。内核线程的抽象对象。一个线程有多个轻量级的进程,每个轻量级的进程绑定在内核线程上

3.       内核线程: 允许不同进程中的线程按照统一调度方法调度,发挥多处理器的优势。

 

阅读(4223) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~