冯诺依曼体系结构、进程、环境变量

冯诺依曼体系结构、进程、环境变量

  • 一、冯诺依曼体系结构
    • 1、结构图
    • 2、示例
    • 3、CPU与数据
  • 二、进程
    • 1、概念
    • 2、查看进程
      • (1)通过/proc系统文件夹
      • (2)通过top和ps用户级工具
      • (3)通过系统调用
    • 3、通过系统调用创建进程
      • (1)fork函数
      • (2)fork函数功能
      • (3)示例
    • 4、进程状态
      • (1)进程状态的概念
      • (2)示意图
    • 5、Z(zombie)僵尸进程
      • (1)僵死状态(Zombies)
      • (2)示例
      • (3)显示进程头部部分代表的意思
      • (4)危害
    • 6、孤儿进程
      • (1)概念
      • (2)示例
  • 三、进程优先级
    • 1、概念
    • 2、查看系统进程
    • 3、PRI和NI
    • 4、更改已存在进程的nice值
    • 5、示例
  • 四、关于进程的其他概念
  • 五、环境变量
    • 1、概念
    • 2、常见环境变量
    • 3、与环境变量相关的命令
    • 4、查看环境变量的方法
    • 5、示例

一、冯诺依曼体系结构

1、结构图

在这里插入图片描述

2、示例

  • 存储器:内存。
  • 输入设备:键盘、摄像头、话简、磁盘、网卡等等。
  • 输出设备:显示器、音响、磁盘、网卡等等。
  • 运算器:算术运算、逻辑运算等等。
  • 控制器:使CPU具有可以响应外部事件的功能,即协调外部就绪事件,如拷贝数据到内存或者从内存中拷贝数据出去。

3、CPU与数据

  • CPU读取数据(数据+代码)需要从内存中进行读取,即站在数据的角度来看,CPU不和外部设备(输入或输出设备)直接进行交互。
  • CPU处理数据(数据+代码),需要先将数据从外部设备加载到内存,即站在数据的角度来看,外部设备只和内存直接进行交互。

二、进程

1、概念

  • 一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是操作系统动态执行的基本单元,担当分配系统资源(CPU时间,内存)的实体。在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
  • 进程信息被放在一个叫做进程控制块的数据结构中,它是进程属性的集合,可以称之为PCB(process control block),在Linux操作系统下,PCB是一个名为task_struct的结构体,它会被装载到RAM(内存)里。

2、查看进程

(1)通过/proc系统文件夹

在这里插入图片描述

  • 被圈中的每一个数字都代表一个进程。

(2)通过top和ps用户级工具

在这里插入图片描述
在这里插入图片描述

  • ps一般搭配管道命令|和grep使用,筛选出想要查找的进程。当进程(程序执行)存在,将输出进程信息。

(3)通过系统调用

在这里插入图片描述

  • getpid是获取当前进程的进程号,getppid是获取当前进程父进程的进程号。

3、通过系统调用创建进程

(1)fork函数

pid_t fork(void)

(2)fork函数功能

  • 创建一个子进程,并将子进程的进程号返回给它的父进程(执行fork的进程),返回0给自己。
  • 创建出来的子进程和父进程共用一份代码,各自开辟空间存储数据(采用写时拷贝)。

(3)示例

在这里插入图片描述

4、进程状态

(1)进程状态的概念

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

(2)示意图

在这里插入图片描述

5、Z(zombie)僵尸进程

(1)僵死状态(Zombies)

  • 一个比较特殊的状态,当进程退出并且它的父进程没有读取到子进程退出的返回代码时,就会产生僵尸(死)进程。即只要子进程退出而父进程还在运行,但父进程没有读取子进程的退出状态时,子进程就会进入Z状态。
  • 僵尸进程会以终止状态保持在进程表中,并且一直在等待父进程读取退出状态代码。

(2)示例

在这里插入图片描述
在这里插入图片描述

  • 第一张图片为测试的代码。
  • while :; do ps -al | head -1 && ps -al | grep test; sleep 1; echo “---------------”; done的作用是循环输出进程的信息。

(3)显示进程头部部分代表的意思

  • UID:执行者的身份。
  • PID:本进程的代号,即进程号。
  • PPID:本进程是由哪个进程发展/衍生而来的,即父进程的代号。
  • PRI:本进程可被执行的优先级,其值越小越早被CPU执行。
  • NI:本进程的nice值,即优先级的修正数值。

(4)危害

  • 如果父进程一直不读取子进程的退出信息,那子进程就会一直处于Z状态。
  • 进程在Z状态一直不退出,PCB就要一直维护。
  • 内存资源的浪费,即内存泄漏。

6、孤儿进程

(1)概念

如果父进程退出,而它的子进程依然存在,则此时的子进程就称为孤儿进程。这个孤儿进程会被1号init进程(系统本身)领养,即1号init进程将等待被它领养的孤儿进程退出并回收它。

(2)示例

在这里插入图片描述
在这里插入图片描述

三、进程优先级

1、概念

  • CPU资源分配的先后顺序,就是进程优先级(priority)的体现。
  • 优先级高的进程有被CPU优先执行的权利,配置进程的优先级和把进程运行到指定的CPU上,即把不重要的进程安排到某个CPU上执行,可以改善系统整体的性能。

2、查看系统进程

在这里插入图片描述

3、PRI和NI

  • PRI值越小越快被CPU执行,当加入nice值后,PRI变化为:PRI(new)=PRI(old)+nice。
  • PRI(old)是进程最开始的优先级,即每次设置优先级时,都要以进程最开始的优先级为基础去设置。
  • 当nice值为负值的时候,该程序优先级的值将变小,而优先级将变高,即其越快被CPU执行,反之,越慢被CPU执行。
  • 在Linux下,调整进程优先级,就是调整进程的nice值。而nice的取值范围是-20至19,一共40个级别。
  • 进程的nice值不是进程的优先级,而是影响进程优先级的变化。

4、更改已存在进程的nice值

输入“top”命令
进入top后按“r”–>输入欲修改nice值的进程PID–>输入修改后的nice值。

5、示例

在这里插入图片描述

四、关于进程的其他概念

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

五、环境变量

1、概念

在操作系统中用来指定操作系统运行环境的一些参数,通常具有某些特殊用途和全局特性。

2、常见环境变量

PATH:指定命令的搜索路径。
HOME:指定用户的主工作目录,即家目录。
SHELL:当前使用的Shell,通常是/bin/bash。

3、与环境变量相关的命令

  • echo:显示某个环境变量值。
  • export:设置一个新的环境变量。
  • env:显示所有环境变量。
  • unset:清除环境变量。
  • set:显示本地定义的shell变量和环境变量。

4、查看环境变量的方法

  • echo $NAME
  • NAME为欲查看的环境变量的名称。

5、示例

在这里插入图片描述
在这里插入图片描述

  • export定义的环境变量会在重启或退出登录时失效。

本文到这里就结束了,如有错误或者不清楚的地方欢迎评论或者私信
创作不易,如果觉得博主写得不错,请务必点赞、收藏加关注💕💕💕

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

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

相关文章

会声会影2024这款视频剪辑软件怎么样?

众所周知,每每有新兴行业逐渐崛起壮大的时候,随机而来的就是这个行业创造出的衍生行业,比如说现在的短视频平台或者是视频剪辑行业,都是很明显的例子,今天我们就针对剪辑软件来和大家聊一聊,会声会影2024这…

论坛搭建.

目录 一.配置软件仓库 二.安装http php miriadb 三.配置数据库 一.配置软件仓库 1.进入仓库目录 cd /etc/yum.repos.d 2.创建仓库文件 vim local.repo 3.在 local.repo中写入:(粘贴的时候注意位置) [biaoshi] 仓库标识符 namemiaoshu …

禁用Google Chrome自动升级、查看Chrome版本号

问题 查看Chrome版本时,会自动升级,这个设计很垃圾,对开发者不友好;查看Chrome版本方法:chrome浏览器右上角—>自定义及控制Google Chrome(三个竖着的点号)------>帮助---->关于Google Chrome。 解决办法 禁用自动升级…

[Unity][VR]透视开发系列3-Passthrough应用的真机测试方法

【视频讲解】 视频讲解地址请关注我的B站。 专栏后期会有一些不公开的高阶实战内容或是更细节的指导内容。 B站地址: https://www.bilibili.com/video/BV1Zg4y1w7fZ/ 我还有一些免费和收费课程在网易云课堂(大徐VR课堂): https://study.163.com/provider/480000002282025/…

Open3D(C++) 最小二乘拟合平面(直接求解法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。 一、算法原理 平面方程的一般表达式为: A x + B y + C

14个最实用的WordPress SEO插件推荐

在这篇文章中,将为你推荐最有利于网站SEO的WordPress插件,这里介绍这些插件的主要功能及使用技巧,合理使用它们将有助于网站SEO排名。无论你是一个刚刚开始的博客作者,还是一个经验丰富的企业网站管理员,我们都将帮助你…

洛谷P1765 手机 / 秋季赛 九宫格

手机 题目描述 一般的手机的键盘是这样的: 要按出英文字母就必须要按数字键多下。例如要按出 x \tt x x 就得按 9 9 9 两下,第一下会出 w \tt w w,而第二下会把 w \tt w w 变成 x \tt x x。 0 0 0 键按一下会出一个空格。 你的任务是…

React 你还在用 Redux 吗?更简化的状态管理工具(Recoil)

以往传统的 Redux 状态管理工具使用起来代码太过于复杂。 你需要通过纯函数触发 action 再去修改 data 中定义的数据,而且要通过接口请求数据还需要借助 redux - think 这个中间件才能完成。。。 更加方便使用的工具:Recoil ~ 由 facebook 推出契合 R…

使用示例和应用程序全面了解高效数据管理的Golang MySQL数据库

Golang,也被称为Go,已经成为构建强大高性能应用程序的首选语言。在处理MySQL数据库时,Golang提供了一系列强大的库,简化了数据库交互并提高了效率。在本文中,我们将深入探讨一些最流行的Golang MySQL数据库库&#xff…

RabbitMQ学习05

文章目录 交换机1.Exchanges1.1 概念1.2 类型1.3 无名exchange 2. 临时队列3. 绑定(bings)4. Fanout4.1 介绍 5.Direct exchange5.1 介绍5.2 多重绑定5.3 实战: 6. Topics6.1 规则6.2 实战 交换机 1.Exchanges 1.1 概念 RabbitMQ 消息传递模型的核心思…

【Tomcat】如何在idea上部署一个maven项目?

目录 1.创建项目 2.引入依赖 3.创建目录 4.编写代码 5.打包程序 6.部署项目 7.验证程序 什么是Tomcat和Servlet? 以idea2019为例: 1.创建项目 1.1 首先创建maven项目 1.2 项目名称 2.引入依赖 2.1 网址输入mvnrepository.com进入maven中央仓库->地址…

数字孪生智慧工厂三维可视化系统解决方案,打造新一代智慧工厂

在制造业的快速发展和数字化转型的时代,智慧工厂已经成为制造企业前进的必经之路。数字孪生技术,作为工业数字化转型的核心动力,为打造智慧工厂提供了关键支持。其中,数字孪生智慧工厂三维可视化系统解决方案无疑是制造企业的得力…

基于vue小红书平台用户数据分析与可视化

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

Harbor私有镜像仓库搭建

本文基于:https://zhuanlan.zhihu.com/p/143779176 1.环境准备 IP:192.168.10.136/24 操作系统:centos7 2.安装Docker、Docker-compose 2.1安装Docker-CE $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.re…

视频转换器WinX HD Video Converter mac中文特点介绍

WinX HD Video Converter mac是一款功能强大的视频转换器,它可以将各种不同格式的视频文件转换为其他视频格式,以便用户在各种设备上进行播放。WinX HD Video Converter是一个功能强大、易于使用的视频转换器,适用于各种类型的用户&#xff0…

C语言每日一练(二)

单链表经典算法专题 一、 单链表相关经典算法OJ题1:移除链表元素 解法一:在原链表中删除Node.nextnext的节点 typedef struct ListNode ListNode; struct ListNode* removeElements( ListNode* head, int val) {ListNode* pcur head;ListNode* pre h…

[架构之路-245/创业之路-76]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 企业资源管理计划ERP

目录 前言: 一、企业信息化的结果:常见企业信息化软件 1.1 企业资源管理计划 1.1.1 什么是ERP:企业最常用的信息管理系统 1.1.2 ERP的演进过程 1.1.3 EPR模块 1.1.4 EPR五个层级 1.1.5 企业EPR业务总体流程图 1.1.6 什么类型的企业需…

6G关键新兴技术- 智能超表面(RIS)技术演进

摘要: 根据欧盟5G公私联盟协会定义,可重构智慧表面技术是由能够任意塑造电磁波面的材料组成,几乎是被动设备,可以适应或改变发射器和接收器之间的无线电信号。 一、产品定义及范围 根据欧盟5G公私联盟协会(5G Infrastructure P…

【网络协议】聊聊TCP如何做到可靠传输的

网络是不可靠的,所以在TCP协议中通过各种算法等机制保证数据传输的可靠性。生活中如何保证消息可靠传输的,那么就是采用一发一收的方式,但是这样其实效率并不高,所以通常采用的是累计确认或者累计应答。 如何实现一个靠谱的协议&…

这个第一个输出为啥是2 不是4 啊?

#include <iostream> using namespace std;class Point{ public:int x;int y;Point(int x1, int y1) : x(x1), y(y1) //成员初始化列表{ }int getDistance() {return x * x y * y;} };void changePoint1(Point point) //使用对象作为函数参数 {point.x 1;point.y -…