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

wordpress地址/百度上做优化

wordpress地址,百度上做优化,做摄影网站的公司,国家企业信息系统官方一:冯诺依曼体系结构 什么叫做体系结构??? 计算机组成 / 芯片架构 输入单元:键盘、话筒、摄像头、usb、鼠标、磁盘(ROM)/ssd、网卡、显卡 存储器:内存(RAM&#xff09…

一:冯诺依曼体系结构

什么叫做体系结构???

计算机组成 / 芯片架构

e3037d0705b94f6ca943bfcf4786afe8.png

输入单元:键盘、话筒、摄像头、usb、鼠标、磁盘(ROM)/ssd、网卡、显卡

存储器:内存(RAM)

中央处理器(CPU):寄存器、各种级别的缓存(cache)

输出单元:显示器、喇叭、打印机、磁盘、网卡、显卡

计算机里面的几乎所有的设备,都有数据存储的能力!!!

CPU这个设备,他的数据处理速度是非常快的,然后是内存,然后是各种外设(磁盘)。


程序在运行之前,必须先加载到内存?为什莫?

程序 = 代码 + 数据

最终都要CPU来执行处理,CPU需要先读取到这些代码和数据,而CPU只和内存有“数据(二进制层面)”层面的交互,但是形成的 exe,本质就是一个文件,只能在磁盘(外设)中保存。所以必须要在程序运行之前先加载到内存中。


二:操作系统

1.什么是操作系统?

操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。

操作系统是一款软件,进行软硬件资源管理的软件。


2.为什么要有操作系统?

操作系统将软硬件资源管理好(手段),

给用户提供良好的(稳定,高效,安全)使用环境(目的)。 


如何管理呢???

什么是真正的管理者?(做决策/做执行)做决策,如何做正确的决策 ---> 根据完善的数据

示例:在学校中,管理者是校长,但与学生接触最多的是辅导员。

校长(做决策)   辅导员(做执行)   学生(被管理)

校长为了更方便的管理学生,可以制作一个execl表格,将学生的各项信息填入表格中,当数据发生变动时,在表格中进行修改,但这种方法很不方便 ---> 创建结构体,存放学生的各项信息,并将其各个节点连接起来组成链表,校长就可以直接对链表进行增删查改,不需要每天盯着表格操作。 管理的本质不是管人,而是管理数据。上述的描述,本质上就是一个建模的过程。

先描述,再组织 任何管理工作都可以经过这六个字进行计算机建模!!!

下图是,操作系统对软硬件:

036e5df9de244af09af656dc5ab4d160.jpeg 操作系统并不直接和硬件打交道,那么如何将其管理好?是通过(硬件相对的)数据管理的,通过驱动程序拿到数据。

操作系统管理:核心是:进程管理、内存管理、文件/IO管理、驱动管理。

3.系统调用和库函数的概念

系统调用:操作系统不相信任何用户,但又不得不向我们提供服务,在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口

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

三:进程

 1.基本概念

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。

进程 = 可执行程序 + 内核数据结构(PCB)

2.描述进程

<1>: 如何描述进程---PCB

进程信息被放在一个叫做进程控制的块的数据结构中,可以理解为进程属性的集合。

这个数据结构叫做PCB --- Linux操作系统下的PCB是 task_struct。

<2>:task_struct 内容分类

标示符: 描述本进程的唯一标示符,用来区别其他进程。

b9001b4f89c0450c82af05bf22a4b270.png

状态: 任务状态,退出代码,退出信号等。

5a50e37bc99b4c12bf3f4f26ef3f4c68.png

优先级: 相对于其他进程的优先级。

程序计数器: 程序中即将被执行的下一条指令的地址。

内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针

上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。

I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。

记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。

其他信息

<3>:组织进程

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

3.通过系统调用获取进程标识符

进程 id (PID)

父进程 id (PPID)

4a212d1cbb294c909e3505a2d94c947d.png

 示例:

#include<stdio.h>
#include<unistd.h>                                                                                                                                                     
int main()
{printf("pid: %d\n",getpid());printf("ppid: %d\n",getppid());return 0;
}

 运行结果为:

c80ab3740fee4f178ce22ac3289a8cb6.png

 在命令行中,父进程一般为命令行解释器(bash)。

90d533f090b347f2a8b9461374f71fd7.png

4.通过系统调用创建进程 --- fork 初识


fork 函数:

f845d05108504cdc999511dbc9dc0d8b.png

返回值:有两个返回值,一个返回父进程的子进程的 id,还有一个是子进程的 id (子进程 id 返回0说明,子进程创建成功,反之不成功)。 


示例:

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{printf("pid:%d ,ppid: %d\n",getpid(),getppid());int ret = fork();printf("pid: %d ,ppid: %d ,ret: %d\n",getpid(),getppid(),ret);sleep(1);return 0;
}

代码运行结果为:

0a1be191c2134b038f1bdeb2747ace5b.png

我们发现,一个 printf( ) 函数打印了两次,而且两次打印的 ret  值不同,为什么会出现  这种现象?

只有父进程执行 fork 之前的代码,fork 之后,父子进程都要执行后续的代码,即 printf 函数既要被父进程执行一次,又要被子进程执行一次,所以在此处,会出现打印两次的情况。


<1>:为什么 fork 之后会有两个返回值?

在 fork()函数体内,函数返回 id 前已经完成了子进程的创建,既然完成了子进程的创建,那么子进程就也会去到运行队列中,等待CPU调度,父子进程共享代码,数据各自开空间。由于返回值id是数据,所以虽然id的变量名相同,但是内存地址不同,所以返回的id是不同的。

<2>:fork 两个返回值,为什么给父进程返回子进程的 pid ,给子进程返回0?

父进程返回子进程 id , 父进程可以直接找到子进程,子进程返回 0 表示创建进程成功。  

<3>:fork 之后,父子进程的运行顺序是什么样的?

创建完成子进程,只是一个开始,创建完成子进程之后,系统的其他进程,父进程和子进程,接下来都要被调度执行,当父子进程的PCB都被创建并在队列中排队的时候,哪一个进程的PCB先被选择调度,那个进程就先运行!即父子进程运行的顺序是不确定的,它由操作系统自主决定,由各自的PCB中的调度信息(时间片、优先级等)+ 调度器的算法共同决定。


fork() 之后一般要 if 分流:

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{pid_t id = fork();if(id == 0){//子进程printf("我是子进程,pid:%d ,ppid: %d\n",getpid(),getppid());}else{printf("我是父进程,pid:%d ,ppid: %d\n",getpid(),getppid());}sleep(1);return 0;
}

代码运行结果为:

b3f10c9136214d53a9281726f7f8d5bb.png

四:进程状态


  • 运行状态(R) 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。
  • 睡眠状态(S)意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠。
  • 磁盘休眠状态(D) 有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的进程通常会等待IO的结束。
  • 停止状态(T)可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。
  • 死亡状态(X)这个状态只是一个返回状态,你不会在任务列表里看到这个状态。

1.进程状态的查看

查看进程状态的命令:

ps aux / ps axj

运行结果为: 

 

2.僵尸进程


概念:进程退出了,但是还没有被父进程/操作系统(OS)读取,操作系统(OS)必须维护这个退出进程的PCB结构,此时,该进程的状态为僵尸状态(Z)。等到父进程或者操作系统(OS)读取之后,PCB的状态先被改成死亡状态(X)状态,才会被释放。

如果一个僵尸进程的父进程没有回收该进程,那么该进程的PCB将一直存在,如果我们不及时回收,会存在内存泄露的风险。


示例:

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{pid_t id = fork();if(id == 0){//子进程int i = 5;while(i){printf("我是子进程,pid:%d ,ppid: %d ,i: %d\n",getpid(),getppid(),i);sleep(1);i--;}}else{while(1){printf("我是父进程,pid:%d ,ppid: %d\n",getpid(),getppid());sleep(1);}    }return 0;
}

在此处我们使用以下内容检测进程的运行状态:

while :;do ps aux | grep mycode | grep -v grep;sleep 1;echo "---------------------";done

运行结果为:

3.孤儿进程


概念:子进程的父进程先退出,此时子进程就称为孤儿进程,孤儿进程要被1号init进程领养,由init进行回收。


示例:

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<stdlib.h>
int main()
{pid_t id = fork();if(id == 0){//子进程printf("我是子进程,pid:%d ,ppid: %d\n",getpid(),getppid());sleep(10);}else{printf("我是父进程,pid:%d ,ppid: %d\n",getpid(),getppid());sleep(3);exit(0);}return 0;
}

运行结果为:

4.进程优先级


基本概念:

  • cpu资源分配的先后顺序,就是进程的优先权。
  • 优先权高的进程有优先执行的权利,配置进程优先权对多任务环境的linux很实用,可以改善操作系统性能。
  • 还可以把进程运行在指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统的整体性能。

查看系统进程:

top

 运行结果为:

通过上述图片,我们可以从中看到以下几个内容:

UID:代表执行者的身份

PID:代表这个进程的信号

PPID:代表这个进程是由那个进程发展衍生而来的,既父进程

PRI:代表这个进程可被执行的优先级,值越小越先被执行

NI:代表这个进程的 nice 值


Linux进程的优先级数值范围为 60-99 (40个)

Linux中默认进程的优先级为 80

Linux支持动态优先级调整,那么如何调整?

nice值:进程优先级的修正数据

pri(新) = pri(旧) + nice 且 pri(旧) =80

top 命令更改已存在进程的 nice:

进入top后按“r”–>输入进程PID–>输入 nice 值 

nice 调整的最小值为-20,nice 调整的最大值为19。

nice 值超出最大最小调整范围时,超过部分按最大/最小计算。

为什么要把优先级限定在一定的范围内???

操作系统(OS)调度的时候,较为均衡的让每一个进程都要得到调度,这样比较公平。

如果不加以限制,可能会导致优先级较低的进程,长时间得不到CPU资源 --- 进程饥饿。


5. 其他概念

  • 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级。
  • 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰。
  • 并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行。
  • 并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发。

相关文章:

Linux进程的概念

一&#xff1a;冯诺依曼体系结构 什么叫做体系结构&#xff1f;&#xff1f;&#xff1f; 计算机组成 / 芯片架构 输入单元&#xff1a;键盘、话筒、摄像头、usb、鼠标、磁盘&#xff08;ROM&#xff09;/ssd、网卡、显卡 存储器&#xff1a;内存&#xff08;RAM&#xff09…...

XML教学视频(黑马程序员精讲 XML 知识!)笔记

第一章XML概述 1.1认识XML XML数据格式&#xff1a; 不是html但又和html有点相似 XML数据格式最主要的功能就是数据传输&#xff08;一个服务器到另一个服务器&#xff0c;一个网站到另一个网站&#xff09;配置文件、储存数据当做小型数据可使用、规范数据格式让数据具有结…...

自定义组件实现v-model

要使自定义的Vue组件支持v-model&#xff0c;需要实现一个名为value的prop和一个名为input的事件。在组件内部&#xff0c;将value prop 绑定到组件的内部状态&#xff0c;然后在对内部状态进行修改时触发input事件。 自定义UI组件 <template><input :value"va…...

【自动驾驶】Free space与Ray casting

文章目录 1 Free space是什么2 Ray casting是什么3 它俩啥关系4 TODO 1 Free space是什么 在自动驾驶领域&#xff0c;free space即可行驶区域&#xff0c;在结构化道路的十字路口/非结构化道路都有很大作用。 2 Ray casting是什么 ray casting是计算机视觉领域&#xff0c;…...

RHCE---正则表达式

文章目录 目录 文章目录 前言 一. 文本搜索工具 二.正则表达式 元字符 ^行首与$行尾 点(.) 与星号(*) 扩展正则 总结 前言 正则表达式是文本三剑客中及其重要的一环&#xff0c;称之为灵魂也不为过&#xff0c;到底什么是正则表达式呢&#xff0c;让我们一起来了解以下…...

3D RPG Course | Core 学习日记一:初识URP

前言 最近开始学习Unity中文课堂M_Studio&#xff08;麦大&#xff09;的3D RPG Course&#xff0c;学习一下3D RPG游戏核心功能的实现&#xff0c;第一课我们学习到的是地图场景的编辑&#xff0c;其中涉及到了URP渲染。 我们首先进入Unity资源商店把地图素材和人物素材导入好…...

Spring Cloud 之RabbitMQ的学习【详细】

服务通信 分布式系统通信两种方式&#xff1a; 直接远程调用&#xff08;同步&#xff09;借助第三方间接通信&#xff08;异步&#xff09; 同步通讯的问题 Feign就属于同步通讯。存在的如下问题 耦合度高&#xff0c;每次添加新的模块就要修改原有模块的代码性能下降&am…...

第五章 I/O管理 六、I/O核心子系统

目录 一、核心子系统 1、I/O调度 2、设备保护 二、假脱机技术 1、脱机&#xff1a; 2、假脱机&#xff08;SPOOLing技术&#xff09;&#xff1a; 3、应用&#xff1a; 1.独占式设备&#xff1a; 2.共享设备&#xff1a; 4、共享打印机原理分析 三、总结 一、核心子系…...

winfrom窗体比例缩放

用于控件大小随窗体大小等比例缩放的C#代码。该代码可以在窗体重载中使用&#xff0c;以确保窗体中的控件在窗体大小改变时能够按比例缩放。 SetTag方法&#xff1a;该方法用于设置控件的Tag属性&#xff0c;以存储控件的宽度、高度、左边距、顶边距和字体大小等信息。SetCont…...

宇信科技:强势行业加速融入AIGC,同时做深做细

【科技明说 &#xff5c; 重磅专题】 大家可能没有想到&#xff0c;一向对外低调行事的宇信科技&#xff0c;在AIGC方面2023年就已经训练出了适配金融场景的垂直模型&#xff0c;并应用到了各产品线上&#xff0c;同时结合通用大模型预研了宇信金融系统编程大模型。宇信金融系…...

Google Play上的Android广告软件应用程序积累了200万次安装

大家好&#xff0c;今天我们要聊一聊Google Play上的一个热门话题——Android广告软件应用程序。最近&#xff0c;一些恶意应用程序在Google Play上累积了200万次的安装量&#xff0c;给用户推送了讨厌的广告&#xff0c;同时又隐藏了它们在受感染设备上的存在。 根据Doctor W…...

算法通关村第四关-黄金挑战栈的经典问题

括号匹配问题 描述 : 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有…...

前端开发必备技能!用简单CSS代码绘制三角形,提升用户体验

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、前…...

想翻译pdf文档,试了几个工具对比:有阿里(完全免费,快,好用,质量高,不用注册登录)道最好(有限免费) 百度(有限免费)和谷歌完全免费(网不好)

文档翻释作为基础设施&#xff0c;工作必备。 阿里 &#xff08;完全免费&#xff0c;快&#xff0c;好用&#xff0c;质量高&#xff0c;不用注册登录&#xff0c;无广告&#xff09;我给满分 https://translate.alibaba.com/#core-translation 先选好语言。 Google(完全免…...

c# .net linux ImageSharp+FastDFS+Base64上传图片,压缩图片大小,图像处理dcoker中使用也可以

.net 以前是用System.Drawing来处理图片&#xff0c;但是在dcoker 、linux上用不了 微软官方推荐用 1、SkiaSharp 如果项目运行到docker里&#xff0c;需要NUGET安装SkiaSharp.NativeAssets.Linux.NoDependencies 注意&#xff1a;如果你同时引用SkiaSharp.NativeAssets.Li…...

Flutter FittedBox

&#x1f525; 英文单词FittedBox &#x1f525; Fitted 通过有道翻译如下 &#xff1a; Box 通过有道翻译如下 &#xff1a; 对 FittedBox 的理解 我们可以将 FittedBox 理解为合适的盒子&#xff0c;将其它布局放到FittedBox这样一个盒子中&#xff0c;从而实现 盒子里面的…...

亚信科技:发挥自我优势深入AIGC,并购整合高瞻远瞩致力未来路

【科技明说 &#xff5c; 重磅专题】 亚信科技在IT提供商领域中是一个低调的前行者&#xff0c;在全球通信及大型企业市场中扮演着重要的角色。对于近年来如火如荼AI方面的投入与研究&#xff0c;亚信科技是否也很重视呢&#xff1f; 事实上&#xff0c;是肯定的回答。 在我看…...

【设计模式】第17节:行为型模式之“解释器模式”

一、简介 解释器模式为某个语言定义它的语法&#xff08;或者叫文法&#xff09;表示&#xff0c;并定义一个解释器用来处理这个语法。 二、适用场景 领域特定语言复杂输入解释可扩展的语言结构 三、UML类图 四、案例 对输入的特定格式的打印语句进行解析并执行。 packag…...

各传输介质详细知识点

一.百兆网传输介质 快速以太网(802.3u) 100Base-T2 电缆&#xff1a;2对3类UTP 最大段长&#xff1a;100m 特性阻抗&#xff1a;100 100Base-T4 电缆&#xff1a;4对3类UTP 最大段长&#xff1a;100m 特点&#xff1a;8B/6T&#xff0c;NRZ编码 特性阻抗&#xff1a;1…...

历史随想随记

古往今来所有的王侯将相如不都成为人们茶余饭后的笑谈&#xff0c;一个人无论多么厉害&#xff0c;多么聪明&#xff0c;多么奸诈&#xff0c;多么有权势&#xff0c;他们都逃不出一个结局——死亡&#xff0c;我觉得这是人生最大的悲哀。看历史看的多了&#xff0c;就会发现这…...

ClickHouse Java多个参数的UDF编写

一、环境版本 环境版本docker clickhouse22.3.10.22 docker pull clickhouse/clickhouse-server:22.3.10.22二、XML配置 2.1 配置文件 # 创建udf配置文件 vim /etc/clickhouse-server/demo_function.xml<functions><function><type>executable</type&…...

RPA除了和OCR、NLP技术结合,还能和什么技术结合?

鉴于业内现在也经常把RPA称为数字员工&#xff0c;就虚拟一个人的形象来解答吧。 首先是头部&#xff0c;实现人的“听看说想”能力&#xff1a; 听&#xff1a;ASR&#xff08;语音识别技术&#xff09;&#xff0c;主要用于听取和理解语音输入&#xff0c;让RPA能处理语音数…...

AssertionError: Torch not compiled with CUDA enabled

Pytorch和CUDA版本不兼容&#xff0c;运行python后&#xff08;终端输入python回车&#xff09;用以下代码测试 import torch print(torch.__version__) print(torch.cuda.is_available())返回False则说明目前的pytorch版本无法使用显卡&#xff0c;如下图所示 接着重装合适版…...

【Ubuntu 系统使用进入,自动进入base虚拟环境解决最全】

项目场景&#xff1a; 在Ubuntu上安装完anaconda后&#xff0c;发现每次打开终端后都会自动进入到base的虚拟环境中去&#xff0c;虽然在这些环境下使用问题不大&#xff0c;但一些软件的安装在虚拟环境下有影响。每次使用conda deactivate退出也很麻烦。 问题描述 安装玩之…...

C++项目——云备份-⑨-服务端与客户端功能联调

文章目录 专栏导读1.服务端源代码2.客户端源代码3.浏览器访问测试//listshow 4.上传文件测试5.文件下载测试 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计划导师&#xff0c;阿里云专家博主&…...

Linux两条服务器实现相互免密登录

1.准备两台虚拟机&#xff0c;一台充当服务器端&#xff08;server&#xff09;&#xff0c;一台充当客户端&#xff08;client&#xff09; 服务器端&#xff08;server&#xff09;&#xff1a;192.168.75.139 客户端&#xff08;client&#xff09;&#xff1a;192.168.75…...

华纳云Ubuntu环境怎么编译安装PHP和Nginx

在Ubuntu环境中编译安装PHP和Nginx需要进行一系列步骤。以下是安装PHP和Nginx的一般过程&#xff1a; 1. 更新系统&#xff1a; 首先&#xff0c;确保您的系统是最新的&#xff0c;运行以下命令更新软件包列表和已安装的软件包&#xff1a; sudo apt update sudo apt upgra…...

Ubuntu 23.10(Mantic Minotaur)正式发布,支持Linux 6.5和GNOME 45

导读Canonical 近日正式发布了 Ubuntu 23.10&#xff08;Mantic Minotaur&#xff09;操作系统&#xff0c;其中包含一些最新的 GNU/Linux 技术、改进的硬件支持以及许多其他变化。 Ubuntu 23.10 采用了最新的 Linux 6.5 内核系列&#xff0c;并为 Ubuntu 桌面和服务器增强了 z…...

Linux:KVM虚拟化

本章操作基于centos7系统 简介 KVM是Kernel Virtual Machine的简写&#xff0c;目前Redhat只支持在64位的Rhel5.4以上的系统运行KVM&#xff0c;同时硬件需要支持VT技术。KVM的前身是QEMU&#xff0c;在2008年被redhat公司收购并获得了一项hypervisor技术&#xff0c;不过redh…...

HTML标签,列表,表格相关

HTML标签的分类 HTML标签可以分为以下几类&#xff1a; 标题标签&#xff1a;用于定义网页的标题&#xff0c;分为h1、h2、h3、h4、h5和h6。 段落标签&#xff1a;用于定义文本的段落&#xff0c;常用的有p标签。 链接标签&#xff1a;用于定义链接&#xff0c;常用的有a标签…...