进程基础

来源:互联网 发布:什么是通用域名 编辑:程序博客网 时间:2024/05/23 13:08

1.什么是进程?

答:进程是一个具有独立功能的程序关于某个数据集合的一次可以并发执行的运行活动,是处于活动状态的计算机程序。

2.进程的基本状态是什么?

答:R 运行状态,D等待运行状态,S 等待状态, T 停止, Z僵尸状态(不能被唤醒)。

3.进程是一个动态的实体,这个实体由几部分组成?

答:(1)正文段(text)/代码段:存放被执行的机器指令。这个段是只读的(所以,在这里不能写自己能修改的代码),它允许系统中正在运行的两个或多个进程之间能够共享这一代码。例如,有几个用户都在使用文本编辑器,在内存中仅需要该程序指令的一个副本,他们全都共享这一副本。

      (2)用户数据段(user segment)/数据段:存放进程在执行时直接进行操作的所有数据,包括进程使用的全部变量在内。显然,这里包含的信息可以被改变。虽然进程之间可以共享正文段,但是每个进程需要有它自己的专用用户数据段。例如同时编辑文本的用户,虽然运行着同样的程序__编辑器,但是每个用户都有不同的数据:正在编辑的文本。

      (3)系统数据段(system segment)/进程控制块PCB:该段有效地存放程序运行的环境。事实上,这正是程序和进程的区别所在。如前所述,程序是由一组指令和数据组成的静态事物,它们是进程最初使用的正文段和用户数据段。作为动态事物,进程是正文段、用户数据段和系统数据段的信息的交叉综合体,其中系统数据段是进程实体最重要的一部分,之所以说它有效地存放程序运行的环境,是因为这一部分存放有进程的控制信息。系统中有许多进程,操作系统要管理它们、调度它们运行,就是通过这些控制信息。Linux为每个进程建立了task_struct数据结构来容纳这些控制信息。

       总之,进程是一个程序完整的执行环境。该环境是由正文段、用户数据段、系统数据段的信息交织在一起组成的。

4.进程有什么特点?

答:(1)动态性,进程的实质是程序的一次执行过程,是动态产生动态消亡的。

      (2)并发性,任何进程都可以和其它进程并发执行。

      (3)独立性,进程是一个能独立运行的基本单位,也是系统分配资源和调度的基本单位。

      (4)异步性,由于进程间的相互制约,使得进程的运行具有间断性,进程按各自独立的、不可预知的速度向前推进。

5.linux中进程的种类有哪些?

答:(1)交互式进程:这些进程经常和用户发生交互,所以花费一些时间等待用户的操作。当有输入时,进程必须很快的激活。通常,要求延迟在50-150毫秒。典型的交互式进程有:控制台命令,文本编辑器,图形应用程序。

      (2)批处理进程Batch Process):不需要用户交互,一般在后台运行。所以不需要非常快的反应,他们经常被调度期限制。典型的批处理进程:编译器,数据库搜索引擎和科学计算。

      (3)实时进程:对调度有非常严格的要求,这种类型的进程不能被低优先级进程阻塞,并且在很短的时间内做出反应。典型的实时进程:音视频应用程序,机器人控制等。

6.简述产生进程的函数vfork()和fork()的区别?

答:(1)fork()另外开辟内存空间,将父进程地址空间的数据完全复制到子进程。vfork()不会另外开辟地址空间,它和父进程共用一段内存空间,子进程不能进行写操作。

      (2)fork()产生的子进程可以和父进程交替执行。vfork()产生的子进程在退出之前将使父进程出于阻塞状态,即子进程退出之前父进程不能执行。

 

原创粉丝点击