【Linux】进程概念I --操作系统概念与冯诺依曼体系结构

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法...感兴趣就关注我吧!你定不会失望。

本篇导航

计算机是由两部分组成的:硬件+软件 .与硬件相关的为冯诺依曼体系结构 ,与软件相关的为:操作系统.

1. 冯诺依曼体系结构

如今大多数计算机(笔记本,服务器等)大多数都遵守冯诺依曼体系结构.实际中的模型细节较为复杂.这是抽象后的简单模型.其结构模型为:

在这张图中,红色为数据传输信号,而黑色则为控制信号

其中输入设备为:键盘,鼠标,硬盘等设备

输出设备为:显示器,打印机,硬盘等设备

运算器与控制器我们统称为CPU

这里的存储器是指内存,而不是硬盘.

为什么这样设计?

输入设备,输出设备的速度远远慢于CPU的速度.而存储器的速度在这二者之间.

由木桶效应可知.性能往往由短板决定.

若直接由CPU对接输入输出设备,则会造成CPU大多时候都在等待IO设备,CPU并不能被很有效的利用起来.

而加入了存储器这个介质,可以较大程度上解决这个问题.提高CPU的利用率.

那么为什么不选择最快的cache呢?

根据存储金字塔来看,越往上的价格越高,且速度越快.若全部采用最快的cache.计算机就会因为造价昂贵而无法普及了

一句话说:所有的设备都只能跟内存打交道

关于冯诺依曼体系结构,我们可以试着从以下这两个例子来理解

  1. 你登上qq后跟你的朋友进行聊天.(不涉及网络传输层面)

    首先键盘作为输入设备,我们输入数据,接着这些数据被放入到内存当中由CPU进行处理.处理完后被放入到输出设备,此时为 网卡.

    发送给你的朋友的电脑.

    同样,他的电脑也满足这个体系结构.网卡作为输入设备,收到消息后将消息放到内存中,cpu对消息进行处理后,显示在输出设备 屏幕

  1. 通过qq来传输文件

    首先硬盘作为输入设备,我们输入数据,接着这些数据被放入到内存当中由CPU进行处理.处理完后被放入到输出设备,此时为 网卡.

    发送给你的朋友的电脑.

    同样,他的电脑也满足这个体系结构.网卡作为输入设备,收到文件数据后将文件数据放到内存中,cpu对文件数据进行处理后,存储在输出设备 硬盘

2. 操作系统概念

操作系统是一款管理的软件,上面的冯诺依曼体系结构展现的是硬件层面.但一个个硬件如何进行协同工作的呢?这就是操作系统的意义所在.

为什么我们需要操作系统呢?

  1. 帮助用户管理好软硬件资源
  2. 为了给用户提供一个高效的运行环境.使用电脑的可以粗略的分为两类人,一类是普通用户,一类是程序员.前者使用的大多为程序员开发的软甲.而程序员才是真正使用操作系统的那一部分人.

因为操作系统不相信用户,对自己进行了封装,我们大多时候无法看见它的细节.为了能维护自身安全,也能给用户提供服务,用户只能通过其提供的接口去访问.也就是 系统调用接口

也就是说:**任何访问操作系统的行为,都只能通过系统调用去完成.**这样保证了系统的安全稳定.

操作系统怎么进行管理?

我们先设想一个场景:

在学校中,校长如何管理每一个学生呢?

首先,先描述 数据,将每一个学生的信息按照某种特定的格式记录,之后组织数据,将其放入excel表方便管理.之后想要找到某位学生,只要按照特定属性进行寻找即可.

在操作系统中也是一样的,将每一个需要管理的对象先按照特定的格式进行 描述数据 ,之后通过数据结构在进行组织即可.

所以**,在操作系统中,管理任何对象都可以将其转换为对某类数据结构的增删查改.**

具体怎么做的我们之后再说.

我们之前写过的通讯录不就是,先将每个人描述,在组织起来的过程嘛.其在某种方面上,与操作系统是相同的

cpp 复制代码
//描述
struct Person{
  int age;
  int tel;
  string address;
};
//组织
struct Contact
{
  Person p[100];  
};

当我们在调用printf()函数的时候,在做什么呢?

每一个调用硬件的函数,其内部封装了系统调用的接口,所以也是通过系统调用的接口去访问驱动程序,硬件,最终显示在屏幕上.

相关推荐
万花丛中一抹绿1 分钟前
服务器硬件电路设计之 SPI 问答(一):解密 SPI—— 从定义到核心特性
服务器·spi·服务器硬件电路设计
Tim风声(网络工程师)7 分钟前
DNS有关知识(根域名服务器、顶级域名服务器、权威域名服务器)
linux·运维·服务器
热爱跑步的恒川12 分钟前
告别服务器!Amazon Lambda无服务开发实战指南
运维·服务器
拾心2138 分钟前
【运维进阶】Shell 函数的知识与实践
运维
you秀1 小时前
linux中的iptables的简介与常用基础用法
linux·运维·服务器
画中有画2 小时前
使用AI来实现拼多多自动化运营脚本
运维·人工智能·自动化·ai编程·rpa·自动化脚本
xlntj2 小时前
VsCode远程连接服务器后安装Github Copilot无法使用
服务器·vscode·github
matlab的学徒4 小时前
计算机网络
服务器·网络·计算机网络
vvilkim6 小时前
Java主流框架全解析:从企业级开发到云原生
java·运维·云原生
Wy_编程10 小时前
Linux-文本搜索工具grep
linux·运维·服务器