linux什么是进程

linux什么是进程,第1张

进程不是Linux才有的。

所谓进程就是程序执行的单位,比如你的QQ,开一个QQ系统就分配一个进程,来运行QQ的程序,当然如果你打开终端,也是有进程的。

Linux下你可以用pgrep+程序名查看进程的PID,也可以通过top命令查看所有的进程(Q退出)。

有一个叫做PCB的单位,也就是进程控制块(Process Control Block),这个是进程的最大实体,其中包含进程运行所需的代码,所需内存地址,资源,锁机制,权限,线程分配等等内容,当然,通过CPU调度,其中的线程会执行-就绪-等待三态存在。

推荐你还是多看看书,自己谢谢进程控制和通信的程序就明白了。

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。程序一旦运行就是进程。

进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。

Linux中进程分为以下三类:

①交互进程:由一个shell启动的进程,交互进程既可以在前台运行,也可以在后台运行。

②批处理进程:这种进程和终端没有联系,是一个进程序列。

③监控进程:也称守护进程,是一个在后台运行且不受任何终端控制的特殊进程,用于执行特定的系统任务。

进程的状态:

①可运行状态:此时进程正在运行或者正在运行队列中等待准备运行。

②等待状态:此时进程在等待一个事件的发生或某种系统资源。在Linux系统中等待状态又细分为两种等待状态:可中断的等待状态和不可中断的等待状态。

③暂停状态:处于暂停状态的进程被暂停运行。

④僵死状态:每个进程在运行结束后都会处于僵死状态,等待父进程调用进而释放系统资源,处于该状态的进程已经运行结束,但是它的父进程还没有释放其系统资源。

1、进程受 *** 作系统内核控制,可挂起进程(让进程代码停止运行),可给进程发送保存软信号,分配共享存储,共享文件锁(进程通讯)等等;

2、进程创建后有自己的地址空间,由内核(可以理解成 *** 作系统)提供存储空间的划分。

3、刚创建的进程,进程级别创建只有主线程main函数,从线程级别创建的进程一般只有该线程本身。

4、子进程与创建他的父进程,有一模一样的存储空间,包括运行代码一模一样,采用写时复制技术(要修改某块数据,就会创建该数据块的副本)。其他只是读的数据是共享的。因此子进程会继承父进程的特性,比如环境变量,文件描述符(windows上理解成打开的文件句柄)。

6、新创建的进程需要调用特定的函数,才能执行真正的任务,对unix系统也可以接着跑创建进程所在的余下代码。

7、进程要完成特定工作,需要系统调用(或者库调用,间接调用系统调用)。

8、进程中保存了一些系统数据,如linux中会保存文件描述符表。

9、进程与线程区别很大,别相信某些写书作者说的,进程跟线程等效。线程仅仅是运行在进程中的一小块代码,共享整个进程的地址空间,环境变量等等。相同点,进程与线程的核心数据受控于内核。

10、告诉你32位系统只能用4G内存的都是SB。这个概念是指单个进程最多只能使用4G内存。内存越大,就不需要虚拟内存访问访问慢的像蜗牛的磁盘。你就可以打开多个程序不卡顿。32位windows能支持的最大内存是128G(参考windows核心编程)。但是单个进程地址空间的确只有4G=2^32字节。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存