Linux即时通信软件项目chatroom知识点整理(三)

11、谈谈你对进程的理解?内核是如何管理进程的?

(1) 进程是多任务并发的基本概念。进程是操作系统的核心,所有基于多道程序设计的操作系统都建立在进程的概念上。

进程是操作系统的概念。是操作系统资源分配和调度的基本单位,在执行一个程序时,对于操作系统来说就是建立了一个进程。在这个过程中,伴随着资源的分配和释放。

进程是系统中正在运行的程序,是一个程序一次执行的过程,是一个动态的实体,随着系统中指令的执行而不断变化,在某个时刻进程的内容称为进程映像(process image)

进程是由正文段(Text)、用户数据段(user segment )以及系统数据段(system segment)共同组成的一个执行环境。

正文段:存放被执行的机器指令。这个段是只读的,它允许系统中正在运行的两个或多个进程之间能够共享这段代码。

用户数据段:存放程序在执行时直接操作的所有数据,包括进程中使用的全部变量。

系统数据段:系统正常运行的环境。

***特点***

1)动态性和静态型。

动态性是进程最基本的特性,可以表现为由创建而产生,由调度而执行,因得不到资源而暂停执行以及由撤销而消亡,因而进程有一定的生命周期,而程序只是一组有序指令的集合,是静态实体。

2)结构上:每个进程实体都由程序段和数据段组成。

3)一个进程可以涉及到一个或几个程序的执行;反之,一个程序可以对应多个进程,即同一个程序段可以在不同的数据及上运行,可以构成不同的进程。

4)并发性。并发性是进程的重要特征。同时也是系统的重要特征。程序本省不能并发。

5)进程具有创建其他进程的功能。

6)操作系统中每一个程序都在一个主进程中运行。

(2)内核如何管理进程

  进程管理负责控制进程对 CPU 的访问,如任务的创建、调度和终止等。任务调度是进程管理最核心的工作,由 Linux 内核调度器来完成。linux 内核调度器根据进程的优先级选择最值得运行的进程。

      一个进程的可能状态有如下几种:

    1)  运行态——已经获得了资源,并且进程正在被 CPU 执行。进程既可运行在内核态,也可运行在用户态。

    2)  就绪态——当系统资源已经可用,但由于前一个进程还没有执行完释放  CPU,准备进入运行状态。

    3)  可中断睡眠状态——当进程处于可中断等待状态时,系统不会调度该程序执行。当系统产生一个中断或者释放了进程正在等待的资源,或者进程收到一个信号,都可以被唤醒进入就绪状态或者运行态。

    4)  不可中断睡眠状态——处于中断等待状态,但是该进程只能被使用  wake_up()函数明确唤醒的时候才可进入就绪状态。

    5)  暂停状态——当进程收到 SIGSTOP、SIGSTP、SIGTTIN 或者 SIGTTOU 就会进入暂停状态,收到 SIGCONT 信号即可进入运行态。

    6)  僵死态——进程已经停止运行,但是其父进程还没有询问其状态。

12、多进程编程的优缺点?

多进程优点:

每个进程互相独立,不影响主程序的稳定性,子进程崩溃没关系; 通过增加CPU,就可以容易扩充性能; 可以尽量减少线程加锁/解锁的影响,极大提高性能,就算是线程运行的模块算法效率低也没关系; 每个子进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大 

多线程缺点:

逻辑控制复杂,需要和主程序交互; 需要跨进程边界,如果有大量数据传送,就不太好,适合小数据量传送、密集运算多进程调度开销比较大; 最好是多进程和多线程结合,即根据实际的需要,每个CPU开启一个子进程,这个子进程开启多线程可以为若干同类型的数据进行处理。当然你也可以利用多线程+多CPU+轮询方式来解决问题……

13、 什么是进程死锁?操作进程死锁的原因是什么?

(1)所谓的死锁是指在多道程序系统中,一组进程中的每个进程都无限期地等待被该组进程中的另一个进程所占有且永远不会被释放的资源,这种现象称系统处于死锁状态,简称死锁。处于死锁状态的进程成为死锁进程。 
  系统发生死锁会大量浪费系统资源甚至会导致整个系统崩溃。

(2)产生死锁的原因

  产生死锁的原因主要有两个:一是竞争资源,系统提供的资源有限,不能满足每个进程的需求;二是多道程序运行时,进程的推进顺序不合理。

资源的概念 
  系统的资源分为两类:永久性资源(可重生资源),是指那些可供进程重复利用、长期存在的资源,如内存、CPU等硬件资源,以及数据文件、共享程序代码等软件资源。临时性资源(消耗性资源),是指由某个进程产生、只为另一个进程使用一次、或经过短暂时间后便不可再使用的资源,如 I/O 和时钟中断、消息等。 
  两种资源都可能导致发生死锁。

14、保持进程同步的方法有哪些?

15、线程同步方式有哪些?优缺点?

猜你喜欢

转载自blog.csdn.net/linuxwln/article/details/81274687