线程的概念及实现

线程的概念及实现

1.线程的定义


  线程是基于进程的一个执行单位或进程内一个可调度的实体,一个进程可以有一个或多个线程,这些线程共享进程所拥有的全部资源,但是每个线程有自己运行中必不可少的资源(线程组成:程序计数器、一组寄存器和栈),线程可以称为轻量级的进程。
              在这里插入图片描述

2.线程的属性


  1.独立调度的基本单位

  2.可并发执行。

  共享进程资源。

  轻型实体。

3.线程的类型


  对于进程,无论是系统进程还是用户进程,在进行切换时都要依赖内核中进程调度,因此,无论什么进程都与内核有关,但对线程来说可以分为两类:

  1.用户初线程:线程仅存在用户级中,对于这种线程的创建、撤销和切换,不利用系统调用来实现,即无须通过中断进入os内核,因而这种线程与内核无关,其切换速度特别快。

  2.内核支持线程:线程依赖于os的内核,线程的创建、撤销及切换都是由os内核来实现的。在内核中保留没给安城的线程控制块(TCB),用于对该线程控制和管理。
    在这里插入图片描述

4.进程同步


  概念:多道程序系统中进程是并执行的,这些进程之间存在着不同的相互制约关系,为了协调这些进程之间的相互制约关系,就需要实现进程的同步。
        在这里插入图片描述

  1.临界资源

  在计算机中有许多资源一次只能允许一个进程使用,如果有多个进程同时去使用这类资源就会引起激烈的竞争。因此必须保护这些资源,避免两个或多个进程同时访问这类资源。

  解决办法:一旦分配资源就一直为他所占有,一直到使用完才释放该资源。
  临界资源:我们把一次仅允许一个进程使用的资源为临界资源。如:独享设备、内存中的公共数据结构、公共变量等都是临界资源。

  访问临界资源算法描述利用锁机制实现

  锁:在同步机构中,常用一个变量来代表临界资源的状态,并称它为锁。

  表示方法:0-资源可用,1-资源已被占用

  关锁操作:进程使用临界资源之前必须完成下列动作:

  1.考察锁位的值1或0;

  如果原来的值为0,将锁位置成1(表示占用资源);

  如果原来的值是1(即资源已被占用)则返回第一步再考察。

  2.临界区

  在每个进程中,访问临界资源的那段程序成为临界区。进程一旦进入临界区,就必须能够实现对资源的独占使用。

  用户编程时,并不确定变成是否是临界区,对临界区的判定是由操作系统来进行的。

  流程
在这里插入图片描述

  3.同步定义(两层含义)

   1.各进程互斥访问临界资源。(互斥访问)

   2.各进程在执行次序上的协调关系。(同步制约)

  4.同步机制应遵循原则(访问临界区):

   1.空闲则入:当无进程在互斥区时,任何有权使用互斥区的进程可进入。

   2.忙则等待:不允许两个以上的进程同时进入互斥区。

   3.优先等待:任何进入互斥区的要求应在有限的时间内得到满足。

   4.让权等待:不能进入临界区的进程,应释放cpu(如转换到阻塞状态)

2.信号量机制


  P/V操作


    由P操作原语和V操作原语组成,其意义是在一个整型变量S上定义两个操作,该整型变量称为信号量,只能由P操作和V操作进行修改。

    P操作
    P操作记为P(S),其中S为信号量,执行时主要完成的动作:S=S-1 ,若S>=0,则进程继续执行。若S<0,则该进程被阻塞,并将它插入该信号量的等待队列中。

    V操作
    V操作记为V(S),其中S为信号量,执行时主要完成的动作:S=S+1,若S>0,则进程继续执行。若S<=0,则从信号量等待队列中移出第一个进程,使其变为就绪状态,然后再返回原进程继续执行。

    注意:使用P/V操作,信号量的入口值非常重要,它关系着进程是否进入等待状态,或者是否被唤醒。信号量一般是指资源数量。
  在这里插入图片描述

1.信号量的值


    使用P/V操作,信号量的入口值非常重要,它关系着进程是否进入等待状态,或者是否被唤醒。

    信号量的物理意义:信号量大于零,表示可用资源的数目,信号量小于零,其绝对值为请求资源而被阻塞的进程数目。


    互斥:信号量S的值为临界资源数。若只有一个临界资源,则S=1,若10个则S=10.

    同步:信号量S的值为0,即S=0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值