linux的进程

1.进程的本质是什么?
          1.进程的存在必然需要程序的存在。进程和程序不是一一对应的。 
          2.进程是系统中独立存在的实体。 它对应特殊的描述结构并有申请、使用、释放资源的资格。
          3.进程的并发特性通过对资源的竞争来体现,进程的动态特性通过状态来描述。进程的逻辑形态和物理形态不同,逻辑上进程只不过是一系列信息的说明,物理上却占用着系统的各种资源。
          4.进程和数据相关,但它不是数据,在它的存在过程中要对数据进行处理。
2. 为什么需要多进程,为何需要并发

有了并发技术,就是可以在同一时间同时执行多条任务的技术,程序不仅可以规规矩矩的一条线执行,可以多条线同时执行,这样就可以实现更加强大的功能,提供更多的服务,所以并发是必不可少的。

3.进程的分类有哪些?

进程一般分为交互进程、批处理进程和守护进程三类。 
守护进程总是活跃的,一般是后台运行。守护进程一般是由系统在开机时通过脚本自动激活启动或超级用户root来启动的。

4.Linux进程管理有哪几种 ?

通过进程管理工具实现,如ps(进程监视工具)、kill(终止进程工具,类似还有:killall、pkill、xkill)、grep(查询进程工具)等。

5.Linux进程的组成有哪些?

Linux中一个进程由三部分组成:代码段,数据段,堆栈段 
从内存的低地址到高地址依次为: 
代码段:二进制机器代码 
数据段:存储已被初始化的变量,包括全局变量和已被初始化的静态变量 
未初始化数据段:存储未被初始化的静态变量,又称BBS 
堆:用于存放程序运行中动态分配的变量 
栈:用于函数调用,保存函数的返回地址,函数的参数,函数内部定义的局部变量

6.可执行程序和内存映像的区别:

1)可执行程序位于硬盘,内存映像位于内存 
2)可执行程序没有堆栈(程序被加载到内存中才会分配堆栈) 
3)可执行程序中未初始化数据段并不储存在位于硬盘中的可执行文件中 
4)可执行程序是静态的,不变的,内存映像动态变化7

7.僵尸进程

当子进程先于父进程终止,而父进程又没有调用wait函数等待子进程结束,子进程进入僵死状态,并且会一直保持下去除非系统重启.子进程处于僵死状态,内核只保存该进程的一些必要信息以备父进程所需.此时子进程始终占用着资源,同时也减少了系统可以创建的最大进程数;如果子进程先于父进程终止,且父进程调用了wait或waitpid函数,则父进程会等待子进程结束。僵尸进程几乎放弃所有内存空间,没有任何可执行代码,不能被调度,仅在进程列表中保留一个位置,但是过多的僵尸进程会导致系统崩溃。


8.什么是优先级反转

优先级反转是指一个低优先级的任务持有一个被高优先级任务所需要的共享资源,高优先级任务因资源缺乏而处于阻塞状态,一直等到低优先级任务释放资源为止,而低优先级获得的cpu时间少,如果此时有优先级处于两者之间的任务,并且不需要那个共享资源,则该中优先级的任务反而超过这两个任务而获得cpu资源。如果高优先级等待资源时不是阻塞等待,而是忙循环,则可能永远无法获得资源,因为此时低优先级进程无法与高优先级争夺cpu资源,从而无法执行,进而无法释放资源,造成的后果就是高优先级任务无法获得资源而继续运行。


     

猜你喜欢

转载自blog.csdn.net/ys5858588/article/details/78620023
今日推荐