当前位置: 首页 > news >正文

【Linux】进程管理

一、程序与进程区别

1.程序:

存放在磁盘文件可执行文件(静态存在)

  • 特点
    • 静态性:程序是静态的,它只是一组指令的集合,在未被执行时,不会占用计算机的运行资源,也不会产生任何实际的操作。
    • 可执行性:程序经过编译或解释后,可以被计算机系统识别和执行,从而实现特定的功能。
    • 永久性:程序可以长期存储在存储设备中,只要存储介质不损坏,程序就可以一直存在,并在需要时被调用和执行。

2.进程:

运行起来的程序,占用内存空间(动态存在),每个进程都有一个唯一的数字标识符,进程id唯一,但限制时间为这一次的开机维持时间,id随机分配,

  • 特点
    • 动态性:进程是动态的,它在执行过程中会不断地改变自身的状态,如从就绪状态到运行状态,再到阻塞状态等。
    • 并发性:多个进程可以在同一时间内并发执行,操作系统会通过调度算法来分配 CPU 时间片,使得各个进程能够交替执行,从而实现多任务处理。
    • 独立性:每个进程都有自己独立的地址空间、内存空间、打开的文件等资源,不同进程之间的资源相互隔离,以保证进程的独立性和稳定性。
    • 生命周期性:进程有一个从创建到结束的生命周期,在这个过程中,它会经历各种状态的转换,最终完成任务并结束运行。

二、进程结构

        PCB 就像是进程的 “管理档案”,记录着进程的各种信息,而代码段、数据段和堆栈段则是进程运行时所用到的不同功能区域的内存空间。它们共同构成了 Linux 下的进程结构,彼此相互配合,使得进程能够正常运行。

提示:按ctrl+c可以退出运行程序

三、进程函数

返回值为pid_t只是在内核函数里面进行宏定义,为了便于区分,实际id返回还是int型

pid_t fork(void);

返回:子进程中为0,父进程中为子进程I D,出错为-1

#include <iostream>
#include <unistd.h>

using namespace std;

int main()
{
	int num = 0;
	//开辟新的进程,直接将完整整个函数拷贝(代码段),还拷贝了代码运行的状态,所以子进程从fork之后开始运行
	//数据段:还可以复制里面的数据
	int pid = fork();
	if (pid > 0)
	{
		while (1)
		{
			cout << "主进程id=" << getpid() << "  主进程的父进程id=" << getppid()<< "number= " << num++ << endl;
			sleep(1);
		}
	}
	else if(pid==0)
	{
		while (1)
		{
			cout << "子进程id=" << getpid() << "  子进程的父进程id=" << getppid() << "number= " << num++ << endl;
			sleep(1);
		}
	}
	return 0;
}

运行结果:

if与else都运行了,并且num的值在主进程与子进程中各自执行++,互不影响

相关文章:

  • Android MediaStore访问的外部存储公共空间都不需要申请权限,这些目录具体指的是哪些
  • 【架构】软件成熟度模型与评估体系深度解析
  • 关于Windows Foxmail安全问题修复通告
  • ECharts大数据量的分批加载:提升图表渲染性能
  • linux Ubuntu 如何删除文件,错误删除后怎么办?
  • 88.高效写入文件—StringBuilder C#例子 WPF例子
  • 设计模式-观察者模式和发布订阅模式区别
  • 18. git pull
  • Java—HTML:CSS选择器
  • YOLO目标检测应用——基于 YOLOv8目标检测和 SAM 零样本分割实现指定目标分割
  • 网络故障排查实战指南:从准备到定位的全流程拆解
  • vue2使用vue-echarts
  • Mysql个人笔记
  • 数据可视化 —— 折线图应用(大全)
  • [ctfshow web入门] web35
  • 【多线程-第四天-自己模拟SDWebImage的下载图片功能-缓存管理 Objective-C语言】
  • 2025最新系统 Git 教程(五)
  • 【Python算法】基础语法、算法技巧模板、二分、DFS与BFS
  • selenium快速入门
  • 如何实现H5端对接钉钉登录并优雅扩展其他平台
  • 网站建设公司知乎/seo服务价格表
  • 四川建设行政主管部门官方网站/百度的搜索引擎优化
  • 有那些专门做职业统计的网站/苏州疫情最新情况
  • 微信小程序分销系统/南京seo公司教程
  • 网站建设的公司/2345网址导航智能主板
  • 做私人彩票网站/石家庄seo关键词