欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 5.进程基本概念

5.进程基本概念

2025/2/25 3:03:17 来源:https://blog.csdn.net/qq_61673857/article/details/145398219  浏览:    关键词:5.进程基本概念

5.进程基本概念

      • **1. 进程的基本概念**
      • **2. 进程与程序的区别**
      • **3. 进程的状态**
      • **4. 进程调度**
      • **5. 进程相关命令**
      • **6. 进程创建与管理**
      • **7. 进程的应用场景**
      • **8. 练习与作业**
      • **9. 进程的地址空间**
      • **10. 进程的分类**
      • **11. 进程的并发与并行**
      • **12. 总结**


1. 进程的基本概念

  • 进程:进程是程序执行的过程,操作系统会为其分配内存资源和CPU调度。
  • PCB(Process Control Block):进程控制块,是一个结构体,用于存储进程的相关信息,如:
    • PID:进程标识符。
    • 当前工作路径。
    • umask:文件创建时的默认权限掩码。
    • 进程打开的文件列表。
    • 信号相关设置。
    • 用户ID和组ID。
    • 进程资源的上限(可通过ulimit -a查看)。

2. 进程与程序的区别

  • 程序
    • 静态的,存储在硬盘中的代码和数据的集合。
    • 没有状态变化,无法并发执行。
  • 进程
    • 动态的,程序执行的过程,包括创建、调度和消亡。
    • 有状态变化,可以并发执行。
    • 进程之间会竞争计算机资源。
    • 一个程序可以运行多次,生成多个进程;一个进程可以运行一个或多个程序。

3. 进程的状态

  • 基本状态
    • 就绪态:进程已准备好,等待CPU调度。
    • 执行态:进程正在CPU上运行。
    • 阻塞态:进程因等待某些资源(如I/O)而暂停执行。
  • Linux中的进程状态
    • 运行态(R):进程正在运行或等待运行。
    • 睡眠态(S/D)
      • 可唤醒等待态(S)。
      • 不可唤醒等待态(D)。
    • 停止态(T):进程被暂停。
    • 僵尸态(Z):进程已终止,但其资源未被完全释放。
    • 结束态:进程已终止并释放资源。

4. 进程调度

  • 调度算法:操作系统通过调度算法决定哪个进程获得CPU资源。
    • 时间片轮转(RR):每个进程轮流获得CPU时间片。
    • 先进先出(FIFO):按进程到达顺序分配CPU资源。
  • 宏观并行,微观串行:多个进程看似同时运行,但实际上是通过快速切换实现的。

5. 进程相关命令

  • ps aux:查看系统中所有进程的详细信息。
  • top:实时查看进程的CPU占用率等信息。
  • kill:向指定进程发送信号。
    • kill -2 PID:发送SIGINT信号,终止进程。
    • kill -9 PID:发送SIGKILL信号,强制终止进程。
  • killall:向指定名称的所有进程发送信号。
    • killall -9 a.out:强制终止所有名为a.out的进程。

6. 进程创建与管理

  • fork
    • 函数原型:pid_t fork(void);
    • 功能:创建一个子进程,子进程是父进程的完全拷贝。
    • 返回值:
      • 父进程中:返回子进程的PID(>0)。
      • 子进程中:返回0。
      • 失败时返回-1。
    • 特点
      • 子进程从fork之后开始执行。
      • 子进程和父进程共享代码段,但拥有独立的数据空间。
  • getpid
    • 函数原型:pid_t getpid(void);
    • 功能:获取当前进程的PID。
  • getppid
    • 函数原型:pid_t getppid(void);
    • 功能:获取当前进程的父进程PID。

7. 进程的应用场景

  • 场景1:一个进程希望复制自己,使父子进程同时执行相同的代码段(如网络服务)。
  • 场景2:一个进程需要执行一个不同的程序(通过fork + exec实现)。

8. 练习与作业

  • 练习1:设计一个程序,动态生成两个进程,分别向同一个文件中写入不同的数据,并标明进程ID和时间。
    • 示例:
      父进程 1123 16:02:10
      子进程 1124 16:02:15
      
  • 作业1:动态生成n个子进程,并打印输出各自的PID。
    • 示例:
      进程1 PID: 111
      进程2 PID: 222
      

9. 进程的地址空间

  • 虚拟地址空间
    • 0-3G:用户空间,每个进程独立。
    • 3G-4G:内核空间,所有进程共享。
  • 物理内存与虚拟内存的映射
    • 通过MMU(内存管理单元)实现虚拟地址到物理地址的映射。
    • 1页 = 4KB。

10. 进程的分类

  • 交互式进程:与用户交互的进程(如Shell)。
  • 批处理进程:执行批处理任务的进程(如Shell脚本)。
  • 守护进程:在后台运行的进程,通常用于提供服务(如httpd)。

11. 进程的并发与并行

  • 并发:多个进程交替执行,宏观上看似同时运行。
  • 并行:多个进程真正同时运行(需要多核CPU支持)。

12. 总结

进程是操作系统资源分配和调度的基本单位。通过fork可以创建子进程,父子进程共享代码段但拥有独立的数据空间。进程的状态包括就绪态、运行态、阻塞态等,操作系统通过调度算法管理进程的执行。通过pstopkill等命令可以查看和管理进程。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词