Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1213862
  • 博文数量: 298
  • 博客积分: 10050
  • 博客等级: 上将
  • 技术积分: 3277
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-14 13:36
文章分类
文章存档

2015年(7)

2012年(1)

2010年(5)

2009年(55)

2008年(73)

2007年(160)

我的朋友

分类:

2007-10-23 13:23:05

进程上下文是什么意思
   
当一个进程在执行时,CPU的所有寄存器中的值进程的状态以及堆栈中的内容被称为该进程的上下文。当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的上下文,以便在再次执行该进程时,能够得到切换时的状态执行下去。在LINUX中,当前进程上下文均保存在进程的任务数据结构中。在发生中断时,内核就在被中断进程的上下文中,在内核态下执行中断服务例程。但同时会保留所有需要用到的资源,以便中继服务结束时能恢复被中断进程的执行。

 

进程和线程

    进程:可并发执行的程序在一个数据集合上的运行过程,是程序的一次执行。

进程是一个可执行的程序,由私有虚拟地址空间代码数据其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。

线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并发地执行;一个进程的所有线程共享它的虚拟地址空间、全局变量和操作系统资源。

之所以有线程这个概念,是因为以线程而不是进程为调度对象效率更高:

  • 由于创建新进程必须加载代码,而线程要执行的代码已经被映射到进程的地址空间,所以创建、执行线程的速度比进程更快。
  • 一个进程的所有线程共享进程的地址空间和全局变量,所以简化了线程之间的通讯。

 

比较:

进程引入目的:使每个程序并发执行,提高资源利用率&系统吞吐量

线程引入目的:减少程序并发执行时所付出的时空开销(资源的分配、回收)

 

 

进程

线程

调度

资源拥有的基本单位

被系统独立调度和分派的基本单位

并发性

进程可并发执行

一个进程中多个线程也可并发执行

拥有资源

进程拥有自己的资源

共享其隶属进程的全部资源(自己的:栈、寄存器等)

系统开销

开销大

创建&撤销:分配回收系统资源

切换:CPU环境保护

开销小

切换:保存设置少量寄存器内容

阅读(1217) | 评论(0) | 转发(1) |
0

上一篇:引用和指针的比较

下一篇:虚拟局域网

给主人留下些什么吧!~~