什么是linux的进程?

什么是linux的进程?,第1张

fork()函数,Linux系统调用

头文件:

#include <unistd.h>

函数定义:

int fork( void )

返回值:

进程中返回0,父进程中返回子进程ID,出错返回-1

函数说明:

一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。

子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间,它们之间共享的存储空间只有代码段。

‘fork()’函数用于从已存在进程中创建一个新进程。新进程称为子进程,而原进程称为父进程。你可以通过检查‘fork()’函数的返回值知道哪个是父进程,哪个是子进程。父进程得到的返回值是子进程的进程号,而子进程则返回0。以下这个范例程序说明它的基本功能: //------------------------------ example 1 pid_t pid

switch (pid = fork())

{

case -1:

/* 这里pid为-1,fork函数失败 */

/* 一些可能的原因是 */

/* 进程数或虚拟内存用尽 */

perror("The fork failed!")

break

case 0:

/* pid为0,子进程 */

/* 这里,我们是孩子,要做什么? */

/* ... */

/* 但是做完后, 我们需要做类似下面: */

_exit(0)

default:

/* pid大于0,为父进程得到的子进程号 */

printf("Child's pid is %d\n",pid)

}//------------------------------ example 2#define TRUE 1

while (TRUE){ /* repeat forever */

type_prompt() /* display prompt on the screen */

read_command(command, parameters) /* read input from terminal */

if (fork() != 0){/* fork off child process */

/* Parent code. */

waitpid(1, &status, 0) /* wait for child to exit */

} else {

/* Child code. */

execve(command, parameters, 0) /* execute command */

}

}

这些是我再网上帮你找到的资料,看完之后,自己也学到不少,呵呵 ^^

希望它对你有点帮助吧,好好体会

还有一点就是进程的定义:进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。说白了进程就是正在运行的程序,比如说有程序 p1 和 p2,当程序p1运行是就是进程p1 ,如果正在运行的是p2,那么就是进程p2

方法一:

pstree -p 14686(PID),可获取到nginx的四个子进程(或 ps -ef |grep nginx)

cat /proc/15178(PID)/status,其中threads即为线程(即进程)数

方法二:ps -eL -o pid,%cpu,lwp|grep -i pid

关于Linux *** 作系统:

Linux是一套免费使用和自由传播的类Unix *** 作系统,它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、 *** 作系统、进程等等对于 *** 作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

Linux是一款免费的 *** 作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的 *** 作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/9005464.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存