扫盲--进程和线程

一、进程


进程的概念:
1.程序不可能单独运行,只有将程序加载在内核中,系统为他分配资源才可以运行,而这种执行的程序称之为进程。
2.程序和进程区别:程序是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多套编程中,我们允许多个程序加载到内存中,在操作系统的调度下,可以实现并发执行。
3.优点:大大提高了CPU的使用率。进程的出现让每个用户感觉自己独享CPU,因此,进程是为了在CPU上实现多道进程而提出的。
4.缺点:
一条进程在同一时间只干一件事,如果需要同时完成两件事,进程就不行了
进程如果在执行过程中阻塞。例如等待输入,整个进程都会被挂起,及时进程中有些工作不需要等待数据输入,也无法执行。
例如:在使用QQ时,qq作为一个独立的进程如果同时只能干一件事,就无法实现同时发送接收消息。

线程的概念:

线程是操作系统能够进行运算调度的最小单位。他被包含在进程之中,是进程中的实际运行单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发执行多个线程,每条线程执行不同的任务。
线程,有时也被称为轻量级进程,是程序执行流的最小单元。
一个标准的线程由线程ID、当前指令指针、寄存器集合和堆栈组成。
线程是一个实体,是系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但他可与同属一个进程的其他线程共享进程所拥有的全部资源。
一个线程可以创建和撤销另外一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现间断性。
线程状态:
就绪:就绪指线程具备运行的所有条件,逻辑上可以运行,在等待处理机。
运行:指线程占用处理机正在运行
阻塞:线程在等待一个事件(如某个信号量),逻辑上不可运行。
每一个进程都至少有一个线程,若程序只有一个线程,那就是程序本身。
线程是程序中一个单一的顺序控制流。进程内一个相对独立的、可以调度的执行单元,是系统独立调度和分派cpu的基本单位只运行程序的基本单位。
在单个程序中同时运行多个线程来完成不同的工作,成为多线程。

线程与进程的区别:

进程是资源分配的基本单位。所有与该进程相关的资源,都被记录在进程控制块PCB中。用来表示该进程拥有这些资源或者正在使用他们。
进程是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程中的不同线程共享同一地址空间。
与进程相比较,线程与资源分配无关,它属于某一个进程,并与进程内的其他线程共享进程的资源。
线程只由相关堆栈(系统栈和用户栈)寄存器和线程控制表TCB组成。寄存器用来存储线程内的局部变量,但不能存储其他线程的相关变量。
通常在一个进程中可以包含若干个线程,它们可以利用进程中的所有资源。在引用线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程小,基本不拥有系统资源,故对他的调度所付出的调度开销小的多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。

总结:

1.对于地址空间和其他资源:进程间相对独立。同一进程的各线程间共享。某进程内的线程其他进程不可见。
2.通信:进程间通信需要进程同步和互斥手段辅助,以保证数据的一致性。同一进程间的线程共享数据。
3.调度和切换:线程上下问切换比进程上下文切换要快的多。
4.在多线程中,进程不是一个可执行的实体。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值