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

【Linux】进程详解

1、定义

使用编译器将代码编译成的可执行文件称为程序,程序存储在磁盘上;
将程序从磁盘装载到内存中,并通过指令调用、各级缓存、寄存器运行起来的实例,称为进程
一个程序可以同时运行多个进程;每个进程具有自己的‌内存空间、‌寄存器和‌文件描述符等资源。

  • 进程ID:每个进程在系统中都有一个唯一的进程ID(PID),用于标识该进程。‌
  • 进程的状态:Linux系统中的进程可以处于多种状态,如运行、睡眠、停止和僵尸状态等。
  • 进程控制块(PCB):当一个程序加载到内存中时,操作系统会为它创建一个进程控制块(PCB),这是一个包含进程信息的结构体。在Linux中,这个结构体被称为‌task_struct,它存储在‌RAM中,包含了进程的标识符、状态、优先级、程序计数器、内存指针、上下文数据、I/O状态信息等多种信息。‌
  • 进程调度:操作系统根据进程的优先级和其他调度算法(如时间片轮转、短任务优先等)来决定对哪个进程进行调度,以便公平地分配处理器时间。‌
  • 进程间通信:为了实现不同进程之间的通信,操作系统提供了各种机制,如管道、共享内存、消息队列等。这些机制允许进程之间交换数据或同步操作。‌
  • 进程的创建和管理:Linux中创建进程通常涉及fork()和exec()两个步骤。fork()函数通过拷贝当前进程创建一个子进程,而exec()函数则读取可执行文件并将其载入内存中运行。

2、进程和线程的区别

2.1 相同

http://www.lryc.cn/news/416913.html

相关文章:

  • python的多线程
  • 在Kylin服务器安装PostgreSQL16数据库
  • 【第15章】Spring Cloud之Gateway网关过滤器(URL黑名单)
  • pytorch和deep learning技巧和bug解决方法短篇收集
  • 【socket编程】UDP网络通信 {简单的服务器echo程序;简单的远程控制程序;简单的网络聊天室程序}
  • 大数据存储解决方案:HDFS与NoSQL数据库详解
  • 如何用 ChatGPT 提升学术写作:15 个高效提示
  • 【算法】贪心算法
  • 常见中间件漏洞复现之【Jboss】!
  • Java常用中间件(后续更新)
  • 网站或者网页Cookie 启用说明
  • Java 抽象知识笔记总结(油管)
  • 鲜花销售小程序的设计
  • Golang | Leetcode Golang题解之第324题摆动排序II
  • 32、Python之面向对象:对象的表示,再论Python是dict包括语法糖
  • 高级java每日一道面试题-2024年8月07日-网络篇-你对TCP的三次握手了解多少?
  • vite.config.ts中proxy的rewrite理解
  • 大数据环境下用户数据隐私安全防护系统的设计与实现(论文+源码)_kaic
  • 基于springboot+vue+uniapp的“口腔助手”小程序
  • 算法刷题之链表
  • C# 设计模式之适配器模式
  • BFS实现迷宫最短路径
  • Linux IPC解析:匿名命名管道与共享内存
  • Codeforces Round 964 (Div. 4) A~G
  • 单体应用提高性能和处理高并发-使用缓存
  • ollama教程——使用LangChain调用Ollama接口实现ReAct
  • 【Bug分析】Keil报错:error: #18:expected a “)“问题解决
  • MAC上设置快捷打开终端以及如何运用剪切快捷键
  • linux docker安装 gitlab后忘记root密码如何找回
  • C语言典型例题27