Linux C第十二章进程控制编程十个问题及解答

来源:互联网 发布:淘宝怎么投诉盗用图片 编辑:程序博客网 时间:2024/05/28 09:33

                                                                                       Linux C第十二章进程控制编程十个问题及解答

 

1.什么是进程?什么是并发技术?

  进程是可并发执行的程序,是在一个数据集合上的运营过程。

  并发技术,就是可以让你在同一时间同时执行多条任务的技术。

 

 

2.进程分为哪几类?有什么特点?

  进程分为交互进程、批处理进程和守护进程三类。

  其中守护进程总是活跃的,所以它所处的状态是等待请求处理任务。

 

 

3.监视进程,查询进程的工具是什么?终止进程的工具有哪些?

  一般用ps 监视进程,用pgrep查询进程,用killkillallpkillxkill来终止进程。

  对于占用资源过多的数据库子进程,应该用kill来杀掉,

  killall可以通过程序的名字直接杀死所有进程,

  pkill是直接杀死运行中的程序,

  xkill是在桌面上杀死图形界面的程序。

 

 

4.Linux C进程的三种基本状态是什么,怎样转换?

  就绪状态、执行状态、阻塞状态

  就绪->执行。处于就绪状态的进程,当进程调度程序为之分配了处理器后,该进程由就绪状态转变成执行状态。

  执行->就绪。处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理器,于是进程从执行状态转变成就绪状态。

  执行->阻塞。正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态转变为阻塞状态。

  阻塞->就绪。处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

 

 

5.Linux C在内存里有几部分数据,分别存放什么东西?

  Linux C在内存里有三部分数据 数据段、堆栈段和代码段。

  数据段存放程序的全局变量、常数、以及动态数据分配的数据空间;

  堆栈段存放的是子程序的返回地址,子程序的参数,以及程序的局部变量;

  代码段存放的是程序代码的数据。

 

 

6.怎样创建进程?

  Linux C主要提供fork vfork clone三种进程创建方法,在源码中,这三个调用的执行过程是执行fork() vfork() clone()时,通过一个系统调用表映射到sys_fork()sys_vfork()sys_clone(),然后在这三个函数中通过调用do_fork()来具体地创建进程。

 

 

7.execlexeclpexecveexecvp函数各有什么作用?

  execl 函数用于执行文件;

  execlp 函数用于从PATH环境变量中查找文件并执行;

  execve 函数用于执行文件;

  execvp 函数用于执行文件。

 

 

8.什么是僵尸进程,他有什么特点?

  僵尸进程就是已经结束了的进程,但是还没有从进程表中删除,僵尸进程太多会导致进程表里面条目满了,进而导致系统崩溃,倒是不占用系统资源。

  它几乎放弃所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等信息供其他进程收集。

 

 

9.进程退出包括哪几种?

  正常退出:  main()函数中执行return

             调用exit()函数;

             调用_exit()函数。

 

 

10.退出方式有什么不同?

  exitreturn的区别:

   exit是一个函数,有参数,exit执行完后把控制权交给系统;

   return是函数执行完后的返回,return执行完后把控制权交给调用函数。

  exitabort的区别:

   exit是正常终止进程;

   abort是异常终止。

原创粉丝点击