进程与线程

以下描述只是作为自己的学习记要和心得!!!!!!

1.进程是系统资源分配的最小单位,进程是受系统保护的一个单位即受保护地对处理器、其它进程(用于进程间通信)、文件和I/O资源(设备和通道)的访问。

2.在支持多线程的系统中,线程是CPU调度和执行的最小单位!!每个线程包含以下部分:
a.线程执行状态(运行、就绪等)
b.在未运行时保存的线程上下文;从某种意义上看,线程看做是进程内的一个被独立操作的程序计数器
c.一个执行栈
d.用于每个线程局部变量的静态存储空间
e.与进程内的其他线程共享的对进程的内存和资源的访问

注意:有些活动影响着进程中的所有线程,操作系统必须在“进程”一级对它们进行管理。例如,“挂起(这里指的是该进程的挂起)”操作涉及把一个进程的地址空间换出内存以及为其它进程的地址空间腾出位置(即此进程被换出内存,将内存空间让给其它进程)。因为一个进程中的所有线程共享同一个地址空间,所以,该进程的所有线程都会被同时挂起。类似的,进程终止会导致进程中所有线程的终止。

3.同一进程内的所有线程共享该进程的状态和资源,并且驻留在同一块用户地址空间中(即进程的用户地址空间),并且可以访问到相同的数据。

4.从性能上看,线程对比于进程有如下重要有点:
a.在一个已有进程中创建一个新线程比创建一个全新的进程所需时间少许多。
b.终止一个线程比终止一个进程话费时间更少。
c.同一个进程内的线程间的切换比进程间切换花费时间更少
d.线程提高了不同的执行程序间通信的效率。在大多数操作系统中,独立进程间的通信需要内核的介入,以提供保护和通信所需要的机制。但是,由于在同一个进程中的线程共享内存和文件,它们无需调用内核就可以相互通信。

5.线程的实现可以分为两大类:用户级线程(User-Level Thread, ULT)和内核级线程(Kernel-Level Thread, KLT)。后者又称作内核支持的线程或轻量级进程。
a.用户级线程:在一个纯粹的用户级线程软件中,有关线程管理的所有工作都有应用程序完成,内核意识不到线程的存在。线程的创建和调度都是通过线程库(线程库是用于用户级线程管理的一个例程包)中的例程来实现,内核只知道进程的概念,所有内核都是以进程为单位进行调度。
相对于内核级线程的优点:
(1)由于所有线程管理数据结构都在一个进程的用户地址空间中,线程切换不需要内核态特权,因此不需要为了线程管理而切换到内核态,这节省了两次状态转换(用户态到内核态;内核态到用户态)的开销。
(2)调度可以是应用程序相关的。一个应用程序可能更适合简单的轮转调度算法,而另一个应用城西可能更适合基于优先级的调度算法。可以做到为应用程序量身定做的调度算法而不扰乱底层的操作系统调度程序。
(3)用户级线程可以在任何操作系统中运行,不需要对底层内核进行修改以支持用户级线程。线程库是一组供所有应用程序共享的应用程序级别的函数。

相对于内核级线程的缺点:
(1)在典型的操作系统中,许多系统调用都会引起阻塞。因此,当用户级线程执行一个系统调用时,不仅这个线程会阻塞,则该线程所在的进程中的所有线程都会被阻塞。
(2)在纯粹的用户级线程策略中,一个多线程应用程序不能利用多处理技术。内核一次只把一个进程分配给一个处理器,因此一个进程中只有一个线程可以执行。事实上,在一个进程内,我们相当于实现了应用程序级别的多道程序。虽然多道程序会使应用程序的速度明显提高,但是同时执行部分代码更会使某些应用程序收益。

b.内核级线程:在一个纯粹的内核级线程软件中,有关线程管理的所有工作都是由内核完成的,应用程序部分没有进行线程管理的代码,只有一个到内核线程设施的应用程序编程接口(API)。Windows就是这种方法的一个例子。
相对于用户级线程的优点:
(1)内核可以同时把一个进程中的多个线程调度到多个处理器中。
(2)如果进程中的一个线程被阻塞,内核可以调度同一个进程中的另一个进程。
(3)内核例程自身也是可以使用多线程的。

相对于用户级线程的缺点:
把控制从一个线程传送到同一个进程内的另一个线程时,需要到内核的状态切换。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值