1、简述Linux进程内存空间分为哪几个段?作用分别是什么?
数据段:存放程序的全局变量,常数,
堆栈段:存放子程序的返回地址,子程序的参数,以及程序的局部变量,动态数据分配的数据空间;
代码段:存放了程序代码的数据,假如机器中有数个进程运行同一个程序,那么它们就可以使用同一个代码段。
2、如何查看进程的信息(线程数):
使用ps 即可查看进程信息,同时使用grep 就可以准确查找到所要找寻的进程信息
3、进程间通信方式有哪些?
以及在什么情况下用什么通信方式?优缺点:
Socket:方式实现起来比较简单;自身携带同步机制,不需要额外的方式来辅助实现同步;随进程持续。用于不同计算机之间的进程通信·
共享内存:相对其他方式有更少的数据拷贝,效率较高;自身不具备同步机制;随内核持续,相比于随进程持续生命力更强。作为最有用的进程间通信方式,也是最快的IPC通信方式
管道:只能用于有亲缘关系间进程的通信;只支持单向数据流;自身具备同步机制;随进程持续。可用于具有亲缘关系间的通信,
FIFO:是有名管道,支持没有亲缘关系的进程通信;需要创建两个描述符来实现实现双向通信;自身具备同步机制;随进程持续。允许无亲缘关系进程间的通信
信号:这种通信可携带的信息极少,不适合需要经常携带数据的通信;不具备同步机制,类似于中断,什么时候产生信号,进程是不知道的。用于通知接收进程有某种事件发生,除了用于进程间通信,进程还可以发送信号给进程本身
消息队列:使用一个路径名来实现各个无亲缘关系进程之间的通信;提供有格式的字节流;消息具有类型和优先级;具备同步机制;随内核持续。消息队列可以在几个进程间复用,而不管这几个进程是否有亲缘关系
信号灯:可以用来控制多个进程对共享资源的访问。不适用于交换大批数据,主要作为进程间以及同一进程内不同线程间的同步手段
4、进程同步的几种方法?
管程;消息传递;互斥锁,条件变量,信号灯(信号量)
5、进程死锁产生的原因及四个必要条件
进程死锁原因:多个进程因竞争资源而形成一种僵局,若无外力作用,这些进程都将永远不能再向前推进;
四个必要条件是:互斥条件;不可抢占条件;占有且申请条件;循环等待条件
6、什么是守护进程,什么是僵尸进程?
僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸。
守护进程是一个在后台运行且不受任何终端控制的进程
7、解释一下进程同步和进程互斥的区别?
一组并发进程按一定的顺序执行的过程称为进程间的同步;
进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止;
8、进程与线程之间有何区别?
进程:资源分配的最小单元,担当分配系统资源的最小单元
线程:CPU调度和分派的基本单位,程序执行的最小单位。比进程更小的能独立运行的基本单位
一个进程由几个线程组成,线程与同属一个进程的其他线程共享进程拥有的全部资源
9、线程同步有哪些方法?
线程同步方法有:互斥锁Mutex;条件变量Conditions;读写锁;信号量和令牌。
10、当父进程在子进程之前终止会发生什么?
如果父进程结束了,init进程会自动接手这个子进程,为它收尸,它还是能被清除的