系统软件最基本的是操作系统(系统操作软件包括哪些)

生活百科 2023-04-29 18:18生活百科www.xingbingw.cn

  系统软件最基本的是操作系统(系统操作软件包括哪些),本文通过数据整理汇集了系统软件最基本的是操作系统(系统操作软件包括哪些)相关信息,下面一起看看。

  一,死锁的定义

  多进程多线程的并发执行虽然提高了系统资源的利用率和系统的性能,但也带来了一个新的问题——死锁。

  死锁(Deadlock)是指多个进程(线程)在执行过程中由于资源竞争或相互通信而被阻塞的现象(它们互相挂起等待)。没有外力,他们将无法前进。此时,系统处于死锁状态或系统出现死锁。这些总是互相等待的进程称为死锁进程。

  举个生活中简单的例子小明和小红都想买一块橡皮。这块橡皮值一美元,但每个只有五毛钱。小明说把你的五毛钱给我,我去买块橡皮。小红说你把你的五毛钱给我,我去买块橡皮。就这样,两个人互相僵持着,谁也不想低头,谁也买不到橡皮擦。

  二、几种常见的死锁1。线程会自行锁定。

  为了保证线程之间的同步和互斥,我们经常需要锁定线程。有时候线程申请锁资源,还没等到释放。当他们申请这个锁时,他们最终会等待这个锁的释放。这个锁是他们自己持有的,所以他们会一直挂起等待,导致死锁。

   2.多线程竞争资源,循环等待。

  有两个线程P1和P2。P1申请锁定L1,P2申请锁定L2。此时P1某方向申请锁L2,结果是暂停等待P2释放锁L2,而P2只是想申请锁L1。结果,它被挂起以等待P1释放锁L1,这导致了两个线程之间的死锁。

   3.进程推进顺序不正确导致死锁。

  有三个线程,P1、P2和P3,分别产生数据M1、M2和M3,并分别接收其他线程产生的数据M3、M2和M1。如果线程推进的顺序是正确的,即三个线程都是先产生数据再接收数据,那么就没有问题。一旦一个线程先接收数据再产生数据,就会因为一开始没有产生数据而造成三个线程之间的死锁。

  更多Linux内核视频教程文档可通过后台私信【内核】免费获取。

  内核学习网站

   Linux内核源代码/内存调优/文件系统/进程管理/设备驱动/网络协议栈-学习视频教程-腾讯课堂

  三。死锁的原因和必要条件1。死锁的主要原因系统资源不足。进程(线程)以错误的顺序前进。资源分配不当。

  当系统的资源充裕时,每个进程都可以申请到想要的资源,所以死锁的概率很低。不同的调度顺序和线程速度也会导致死锁。

  

  更多系统软件最基本的是操作系统(系统操作软件包括哪些)相关信息请关注本站,本文仅仅做为展示!

Copyright@2015-2025 www.xingbingw.cn 性病网版板所有