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

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.dtcms.com/a/70061.html

相关文章:

  • 分支与循环(上)
  • OpenCV基础【图像和视频的加载与显示】
  • 超声重建,3D重建 超声三维重建,三维可视化平台 UR 3D Reconstruction
  • 链表·简单归并
  • 基于SpringBoot+Vue的毕业论文管理系统+LW示例参考
  • Vue:Vue+TS学习笔记
  • Linux第三次练习
  • 【后端】【django】【related_name】`related_name` 的作用
  • 召回度、准确度
  • Java基础面经
  • PyTorch 深度学习实战(14):Deep Deterministic Policy Gradient (DDPG) 算法
  • 【推荐项目】052-用水监控管理系统
  • 【Godot】Window类
  • 【SpringMVC】常用注解:@CookieValue
  • 股票查询系统
  • C#生产型企业ERP系统管理软件PCB行业ERP进销存MRP管理系统BOM管理
  • python---序列 (str,list,tuple)
  • RBAC 模型的简单实现
  • Mamba组件:状态空间模型简介
  • 使用 PerformanceObserver 实现网页性能优化的最佳实践
  • java字符串案例 //要求:将输入的字符串中的数字转换为罗马数字,长度小于9(运用方法:查表法)
  • 目标检测中衡量模型速度和精度的指标:FPS和mAP
  • 2023 年全国职业院校技能大赛(中职组)移动应用与开发赛项 赛题第十套
  • 说说 CDN 的工作原理,它在前端性能优化中起到什么作用?
  • 零基础上手Python数据分析 (4):Python数据结构精讲 - 列表、元组、字典、集合
  • NVM环境下安装pnpm报错的解决方案
  • 项目开发 1-确定选题,制作原型
  • uniapp+vue实现购物车的左滑删除功能
  • BSides-Vancouver-2018 ftp匿名访问、hydra爆破22端口、nc瑞士军刀、提权
  • uniapp-x js 限制