【Linux】进程概念I --操作系统概念与冯诺依曼体系结构
Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法…感兴趣就关注我吧!你定不会失望。
本篇导航
- 1. 冯诺依曼体系结构
- 为什么这样设计?
- 2. 操作系统概念
- 为什么我们需要操作系统呢?
- 操作系统怎么进行管理?
计算机是由两部分组成的:硬件+软件.与硬件相关的为冯诺依曼体系结构,与软件相关的为:操作系统.
1. 冯诺依曼体系结构
如今大多数计算机(笔记本,服务器等)大多数都遵守冯诺依曼体系结构.实际中的模型细节较为复杂.这是抽象后的简单模型.其结构模型为:
在这张图中,红色为数据传输信号,而黑色则为控制信号
其中输入设备为:键盘,鼠标,硬盘等设备
输出设备为:显示器,打印机,硬盘等设备
运算器与控制器我们统称为CPU
这里的存储器是指内存,而不是硬盘.
为什么这样设计?
输入设备,输出设备的速度远远慢于CPU的速度.而存储器的速度在这二者之间.
由木桶效应可知.性能往往由短板决定.
若直接由CPU对接输入输出设备,则会造成CPU大多时候都在等待IO设备,CPU并不能被很有效的利用起来.
而加入了存储器这个介质,可以较大程度上解决这个问题.提高CPU的利用率.
那么为什么不选择最快的cache呢?
根据存储金字塔来看,越往上的价格越高,且速度越快.若全部采用最快的cache.计算机就会因为造价昂贵而无法普及了
一句话说:所有的设备都只能跟内存打交道
关于冯诺依曼体系结构,我们可以试着从以下这两个例子来理解
-
你登上qq后跟你的朋友进行聊天.(不涉及网络传输层面)
首先键盘作为输入设备,我们输入数据,接着这些数据被放入到内存当中由CPU进行处理.处理完后被放入到输出设备,此时为 网卡.
发送给你的朋友的电脑.
同样,他的电脑也满足这个体系结构.网卡作为输入设备,收到消息后将消息放到内存中,cpu对消息进行处理后,显示在输出设备 屏幕
-
通过qq来传输文件
首先硬盘作为输入设备,我们输入数据,接着这些数据被放入到内存当中由CPU进行处理.处理完后被放入到输出设备,此时为 网卡.
发送给你的朋友的电脑.
同样,他的电脑也满足这个体系结构.网卡作为输入设备,收到文件数据后将文件数据放到内存中,cpu对文件数据进行处理后,存储在输出设备 硬盘
2. 操作系统概念
操作系统是一款管理的软件,上面的冯诺依曼体系结构展现的是硬件层面.但一个个硬件如何进行协同工作的呢?这就是操作系统的意义所在.
为什么我们需要操作系统呢?
- 帮助用户管理好软硬件资源
- 为了给用户提供一个高效的运行环境.使用电脑的可以粗略的分为两类人,一类是普通用户,一类是程序员.前者使用的大多为程序员开发的软甲.而程序员才是真正使用操作系统的那一部分人.
因为操作系统不相信用户,对自己进行了封装,我们大多时候无法看见它的细节.为了能维护自身安全,也能给用户提供服务,用户只能通过其提供的接口去访问.也就是 系统调用接口
也就是说:**任何访问操作系统的行为,都只能通过系统调用去完成.**这样保证了系统的安全稳定.
操作系统怎么进行管理?
我们先设想一个场景:
在学校中,校长如何管理每一个学生呢?
首先,先描述数据,将每一个学生的信息按照某种特定的格式记录,之后组织数据,将其放入excel表方便管理.之后想要找到某位学生,只要按照特定属性进行寻找即可.
在操作系统中也是一样的,将每一个需要管理的对象先按照特定的格式进行 描述数据,之后通过数据结构在进行组织即可.
所以**,在操作系统中,管理任何对象都可以将其转换为对某类数据结构的增删查改.**
具体怎么做的我们之后再说.
我们之前写过的通讯录不就是,先将每个人描述,在组织起来的过程嘛.其在某种方面上,与操作系统是相同的
//描述
struct Person{int age;int tel;string address;
};
//组织
struct Contact
{Person p[100];
};
当我们在调用printf()函数的时候,在做什么呢?
每一个调用硬件的函数,其内部封装了系统调用的接口,所以也是通过系统调用的接口去访问驱动程序,硬件,最终显示在屏幕上.
相关文章:
【Linux】进程概念I --操作系统概念与冯诺依曼体系结构
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我吧!你定不会失望。 本篇导航 1. 冯诺依曼体系结构为什么这样设计? 2. 操作系统概念为什么我们需要操作系统呢?操作系统怎么进行管理? 计算机是由两部分组…...
BRAM/URAM资源介绍
BRAM/URAM资源简介 Bram和URAM都是FPGA(现场可编程门阵列)中的RAM资源。 Bram是Block RAM的缩写,是Xilinx FPGA中常见的RAM资源之一,也是最常用的资源之一。它是一种单独的RAM模块,通常用于存储大量的数据࿰…...
分享一个基于python的个性推荐餐厅系统源码 餐厅管理系统代码
💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、Node.js、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! …...
Mysql5.7开启SSL认证且支持Springboot客户端验证
Mysql5.7开启SSL认证 一、查看服务端mysql环境 1.查看是否开启了ssl,"have_ssl" 为YES的时候,数据库是开启加密连接方式的。 show global variables like %ssl%;2.查看数据库版本 select version();3.查看数据库端口 show variables like port;4.查看数据库存放…...
微信小程序的页面滚动事件监听
微信小程序中可以通过 Page 的 onPageScroll 方法来监听页面滚动事件。具体步骤如下: 在页面的 onLoad 方法中注册页面滚动事件监听器: Page({onLoad: function () {wx.pageScrollTo({scrollTop: 0,duration: 0});wx.showLoading({title: 加载中,});wx…...
数据可视化:四大发明的现代转化引擎
在科技和工业的蓬勃发展中,中国的四大发明——造纸术、印刷术、火药和指南针,早已不再是古代创新的象征,而是催生了众多衍生行业的崭新可能性。其中,数据可视化技术正成为这些行业的一颗璀璨明珠,开启了全新的时代。 1…...
HarmonyOS实现几种常见图片点击效果
一. 样例介绍 HarmonyOS提供了常用的图片、图片帧动画播放器组件,开发者可以根据实际场景和开发需求,实现不同的界面交互效果,包括:点击阴影效果、点击切换状态、点击动画效果、点击切换动效。 相关概念 image组件:图片…...
3D视觉测量:计算两个平面之间的夹角(附源码)
文章目录 1. 基本内容2. 代码实现文章目录:形位公差测量关键内容:通过视觉方法实现平面之间夹角的计算1. 基本内容 要计算两个平面之间的夹角,首先需要知道这两个平面的法向量。假设有两个平面,它们的法向量分别为 N 1 和 N 2 N_1 和 N_2...
deepin V23通过flathub安装steam畅玩游戏
deepin V23缺少32位库,在星火商店安装的steam,打开报错,无法使用! 通过flathub网站安装steam,可以正常使用,详细教程如下: flathub网址:主页 | Flathub 注意:flathub下载速度慢,只…...
C语言是否快被时代所淘汰?
今日话题,C语言是否快被时代所淘汰?在移动互联网的冲击下,windows做的人越来越少,WP阵营没人做,后台简单的php,复杂的大数据处理的java,要求性能的c。主流一二线公司基本上没多少用C#的了。其实…...
简化转换器:使用您理解的单词进行最先进的 NLP — 第 1 部分 — 输入
一、说明 变形金刚是一种深度学习架构,为人工智能的发展做出了杰出贡献。这是人工智能和整个技术领域的一个重要阶段,但也有点复杂。截至今天,变形金刚上有很多很好的资源,那么为什么要再制作一个呢?两个原因ÿ…...
C++多线程编程(第三章 案例2,条件变量,生产者-消费者模型)
目录 1、condition_variable1.1、生产者消费者模型1.2、改变共享变量的线程步骤1.3、等待信号读取共享变量的线程步骤1.3.1、获得改变共享变量线程共同的mutex1.3.2、wait()等待信号通知1.3.2.1、无lambda表达式1.3.2.2 lambda表达式 样例代码 1、condition_variable 等待中&a…...
Go语言使用AES加密解密
Go语言提供了标准库中的crypto/aes包来支持AES加密和解密。下面是使用AES-128-CBC模式加密和解密的示例代码: package mainimport ("crypto/aes""crypto/cipher""encoding/base64""fmt" )func main() {key : []byte("…...
MAC ITEM 解决cd: string not in pwd的问题
今天使用cd 粘贴复制的路径的时候,报了这么一个错. cd: string not in pwd eistert192 Library % cd Application Support cd: string not in pwd: Application eistert192 Library % 让人一脸懵逼. 对比一下,发现中文路径里的空格截断了路径 导致后面的路径就没有办法被包含…...
解决跨域的几种方式
解决跨域的几种方式 JSONPCORS(跨域资源共享)代理 JSONP 利用script标签可以跨域加载资源的特性,通过动态创建一个script标签,然后将响应数据作为回调函数的参数返回,从而实现跨域请求资源。该方式只支持 GET 请求方式…...
单片机-LED介绍
简介 LED 即发光二极管。它具有单向导电性,通过 5mA 左右电流即可发光 电流 越大,其亮度越强,但若电流过大,会烧毁二极管,一般我们控制在 3 mA-20mA 之间,通常我们会在 LED 管脚上串联一个电阻,…...
ERROR:GLOBAL_INITIALISERS: do not initialise globals to 0
错误信息 ERROR:GLOBAL_INITIALISERS: do not initialise globals to 0 表示全局变量的初始化值不应该为0。这个错误通常出现在一些编程语言(如C、C)的编译过程中,以帮助程序员避免一些潜在的问题。 在一些编程语言中,全局变量的…...
高德地图,绘制矢量图形并获取经纬度
效果如图 我用的是AMapLoader这个地图插件,会省去很多配置的步骤,非常方便 首先下载插件,然后在局部引入 import AMapLoader from "amap/amap-jsapi-loader";然后在methods里面使用 // 打开地图弹窗mapShow() {this.innerVisible true;this.$nextTick(() > {…...
【100天精通Python】Day59:Python 数据分析_Pandas高级功能-多层索引创建访问切片和重塑操作,pandas自定义函数和映射功能
目录 1 多层索引(MultiIndex) 1.1 创建多层索引 1.1.1 从元组创建多层索引 1.1.2 使用 set_index() 方法创建多层索引 1.2 访问多层索引数据 1.3 多层索引的层次切片 1.4 多层索引的重塑 2 自定义函数和映射 2.1 使用 apply() 方法进行自定义函…...
javaee springMVC 一个案例
项目结构 pom.xml <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...
Android T 窗口层级其三 —— 层级结构树添加窗口(更新中)
序 尚未添加窗口的层级结构树,如图 DisplayArea层级结构中的每一个DisplayArea,都包含着一个层级值范围,这个层级值范围表明了这个DisplayArea可以容纳哪些类型的窗口。 每种窗口类型,都可以通过WindowManagerPolicy.getWindowLa…...
【Linux】管道
管道命令 #include <unistd.h> int pipe(int pipefd[2]); 在Linux中,管道(pipe)的返回值是一个整数数组,包含两个文件描述符。这两个文件描述符分别代表管道的读端和写端。 当成功创建一个管道时,pipe() 系统调用…...
postgre 12.11单实例安装文档
一 下载 访问https://www.postgresql.org/download/,点击左侧的‘source进行下载,一般选择bz2的安装包。 二 安装 这里安装12.11版本的postgre,数据目录路径为/data/server/pgdata,端口为5432. 2.1 安装依赖包 #安装 yum in…...
使用LightPicture开源搭建私人图床:详细教程及远程访问配置方法
文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…...
基于视觉重定位的室内AR导航项目思路(1):最初的项目思路(SLAM)
文章目录 最初的项目思路(SLAM):后文: 前情提要: 是第一次做项目的小白,文章内的资料介绍如有错误,请多包含! 最初的项目思路(SLAM): 由于我们在…...
小白学go基础05-变量声明形式
和Python、Ruby等动态脚本语言不同,Go语言沿袭了静态编译型语言的传统:使用变量之前需要先进行变量的声明。 变量声明形式使用决策流程图 这里大致列一下Go语言常见的变量声明形式: var a int32 var s string "hello" var i 13 …...
高可用Kuberbetes部署Prometheus + Grafana
概述 阅读官方文档部署部署Prometheus Grafana GitHub - prometheus-operator/kube-prometheus at release-0.10 环境 步骤 下周官方github仓库 git clone https://github.com/prometheus-operator/kube-prometheus.git git checkout release-0.10 进入工作目录 cd kube…...
ardupilot 安装gcc-arm-none-eabi编译工具
目录 文章目录 目录摘要0简介1.下载网站2.安装摘要 本节主要记录ardupilot使用的编译器安装过程。 0简介 gcc-arm-none-eabi是GNU项目下的软件,是一个面向裸机arm的编译器。那么说了这么多介绍,它都包含什么具体功能又怎么安装与使用呢,我们继续。 1.下载网站 gcc-arm-n…...
ORACLE集群管理-19C RAC重新配置IPV6
1 问题概述 数据库已经配置和IPV6和 IPV4双线协议,需要重新配置IPV6 2 关闭相关资源 1 root用户执行 ./srvctl stop scan_listener -i 1 ./srvctl stop scan ./srvctl stop listener -n orcldb1 ./srvctl stop listener -n orcldb2 ./srvctl stop vip -n orcldb…...
Mybatis实体类属性与数据库字段的对应关系
方法一:起别名 select t_id(数据库字段) tId(类的属性), ... , ...from 表名 方法二:开启驼峰映射 <!-- 开启驼峰映射 数据库 s_id java类 sId--><setting name"mapUnderscoreToCamelCase" value"true"/> 当java类中属性命名…...
网站建设书 模板下载/黄山seo
做过测试可能对需求方面有所了解,但是如果要坐产品的话,产品方面的知识还是必须掌握的。比如说原型的设计,需求的分析,交互效果的设计等等。建议可以从产品助理做起。 产品经理的要求非常高 一个最硬性的标准就是表达能力…...
运用vs2010c 做网站/百度收录提交申请网站
目录 经典RDA 距离向压缩 方位向傅里叶变换 距离徙动校正 相位补偿 插值 方位压缩和方位向逆傅里叶变换 考虑SRC的RDA 距离向频域匹配滤波 方位向傅里叶变换 SRC 距离向IFFT RCMC 方位向压缩与IFFT 由于原文公式较多,所以本文部分内容以截图的形式分享给…...
在哪个网站可以搜画画做品/校园推广
关于小学课程表安排的建议 一、 总体要求:学校课程表要以班级为单位设计编排上报学区,平行班比较多的最好一个年级的课程表在同一张纸上,这样做有利于审核。例: 学校三年级一班 星期一星期二星期三星期四星期五1语文数学语文数学语…...
基于cms的网站设计与实现毕业论文/交换友情链接是什么意思
在使用ECS服务器时,发现网络流量异常,或者发现服务器有异常向外发包行为,可使用抓包工具抓取网络流量包,分析流量包的特征,看看这些流量包来自哪里,或者发向哪里了。根据这些信息,可进一步诊断异…...
网站的开发语言有哪些/关键词林俊杰mp3在线听
文章目录(一)inline 内联函数(1)宏函数和内联函数的区别:(2)inline 内联函数的优缺点:(3)使用内联函数建议:(二)inline函数…...
网站建设与网页设计入门/如何快速被百度收录
复制代码 代码如下://date:2011-08-05class RunTime//页面执行时间类{private $starttime;//页面开始执行时间private $stoptime;//页面结束执行时间private $spendtime;//页面执行花费时间function getmicrotime()//获取返回当前微秒数的浮点数{list($usec,$sec)explode("…...