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

理解操作系统

文章目录

  • 一、冯诺依曼体系结构
  • 二、操作系统的概念
  • 三、如何理解“管理”?
  • 四、系统调用和库调用的概念

一、冯诺依曼体系结构

在这里插入图片描述
冯诺依曼体系结构描述的是 计算机硬件结构 ,相当于计算机的骨架。它大体可以分为4部分:

  • 输入设备:键盘、鼠标、话筒、网卡、摄像头、磁盘…
  • 输出设备:显示器、音响、网卡、打印机、磁盘…
  • 存储器:即内存。
  • 中央处理器(CPU):由运算器和控制器组成,是用来做数据处理的。

要理解这个结构,我们需要就盯着数据流动这条线来分析,很容易发现CPU是只与存储器打交道,而不与输入输出设备直接接触,这里存储器起到一个交通枢纽的作用。那么为什么会有这种结构呢,为什么不是“输入”—>“CPU处理”—>“输出”呢?

其实是因为CPU的运行速度是非常快的,但是输入输出设备对数据的处理速度相比CPU慢了很多很多,根据“短板效应”,我们可以知道输入输出设备会拉慢整个系统的速度,而中间加入存储器的调节就会使系统的执行效率大大的提升,也是因为有了存储器才使得现在的计算机变得便宜,让大部分人都用得起计算机。

设备之间数据的如何流动?可以想象一下,使用QQ发给朋友信息,那么数据传输过程如下:
在这里插入图片描述

二、操作系统的概念

在这里插入图片描述

笼统的理解,操作系统包括:

  • 内核(进程管理,内存管理,⽂件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等)

软硬件层状体系结构:

在这里插入图片描述
操作系统 是一个对软硬件进行管理的软件

如上图所示,操作系统的目的:为用户程序(应⽤程序)提供⼀个良好的执⾏环境。

实现的手段:与硬件交互,管理所有的软硬件资源。

操作系统充当管理者的角色,驱动程序充当执行者的角色,底层硬件则是充当被管理者的角色。

  • 在访问操作系统时必须使用系统调用(即系统提供的函数)。
  • 如果一个程序访问了底层硬件,那么它必须贯穿整个软硬件体系结构。

三、如何理解“管理”?

在生活中管理者进行管理是不用与被管理者见面的,比如校长对学生进行管理并不用与学生接触,那么是如何管理的呢?其实校长只需要收集学生 数据 ,转而对这些数据进行管理即可。比如校长看了这个学生信息发现违纪比较多,就通知导员将其开除,然后将该学生数据删除不再管理,同理,如果发现某个学生成绩比较好,就通知导员给予奖学金,并进行记录。

所以校长实际上是 对数据进行管理 ,校长对数据的某个操作进而映射到导员去执行对应的行为。

以上其实是模拟了一个操作系统的管理过程,对应关系如下:

  • 校长(管理者):操作系统
  • 导员(执行者):驱动程序
  • 学生(被管理者):底层硬件

所以可以把操作系统的管理总结为六个字: “先描述,再组织”。

基于上面一些原因比如C++有了类,用来描述被管理者。又如数据结构,用来把对象组织起来,进而方便管理。

四、系统调用和库调用的概念

根据上文我们知道操作系统是用来服务于用户的,但其实操作系统是并不相信用户的,不能让用户想干什么就干什么。

可以把操作系统比作现实生活中的一个银行系统,银行既要服务于你又不能相信,为保证自己的系统不被破坏,所以银行给用户提供了一些窗口,用于服务用户,而不是直接让用户进入到银行内部。

在这里插入图片描述

同理操作系统就有了 系统调用 ,其实就是一个 函数 ,只不过是系统提供的。

而对于 库调用 ,就是在 系统调用基础上再封装一层 从而把那些比较常用的复杂操作在使用层变得简单化,使其更便捷。

举个例子:一个老大爷去银行办一些事情,但是他什么都不懂,那些窗口用来干什么,要如何操作它什么也不知道。那么这时大堂经理或者服务员就找到他,询问老大爷要做什么,从而帮助他完成这件事情。那么通过大堂经理或者服务员来帮助完成这个事情,相当于使用了库调用

http://www.lryc.cn/news/594019.html

相关文章:

  • Leetcode 06 java
  • 深入理解设计模式:访问者模式详解
  • VSCode中Cline无法正确读取终端的问题解决
  • 详解Mysql Order by排序底层原理
  • 金融大前端中的 AI 应用:智能投资顾问与风险评估
  • Facebook 开源多季节性时间序列数据预测工具:Prophet 快速入门 Quick Start
  • Centos卷挂载失败系统无法启动
  • 【Java项目安全基石】登录认证实战:Session/Token/JWT用户校验机制深度解析
  • Android系统5层架构
  • 手推OpenGL相机的正交投影矩阵和透视投影矩阵(附源码)
  • Java 大视界 -- Java 大数据在智能安防门禁系统中的权限动态管理与安全审计(353)
  • LeetCode第337题_打家劫舍III
  • 如何实战优化SEO关键词提升百度排名?
  • SQL Server(2022)安装教程及使用_sqlserver下载安装图文
  • python的pywebview库结合Flask和waitress开发桌面应用程序简介
  • Flink2.0学习笔记:Table API SQL
  • 基于单片机的智能家居安防系统设计
  • GaussDB 数据库架构师修炼(七) 安全规划
  • 【k8s集群管理平台】k8s运维管理的新玩法,让运维电脑随时不离身的现状成为过去
  • 基于机器视觉的迈克耳孙干涉环自动计数系统设计与实现
  • 后台管理系统登录模块(双token的实现思路)
  • 【硬件】GalaxyTabPro10.1(SM-T520)刷机/TWRP/LineageOS14/安卓7升级小白向保姆教程
  • ThinkPHP8极简上手指南:开启高效开发之旅
  • AXI接口
  • HTML和CSS快速入门
  • 相似度计算
  • Golang的微服务链路追踪
  • Unity笔记——Unity 封装方法指南
  • AS32X601 系列 MCU 硬件最小系统设计与调试方案探析
  • 神经网络:池化层