【Linux:进程概念】

目录

了解冯诺依曼思想:

操作系统如何管理软硬件资源?

进程与程序的区别 


  • 了解冯诺依曼思想:

1.所有的数据采用二进制的存储

2.数据存储在内存中

CPU处理器只做俩种运算:逻辑&&算数运算 

  • 操作系统的组成?

操作系统内核(本质上就是某种代码的统称)+应用,操作系统的本质也是软件

  • 操作系统如何管理软硬件资源?

  • 组织+描述

描述:struct task struct {}

组织:双向链表

在此还需要知道的一个常识:CPU(中央处理器)的数量远小于进程数。进程是需要等待操作系统分配CPU资源运行。

  • 进程状态
  1. 运行态:进程已得到系统分配的cpu资源,正在执行计算
  2. 就绪态:进程基础准备完成,等待操作系统分配cpu
  3. 阻塞态:进程缺乏某种资源无法分配到cpu资源,导致进程不能被执行
  • 进程状态细分
R进程正在执行
S进程暂时处于休眠状态(可打断)
D进程暂时处于休眠状态(不可被打断)
T进程中断
X死亡状态
t跟踪状态,当进程被gbd调试时,就会产生该状态
  • 仔细说明死亡状态不能被肉眼查询的原因:

死亡状态,ps,aux是查不到该进程信息的,该进程当要被释放时,释放的前一刻进程状态标记为死亡状态,ps,aux能查进程信息全凭进程的组织双向链表,遍历该链表由此查看进程

  • 进程与程序的区别 

进程是由操作系统管理的,程序运行起来叫做进程

程序的本质为一个文件,当程序跑起来时就叫做进程,这是一个动态的,由操作系统管理,操作系统分配cpu资源对进程进行一个管理

每一个进程都有属于自己的“身份证号”pid,在当前操作系统中,每一个进程都有一个具有唯一性的pid号,进程的观察需要使进程运行起来,查看进程信息命令:Ps,aux查看当前进程的信息

  • Fork函数 

fork函数的返回值三种类型

<0fork函数创建失败
==0返回给子进程
>0返回父进程

父子进程跑不一样的代码就需要if分支来实现  fork的返回类型pid_t(本质是整形)

  • Getpid函数,谁调用就返回谁的PID
  • Getppid:谁调用就返回谁的父进程PID
  • 僵尸进程

  • 俩个kill命令:
  1. .Kill [pid]:

  • .Kill -9 [pid]: 强杀命令 

Z表示僵尸状态

  •  僵尸进程产生的原因?

父进程创建一个子进程,子进程先父进程退出,子进程在退出时向父进程发送信号(SIGCHLD),但父进程对该信号忽略处理,导致子进程在退出时,没有进程回收子进程的资源导致子进程变成了僵尸进程

  • 僵尸进程有什么危害?

僵尸进程在内核中的task_struct结构体并没有被释放,导致内存泄露,并且强杀命令也不能干掉

  • 如何解决?
  1. 重启系统

  2. 进程等待

  3. 让僵尸进程成为孤儿进程(杀掉僵尸进程的父进程),继而僵尸进程就会被1号进程收养,最后1号进程会回收它的资源

  • 孤儿进程

  • 孤儿进程如何产生?

父进程比子进程先退出,则子进程就是孤儿进程

儿进程:父进程变成1号进程,当子进程的父进程先与子进程先退出时,子进程会被1号进程所收养,1号进程也叫init进程,操作系统启动的第一个进程叫做1号进程

这样就可以解决僵尸进程,把僵尸进程的父进程干掉,僵尸进程就会被1号进程收养,回收它的资源

孤儿进程被领养后就变成了一个后台进程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/13274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频下载器 - 网页视频自动嗅探2.2.4

【应用名称】&#xff1a;视频下载器 - 网页视频自动嗅探 【适用平台】&#xff1a;#Android 【软件标签】&#xff1a;#Video #Downloader 【应用版本】&#xff1a;2.2.4 【应用大小】&#xff1a;33MB 【软件说明】&#xff1a;软件升级更新。支持多种格式的看片神器&am…

【HarmonyOS NEXT】获取卸载APP后不变的设备ID

1. 背景 在HarmonyOS NEXT中&#xff0c;想要获取设备ID&#xff0c;有3种方式 UDID&#xff1a; deviceinfo.udid &#xff0c;仅限系统应用使用 AAID&#xff1a; aaid.getAAID()&#xff0c;然而卸载APP/恢复设备出厂设置/后会发生变化 OAID&#xff1a;identifier.getO…

【AI+agent智能助手】使用Dify新手小白也能分分钟构建属于自己的 AI 原生应用

最近有读者看了我这篇文章 【人工智能】字节版GPTs「扣子」coze免费使用chatGPT4模型操作步骤 &#xff0c; 私信我有没有本地私有化 智能体推荐。 这里推荐一款&#xff0c; Dify支持私有化部署&#xff0c;新手小白也能分分钟构建属于自己的 AI 原生应用。 官方地址&#…

如何将Git仓库中的文件打包成zip文件?

要将Git仓库中的文件打包成zip文件&#xff0c;您可以使用git archive命令。这个命令允许您将任何git可访问的树或提交导出成一个归档文件。以下是一些基本的步骤&#xff1a; 打开命令行或终端。切换到您的Git仓库的目录。执行git archive命令。 git archive --formatzip --o…

3D Tiles资源大全

本文汇总整理3D Tiles相关的各种资源&#xff0c;包括查看器、生成器、示例数据集、教程、演示等。 1、3D Tiles特色演示 注意&#xff1a;这些演示是基于 CesiumJS 1.87.1 Release 发布的&#xff0c;其中包括对 3D Tiles Next 扩展的实验性支持。这些演示中显示的大多数功能现…

Linux进程(三) --- 状态和优先级

运行&#xff0c;阻塞&#xff0c;挂起 运行 (Running) 当一个进程处于运行状态时&#xff0c;它正在使用CPU执行指令。进程在以下两种情况下可能被认为是运行状态&#xff1a; 实际运行&#xff08;Running on CPU&#xff09;&#xff1a; 进程当前正在CPU上执行。可运行&…

如何利用R包进行主成分分析和可视化

一. 使用R包“FactoMineR”进行主成分分析&#xff08;PCA&#xff09; 基本步骤如下&#xff1a; 安装和加载包&#xff1a;如果尚未安装&#xff0c;首先安装“FactoMineR”包&#xff0c;然后加载它&#xff1a; install.packages("FactoMineR")library(FactoM…

在springboot项目中自定义404页面

今天点击菜单的时候不小心点开了一个不存在的页面&#xff0c;然后看到浏览器给的一个默认的404页面 后端的程序员都觉得这页面太丑了&#xff0c;那么怎么能自定义404页面呢&#xff1f; 很简单&#xff0c;在我们的springboot的静态资源目录下创建一个error包&#xff0c;然…

ue引擎游戏开发笔记(41)——行为树的建立(2)--丰富ai行为:巡逻后返回原处

1.需求分析&#xff1a; 就敌人ai而言&#xff0c;追踪到敌人有可能丢失目标&#xff0c;丢失目标后应该能返回原来位置&#xff0c;实现这一功能。 2.操作实现&#xff1a; 1.思路&#xff1a;利用clear value函数&#xff0c;禁用掉当前的追踪功能&#xff0c;执行之后的返…

积温空间分布数据、气温分布数据、日照数据、降雨量分布、太阳辐射数据、地表径流数据、土地利用数据、npp数据、ndvi数据

引言 积温是某一时段内逐日平均气温之和,它是研究植物生长、发育对热量的要求和评价热量资源的一种指标,是影响植物生长的重要因素之一&#xff0c;对指导农业生产和生态建设具有非常重要的意义。作为重要的气候资源&#xff0c;积温与其它资源的区别在于存在很大的地域差异和时…

Python | Leetcode Python题解之第91题解码方法

题目&#xff1a; 题解&#xff1a; class Solution:def numDecodings(self, s: str) -> int:n len(s)# a f[i-2], b f[i-1], c f[i]a, b, c 0, 1, 0for i in range(1, n 1):c 0if s[i - 1] ! 0:c bif i > 1 and s[i - 2] ! 0 and int(s[i-2:i]) < 26:c aa,…

Flutter 中的 FlutterLogo 小部件:全面指南

Flutter 中的 FlutterLogo 小部件&#xff1a;全面指南 在 Flutter 应用中&#xff0c;FlutterLogo 是一个展示 Flutter 官方图标的小部件。它不仅可以作为一个应用启动时的占位符&#xff0c;也可以作为装饰性图标使用&#xff0c;以展示对 Flutter 的支持。本文将详细介绍 F…

统计学中的新进展与研究领域

统计学领域一直处于不断发展和演变之中&#xff0c;涌现出许多新的研究方向和方法。以下是一些统计学领域的最新研究进展和热点&#xff1a; 1. **贝叶斯统计&#xff1a;** 贝叶斯统计作为一种概率推断的方法&#xff0c;在近年来受到越来越多的关注。随着计算技术的不断进步…

C++——STL容器——List

1. 前言 List也是STL容器的一种&#xff0c;是C提供的链表结构的容器。C中所提供的list是双向带头循环链表&#xff0c;我们这篇文章通过自己模拟实现来学习list的使用。 为了避免和库中的命名冲突&#xff0c;也为了封装的考虑&#xff0c;我们将我们的list放入一个命名空间之…

微服架构基础设施环境平台搭建 -(七)Kubesphere pod内安装vimping命令

微服架构基础设施环境平台搭建 -&#xff08;七&#xff09;Kubesphere pod安装vim&ping命令 在K8s集群运维过程&#xff0c;需要进入pod容器内通过ping来测试网络是否通畅&#xff0c;或使用vim进行编辑文件&#xff0c;但是pod容器默认情况下是不支持ping、vim命令的&…

前端面试题日常练-day05 【面试题】

题目 希望这些选择题能够帮助您进行前端面试的准备&#xff0c;答案在文末。 1. 下列哪个 CSS 属性用于设置元素的背景颜色&#xff1f; A) color B) font-size C) background-color D) text-align2. 在 JavaScript 中&#xff0c;以下哪个函数可以用于将字符串转换为小写&a…

2024.05.15学习记录

1、完成Ts重构Axios项目中更多功能的开发 2、刷题&#xff1a;二叉树&#xff08;代码回忆录&#xff09; 3、复习diff算法源码解读

关于RK3588平台使用配置Qt、QtCreator、Gstreamer环境的一点记录

最近在做Qt工程代码平台适配的过程中&#xff0c;遇到了一些问题&#xff0c;记录一下。 问题一、主窗体无法透明 首先发现自己的Qt工程的主窗体的透明度无法控制的问题&#xff0c;要么全透明&#xff0c;要么不透明&#xff0c;后来查阅了一些关于linux和linux图形界面的相…

C语言 | Leetcode C语言题解之第91题解码方法

题目&#xff1a; 题解&#xff1a; int numDecodings(char* s) {int n strlen(s);// a f[i-2], b f[i-1], c f[i]int a 0, b 1, c;for (int i 1; i < n; i) {c 0;if (s[i - 1] ! 0) {c b;}if (i > 1 && s[i - 2] ! 0 && ((s[i - 2] - 0) * 10…

Flutter 中的 MaterialApp 小部件:全面指南

Flutter 中的 MaterialApp 小部件&#xff1a;全面指南 MaterialApp 是 Flutter 中用于创建整个 Material Design 风格的应用程序的小部件。它提供了一套丰富的组件和默认设置&#xff0c;以确保应用遵循 Material Design 的指南。本文将详细介绍 MaterialApp 的用途、属性、使…