您的位置:首页 > 其它

进程和线程

2016-08-09 14:04 246 查看

概述

作为操作系统中的两个基础性以及极易混淆的概念,有必要再深化理解

这两个概念比较抽象,不易理解,所以用下面这篇博客中的例子来理解 http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

将CPU(单核)比作一个工厂,进程比作车间,线程比作运作的工人们,进程提供共享内存区域(车间空间、资源等等);此外,线程还有自己独享的内存空间(堆栈和局部变量)。

总结

一个进程包含若干个(0,1,多个)线程,线程可由进程创建也可由线程创建!

进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关;进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。

线程:网络或多用户环境下,一个服务器通常需要接收大量且不确定数量用户的并发请求,为每一个请求都创建一个进程显然是行不通的——无论是从系统资源开销方面或是响应用户请求的效率方面来看。因此,操作系统中线程的概念便被引进了。线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位

进程的执行过程是线状的,尽管中间会发生中断或暂停,但该进程所拥有的资源只为该线状执行过程服务。一旦发生进程上下文切换,这些资源都是要被保护起来的。进程有 一个进程控制块 PCB ,线程的改变只代表了 CPU 执行过程的改变,而没有发生进程所拥有的资源变化。除了 CPU 之外,计算机内的软硬件资源的分配与线程无关,线程只能共享它所属进程的资源。

进程拥有一个完整的虚拟地址空间,不依赖于线程而独立存在;反之,线程是进程的一部分,没有自己的地址空间,与进程内的其他线程一起共享分配给该进程的所有资源。

适用场景

线程可以有效地提高系统的执行效率,在多个任务需要处理机处理时,可减少处理机的切换时间;线程的创建和结束所需要的系统开销也比进程的创建和结束要小得多,所以线程适合多处理机系统、网络系统、分布式系统

但对于某些很少做进程调度和切换的实时系统,则不太适合线程!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  操作系统 线程