Linux进程1.0--task_struct

1.硬件冯诺依曼体系结构:

单个分析:

数据流向:数据必须先进入输入设备,再到存储器,然后由存储器给控制器,控制器收到以后进行相应的处理后,再传回存储器,存储器最终传给输出设备!

 

存储效率:一般情况下在存储的生态中,距离cpu越远的设备,它所对应的容量会越来越大,效率会越来越低!

存储器是冯诺依曼体系结构中的核心地位

问题:1.一个程序要运行,必须要先加载到内存中运行?为什么?

答:正是因为冯诺依曼体系结构规定!(所有软件设计都必须遵守硬件结构。硬件是计算机的底线和边界)

2.为什么写的进度条,默认显示的数据,是可能会缓存起来的?在哪里缓存?

答:缓存在内存,遵守了体系结构,缓存是正常的。

2.软件:操作系统:

操作系统是一款进行管理的软件!它管理着硬件和软件

问题:· 操作系统为什么管理?

计算机是一个层状结构,所有硬件要和软件配合的使用,要存在对应的驱动程序!

操作系统要帮助用户,管理好西面的软硬件资源!

给用户提供一个稳定、高效、安全的运行环境。

所以核心作用:操作系统通过管理好底层的软硬件资源(手段),为用户提供一个良好的执行环境(目的)

· 操作系统是什么?

作为一名用户平时用的都是程序员开发的客户端,并不是操作系统。但是用户并不可以直接绕过操作系统去使用其他app客户端。

操作系统里面,会有各种数据。可是,操作系统不相信任何的用户!因此操作系统为了保证自己的数据安全,也为了保证给用户能够提供服务,操作系统以接口的方式给用户提供调用的入口。来获取操作系统内部的数据。

这里提到的接口,其实就是操作系统提供的用“c语言”实现的,自己内部函数调用---系统调用!所有访问操作系统的行为,都只能通过系统调用完成!这种接口实现就叫系统编程!

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

先描述再组织!!!

3.进程:

一个已经加载到内存的程序就叫做进程(任务)--也可以说是正在运行的程序叫做进程。

下图可以看得出来,一个操作系统,不仅仅只能运行一个进程,可以同时运行多个进程。

这里的属性值:是进程编号、进程状态、优先级、相关指针信息....

各个pcb之间的连接用指针进行穿行的连接起来,所以可以形成一个单链表。一个进程如果是先后的,它在系统中进行排队是进程的PCB再进行排队,等排到了,PCB会调出相应的数据和代码。

Linux操作系统下的PCB是:task_struct

task_struct 内容分类

  • 标识符:描述本进程的唯一标识符,用来区别其他进程。
  • 状态:任务状态,退出代码,退出信号等。
  • 优先级:相对于其他进程的优先级。
  • 程序计数器:程序中即将被执行的下一条指令的地址。
  • 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。
  • 上下文数据:进程执行时处理器的寄存器中的数据 [休学例子,要加图 CPU,寄存器]。
  • I/O 状态信息:包括显示的 I/O 请求,分配给进程的 I/O 设备和被进程使用的文件列表。
  • 记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
  • 其他信息

在Linux当中:用指令ls /proc可以看见会有很多的蓝色文件,这些都为目录,基本都是数字命名,这些数字其实就是属性里面的PID(标识符),这中目录里面包含着进程的基本所有属性

知识点:进程和线程的区别?

​​​​​​​进程是程序执行活动,是资源分配和调度基本单位,有独立资源,调度开销大,多个进程可并发或并行执行。线程是进程内执行单元,是CPU调度基本单位,共享进程资源,调度开销小,同一进程的多个线程能并发或并行执行,协作更高效。

(未完结)

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

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

相关文章

本地部署Jina AI Reader:用Docker打造你的智能解析引擎

本地部署Jina AI Reader:用Docker打造你的智能解析引擎 🌟 引言:为什么需要本地部署?📌 场景应用图谱🔧 部署指南(Linux环境)1. 环境准备2. Docker部署3. 验证服务状态 &#x1f680…

贪心算法简介(greed)

前言: 贪心算法(Greedy Algorithm)是一种在每个决策阶段都选择当前最优解的算法策略,通过局部最优的累积来寻求全局最优解。其本质是"短视"策略,不回溯已做选择。 什么是贪心、如何来理解贪心(个人对贪心的…

代码随想录day17 二叉树part05

654.最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums …

宇树人形机器人开源模型

1. 下载源码 https://github.com/unitreerobotics/unitree_ros.git2. 启动Gazebo roslaunch h1_description gazebo.launch3. 仿真效果 H1 GO2 B2 Laikago Z1 4. VMware: vmw_ioctl_command error Invalid argument 这个错误通常出现在虚拟机环境中运行需要OpenGL支持的应用…

通过特征值和特征向量实现的图像压缩和特征提取

前文,我们在学习人工智能的线性代数基础的时候,就了解到,矩阵在人工智能中被广泛使用,接下来我们就从大家非常常见的图像开始,深度理解矩阵在人工智能中的应用。有关线性代数基础的文章可以看的我CSDN:人工智能中的线性…

蓝桥杯2023年第十四届省赛真题-整数删除 暴力-->链表+小根堆

题目来自DOTCPP: 思路: ①每次找到数列中的最小值下标,然后用状态数组st标记它,相当与删除它,之后就不会访问它。 ②对最小值下标左边和右边判断一下,看有没有数字,如果有就把最小值加到两边第…

springboot438-基于SpringBoot的数字化教学资源管理系统(源码+数据库+纯前后端分离+部署讲解等)

💕💕作者: 爱笑学姐 💕💕个人简介:十年Java,Python美女程序员一枚,精通计算机专业前后端各类框架。 💕💕各类成品Java毕设 。javaweb,ssm&#xf…

蓝桥杯刷题——第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

一、0握手问题 - 蓝桥云课 算法代码&#xff1a; #include <iostream> using namespace std; int main() {int sum0;for(int i49;i>7;i--)sumi;cout<<sum<<endl;return 0; } 直接暴力&#xff0c;题意很清晰&#xff0c;累加即可。 二、0小球反弹 - 蓝…

跨境卫士跟vps哪个更好用?跨境卫士为卖家提供固定IP环境

跨境卫士是通过为卖家提供固定的环境 i p来隔离本地电脑环境&#xff0c;为卖家创造一个真实独立的物理环境&#xff0c;让买家再任意电脑&#xff0c;任意网络下都能够安全的管理账号。跨境卫士和紫鸟原理一样&#xff0c;是通过为卖家提供固定的环境 i p来隔离本地电脑环境&a…

coding ability 展开第四幕(滑动指针——巩固篇)超详细!!!!

文章目录 前言水果成篮思路 找到字符串中所有字母异位词思路 串联所有单词的子串思路 最小覆盖子串思路 总结 前言 本专栏上一篇博客&#xff0c;带着大家从认识滑动窗口到慢慢熟悉 相信大家对滑动窗口已经有了大概的认识 其实主要就是抓住——一段连续的区间 今天来学习一些滑…

图解AUTOSAR_CP_BSW_General

AUTOSAR BSW通用规范详解 AUTOSAR基础软件模块通用规范与架构解析 目录 1. 概述 1.1. AUTOSAR BSW通用规范简介1.2. 文档目的与范围2. BSW模块文件结构 2.1. 标准文件组织2.2. 命名规范3. BSW模块接口 3.1. 接口类型3.2. 模块API3.3. 配置参数4. BSW通用架构 4.1. 分层架构4.2.…

如何在Futter开发中做性能优化?

目录 1. 避免不必要的Widget重建 问题&#xff1a;频繁调用setState()导致整个Widget树重建。 优化策略&#xff1a; 2. 高效处理长列表 问题&#xff1a;ListView一次性加载所有子项导致内存暴涨。 优化策略&#xff1a; 3. 图片加载优化 问题&#xff1a;加载高分辨率…

组件通信框架ARouter原理剖析

组件通信框架ARouter原理剖析 一、前言 随着Android应用规模的不断扩大&#xff0c;模块化和组件化开发变得越来越重要。ARouter作为一个用于帮助Android应用进行组件化改造的框架&#xff0c;提供了一套完整的路由解决方案。本文将深入分析ARouter的核心原理和实现机制。 二…

Netty启动源码NioEventLoop剖析accept剖析read剖析write剖析

学习链接 NIO&Netty - 专栏 Netty核心技术十–Netty 核心源码剖析Netty核心技术九–TCP 粘包和拆包及解决方案Netty核心技术七–Google ProtobufNetty核心技术六–Netty核心模块组件Netty核心技术五–Netty高性能架构设计 聊聊Netty那些事儿 - 专栏 一文搞懂Netty发送数…

2024年12月CCF-GESP编程能力等级认证C++编程一级真题解析

一级真题的难度: ‌ CCF-GESP编程能力等级认证C++编程一级真题的难度适中‌。这些真题主要考察的是C++编程的基础知识、基本语法以及简单的算法逻辑。从搜索结果中可以看到,真题内容包括了选择题、编程题等题型,涉及的内容如C++表达式的计算、基本输入输出语句的理解…

73.HarmonyOS NEXT PicturePreviewImage组件深度剖析:高级功能扩展与性能优化策略(三)

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT PicturePreviewImage组件深度剖析&#xff1a;高级功能扩展与性能优化策略(三) 文章目录 HarmonyOS NEXT PicturePreviewImage组件…

Spark 中创建 DataFrame 的2种方式对比

spark.createDataFrame(data).toDF("name", "age") 和 spark.createDataFrame(spark.sparkContext.parallelize(data), schema) 创建df的方式有什么区别&#xff1f; 在 Spark 中&#xff0c;创建 DataFrame 的方式有多种&#xff0c;其中两种常见的方式…

六十天前端强化训练之第十七天React Hooks 入门:useState 深度解析

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、知识讲解 1. Hooks 是什么&#xff1f; 2. useState 的作用 3. 基本语法解析 4. 工作原理 5. 参数详解 a) 初始值设置方式 b) 更新函数特性 6. 注意事项 7. 类组…

IEC61850标准下MMS 缓存报告控制块 ResvTms详细解析

IEC61850标准是电力系统自动化领域唯一的全球通用标准。IEC61850通过标准的实现&#xff0c;使得智能变电站的工程实施变得规范、统一和透明&#xff0c;这大大提高了变电站自动化系统的技术水平和安全稳定运行水平。 在 IEC61850 标准体系中&#xff0c;ResvTms&#xff08;r…

【JVM】GC 常见问题

GC 常见问题 哪些情况新生代会进入老年代 新生代 GC 后幸存区&#xff08;survivor&#xff09;不够存放存活下来的对象&#xff0c;会通过内存担保机制晋升到老年代。大对象直接进入老年代&#xff0c;因为大对象再新生代之间来会复制会影响 GC 性能。由 -XX:PretenureSizeT…