Linux 进程概念

冯诺依曼体系结构


我们常见的计算机,大部分都遵守冯诺依曼体系结构

关于冯诺依曼的注意点

1.这里的存储器指的是内存

2.不考虑缓冲情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)

3.外设(输入或输出设备)要输入或者输出的数据,也只能写入内存或者从内存中读取。

4.综上所述,所有设备都只能直接和内存互动。

硬件部分:

a. 存储器

指的是内存,硬件级别的缓冲空间,在体系中为核心地位。

为什么要加一个存储器?

因为外设和中央处理器的速度代差太大了,如果去掉存储器,输入设备慢悠悠的输入,但是运算器却能非常快的完成计算,运算器运算完后直接交给输出设备,而输出设备却慢悠悠的输出,则CPU就只能等,则势必会拖慢计算机的速度。所以加入了存储器(内存)。

b.输入设备

鼠标,键盘,摄像头,麦克风,磁盘(文件的写入),网卡(信息的接收)等

c.输出设备

显示器,扬声器,磁盘 (文件的保存),网卡(信息的发送)等

d.运算器

对输入的数据进行计算任务(算术运算和逻辑运算);

e.控制器

对我们的计算硬件流程进行一定的控制

运算器+控制器=中央处理器(CPU)

上面这些都是一个个独立的个体,设备和设备之间必须用"线"连接起来,这些"线"分为 1. 系统总线  2. IO总线

存储金字塔

1.距离CPU越远的设备,他所对应的容量会越来越大,效率会越来越低

2.存储是分级的,

软件部分:

一个程序要运行,必须得先加载到内存中运行。为什么?

程序的代码和数据必须由中央处理器运算,而想要中央处理器处理数据,程序必须在内存中运行,因为中央处理器只从运存中读取数据。所以必须把程序从外设记载到内存中。冯诺依曼体系结构规定!

操作系统

操作系统是一款进行管理的软件。

管理的中的为什么,是什么,怎么办。 


 

概念

任何操作系统都包含一个基本的程序集合,称为操作系统(OS),笼统的理解,操作系统还包括:

1.内核(进程管理,内存管理,文件管理,驱动管理)

2.其他程序(函数库,shell程序等)

设计OS的目的 (为什么)

1.与硬件交互,管理所有的软硬件资源,操作系统帮助用户管理好下面的软硬件资源。

2.为用户程序(应用程序)提供一个良好的执行环境。

操作系统通过管理好下面的软硬件资源,为用户提供一个良好的操作环境。

所有访问操作系统的行为,都只能通过系统调用完成。

如何管理好底层的软件资源?(怎么做)

1.管理者和被管理者是不需要见面的

2.管理者在不见被管理者的情况下,如何做好的管理呢?只要能够得到管理信息,就可以在未来进行管理决策。——管理的本质:是通过对数据的管理,达到对人的管理。

3.管理者和被管理者都不见面,如何拿到对应的数据呢?

在操作系统中是先描述再组织的,管理任何对象,最终都可以转化成对某种数据结构的增删查改

定位

1.在整个计算机硬件架构中,操作系统的定位是:一款纯正的"搞管理"的软件。

系统调用和库函数概念

1.在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分有操作系统提供接口,叫做系统调用。

2.系统调用在使用上,功能比较基础,对用户的要求相对比较高,所以,有些开发者可以对部分系统调用进行适当封装,从而形成了库,有了库就很有利于上层用户或者开发者进行二次开发。

进程


基本概念

一个已经加载到内存中的程序,就叫进程。

正在运行的程序叫做进程。

描述进程-PCB

任何一个进程,在加载到内存的时候,形成真正的进程时,操作系统要先创建描述进程的结构体对象 ——PCB(进程控制块)描述进程的PCB结构体和该进程对应的代码和数据合起来叫进程PCB是由操作系统自己维护,代码和数据由程序员维护。

进程=内核PCB数据结构对象(描述你这个进程的所有的属性值)+你自己的代码和数据

task_struct

概念

在linux中描述进程的结构体叫做task_struct。

task_struct是linux内核的一种数据结构,他会被装载到RAM里并且包含着进程信息。

内容分类

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

Linux内核中,最基本的组织进程task_struct的方式,采用双向链表组织。

组织进程

可以在内核源代码里找到它。所有运行在系统里的进程都以task_struct链表的形式存在内核里。


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

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

相关文章

自定义校验--校验json长度

mysql8中支持json格式的字段,某些情况下使用很方便,但也带来一个问题,就是它的最大长度不能设置,最大支持4GB,如果有恶意程序保存一条4GB的数据进去,估计这张表就要卡死了,所以要加一个自定义校验&#xff…

学习周报-2024.8.31

目录 摘要 Abstract 创新点总结 模型数学原理 实验设置 一、验证实验 二、对比实验 摘要 这周重新梳理出论文的三个创新点,对所提出方法进行数学原理验证,证明其可行性。重新设置了实验部分,分为验证实验和对比实验,一共四…

真实较量|以挖矿告警闭环应急处置

背景 2024年6月18日,在公司关键位置部署的安全检测设备的告警日志中,发现大量挖矿软件请求矿池的告警事件。安全运营人员已经进行了相关处置,但是由于攻击者手法的隐蔽未处理干净,一直产生告警信息。 行动 通过与服务器运营人员…

Django+vue自动化测试平台(29)--测试平台集成playwright录制pytest文件执行

需求背景 一、 系统目标与功能概述 脚本管理: 系统需要能够组织和存储所有通过playwright官方插件录制的脚本。这包括脚本的上传、编辑、删除和版本控制功能。 脚本执行: 用户应该能够在后台界面上查看所有可用的脚本,并能够通过简单的点击操作来启动特定脚本的执…

【行测笔记】

题型 判断推理题型 1. 图形推理 位置规律-元素组成相同 横着看竖着看旋转翻折对称 样式规律-元素组成相似 元素组成相同 相同线条重复出现 相加相减旋转求同求异黑白加减规律 特征:图形轮廓和分割区域相同,内部颜色不同方法:相同位置运算…

python学习11-Pytorch环境安装与模型搭建

先查看下自己的电脑是否是英伟达显卡 如果不是就需要租用平台了,如 AutoDL算力云 https://www.autodl.com/home CUDA 当涉及到深度学习和 Python 时,CUDA 是一个非常重要的概念,它是 NVIDIA 开发的并行计算平台和应用程序编程接口(API&am…

从源码到产品:视频美颜SDK与直播美颜插件的开发详解

开发一款高效的视频美颜SDK与直播美颜插件,不仅需要深入理解图像处理技术,还需要考虑到性能优化、跨平台支持等多个方面的挑战。接下来,笔者将从源码开发的角度,详解视频美颜SDK与直播美颜插件的开发过程。 一、视频美颜SDK的核心…

仿华为车机功能之--修改Launcher3,实现横向滑动桌面空白处切换壁纸

本功能基于Android13 Launcher3 需求:模仿华为问界车机,实现横向滑动桌面空白处,切换壁纸功能(本质只是切换背景,没有切换壁纸)。 实现效果: 实现思路: 第一步首先得增加手势识别 第二步切换底图,不切换壁纸是因为切换壁纸动作太大,需要调用到WallpaperManager,耗…

asp.net core在win上的发布和部署

一、asp.net core两种发布方式 1、两个发布方式——【框架依赖发布】和【独立发布】 2、两种发布方式的差别 二、发布的详细过程 1、【生成】->【发布】 2、框架依赖发布 设置发布参数,然后进行发布 发布好的文件,把它们放到一个新的目录文件夹里 …

浏览器播放RTSP流,支持H264、H265等格式,支持IE、Chrome等浏览器

目录 背景 解决方案 效果 代码 前端代码 后端代码 下载 背景 项目中需要在浏览器中播放RTSP流,实在是不想折腾ActiveX控件 1、麻烦(开发麻烦、使用时设置也麻烦) 2、非IE浏览器不兼容 解决方案 使用OpenCvSharpNancy写一个解码服…

中仕公考怎么样?省考笔试成绩什么时候出?

根据往年的经验,省考笔试的成绩通常在考试后的大约一个月左右公布,但具体日期会根据各省份的公告而有所差异,不同省份具体时间不同,以2024年的为例: 广东省预计于笔试后约30天发布、山东省预计于笔试后约35天发布、浙…

Python计算机视觉四章-照相机模型与增强现实

目录 4.1针孔照相机模型 4.1.1照相机矩阵 4.1.2 三维点的投影 4.1.3 照相机矩阵的分解 4.1.4 计算照相机中心 4.2 照相机标定 4.2.1 一个简单的标定方法 4.3 以平面和标记物进行姿态估计 4.4 增强现实 4.4.1 PyGame和PyOpenGL 4.4.2 从照相机矩阵到OpenGL格式 4…

2024结构振动与智能控制国际学术会议(ICSVIC 2024)

文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网:https://ais.cn/u/vEbMBz提交检索:EI Compendex、IEEE Xplore、Scopus 三、大会介绍 四、出席嘉宾 五、征稿主题 如想"投稿…

Day 1 : 数据结构

引入 以张三为例:CEF不能同时举办。 数据的逻辑结构 数据结构是什么 研究计算机数据之间的关系 逻辑结构和存储结构及其操作 基本概念 数据 数据元素 逻辑结构 按前趋和后继数将逻辑结构分为:线性结构和非线性结构。 即:找前…

Activity的生命周期

目录 前言 Activity的生命周期 五种状态 生命周期相关方法 前言 Android中有着四大组件:Activity、Service、ContentProvider和BroadcastReceiver。本篇我们主要讲解的是Activity组件,它是安卓提供给用户与手机之间进行交互的界面 控件,那…

基于SSM的咖啡馆管理系统

基于SSM的咖啡馆管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisJSP工具:IDEA/Ecilpse、Navicat、Maven 系统展示 前台界面 后台界面 摘要 在当前这个信息爆炸的时代,众多行业正经历着…

win10环境下gvim离线配置插件的一些补充

0 总述 在上一篇博客,即《Windows系统下使用gvim配置LaTeX快速书写环境》一文中,本小白试图模仿神级人物Gilles Castel,打造vim下的 LaTeX \LaTeX LATE​X书写环境。实话实说,东施效颦了。虽不至于一无所得,但也仅仅算…

UE5开发——射击武器类拾取

整体框架: 拾取武器 要在 Unreal Engine 5 (UE5) 中实现一个按 E 键拾取武器的功能,您可以遵循以下步骤: ### 步骤 1: 创建拾取物品的基础类 1. 在 Content Browser 中创建一个新的 C 类,继承自 AActor 或者 AStaticMeshActor。…

服务器间进行文件传输-SFTPSCP一篇搞定

1.简单介绍一下 在一些特殊场景,两台服务器之间需要进行文件传输的时候,或许我们会想到FTP,这也是我们常见的实现方式,但是如果我们不能操作远程服务器,无法判断远程服务器是否安装了FTP呢,众所周知&#…

在Web服务应用中,如何编程使用Redis的缓存功能?包括缓存页面内容、缓存数据库查询结果、用户会话信息等代码分享

目录 一、概述 二、redis介绍 1、简介 2、Redis作为缓存的原理 (1)内存存储 (2)数据结构 (3)工作原理 3、Redis作为缓存的作用 三、redis缓存页面内容 1、作用 2、实现方法 3、示例代码&#x…