【Linux杂货铺】操作系统


目录

🌈前言🌈

📁 冯诺依曼体系结构

📂 拓展问题:程序为什么要被加载到内存?

📂 主机与主机的交互

📁 操作系统的概念

 📂 作用

 📂 理解“管理”

 📂 系统调用 和 库函数的概念

📁 总结

🌈前言🌈

        欢迎收看本期【Linux杂货铺】,本期内容将讲解计算机中操作系统的概念。其中包括了操作系统是什么,有什么作用,以及用户是如何使用操作系统的。

        本文旨在脱离教材晦涩难懂的理念,从零开始理解操作系统及其周边概念。此外本文是以Linux系统进行讲解

        操作系统是计算机中重要组成部分,是我们学习的重点,也是日后学习进程的必备前置知识。所以如果想要学好进程,必须先了解什么是操作系统,以及计算机中底层结构。

📁 冯诺依曼体系结构

        我们以简单的输入输出代码为例,当我们当键盘中输入数据,如何输出到显示器呢?

        我们从键盘中输入数据,将数据输入到磁盘中,由磁盘将数据送到内存,CPU与内存进行数据的加工和处理,将结果由内存输出到显示器上。

        因此我们知道,数据是要在计算机的体系结构中进行流动,流动过程中,进行数据的加工处理。从一个设备到另一个设备,本质上是一种拷贝。

        因此,设备之间的拷贝效率,决定了计算机整机的运行效率。

     上图是计算机中存储设备的运行速度示例图。简单理解:寄存器 > 内存 > 硬盘,但价格也是由高到低。

        为什么CPU和硬盘之间要有内存呢?因为CPU的运行速度远远高于硬盘的运行速度。所以当CPU处理完数据后,往往还要等待硬盘就绪,这就导致了整机运行效率降低。

        如果硬盘内部全部采用寄存器的方式,是会大大提高运行效率,但造价会非常昂贵,考虑到普及等问题,就引入了内存的概念,内存与CPU之间的速度差小于硬盘与CPU。

        将硬盘中待处理的数据提前存到内存中,此后,CPU只与内存进行交互,不与外设进行交互,大大提高了整机的运行效率。

        冯诺依曼体系结构对我们计算机发展发挥了重要作用,大大提高了计算机的普及。以上我们就对冯诺依曼体系结构有了一些简单的理解。

📂 拓展问题:程序为什么要被加载到内存?

        在C语言学习过程中,我们的程序是要被加载到内存中才能执行,这是为什么呢?

        这就是因为冯诺依曼体系结构规定了,如果想要被CPU执行必须加载到内存。

        程序在没有被执行之前,是一个二进制文件,存放在硬盘中,想要被CPU执行,需要先调入到内存。

        在数据层面上:1. CPU不和外设直接交互,CPU只和内存交互;2. 外设的数据,不是直接给CPU,而是要先放入到内存中。 

📂 主机与主机的交互

        例如,一台山东的电脑,想要将硬盘的数据发往北京的一台电脑,其中硬上的数据经过本机流动到网卡,经过网络,传送到另一台电脑的网卡,再由网卡将数据流动到硬盘。

        因此,我们日后就要意识到,两台主机的交互,就是两个冯诺依曼体系结构的交互。

📁 操作系统的概念

        我们了解了冯诺依曼体系结构,知道硬盘的数据是要先放到内存的,那么谁去控制硬盘这些底层硬件到内存中呢?就是操作系统。

        任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。操作系统包括:

内核(进程管理,内存管理,文件管理,驱动管理)

其他程序(例如函数库,shell程序等)

        操作系统的定位就是,进行管理的的关键

 📂 作用

        1. 进行软硬件资源管理。

        2. 为上层提供良好(稳定,高效,安全)的运行环境。

 📂 理解“管理”

        管理 = 先描述,在组织。

        操作系统使用C语言写出来的,如何去管理底层硬件呢,先描述,在组织。通过结构体struct 将硬件抽象成一个结构体,内部具有相同的属性,不会因为硬件厂商的不同而改变。

        即厂商根据操作系统写出硬件的驱动程序,操作系统就会通过驱动程序将硬件信息保存到结构体中,这样就将底层硬件描述起来了。

        操作系统在通过链表等一系列数据结构,将结构体组织起来。

        这样,操作系统对底层硬件的管理,就变为了对数据结构的增删查改。

        通过结构体进行描述,再通过数据结构进行组织,最终演变为对数据结构的增删查改,这就是管理的本质。

 📂 系统调用 和 库函数的概念

        以上,了解了用户通过操作系统去操作底层硬件,操作系统通过结构体描述硬件,通过数据结构将结构体组织起来,来进行管理。

        这里我们必须有一个认知:用户不能越过操作系统,去操作底层硬件

        此外,用户也不能直接操作 操作系统,因为操作系统内部有需要重要信息,不能轻易修改。

而是通过调用系统调用接口,也就是提供一些接口函数,供用户使用,通过函数去操作OS。

        但是系统调用接口有部分内容是比较晦涩难以使用,有些人就讲这些接口封装了起来,转为轻松易懂的用户操作接口,供用户使用。

系统调用 和 库函数的区别:

    1. 在开发角度,操作系统对外表现为一个整体,但是会暴露自己的部分接口,供上层使用,这部分有操作系统提供的接口,叫做系统调用。

    2. 系统调用接口,功能较为基础,对用户的要求相对比较高,所以,有心的开发者对部分系统调用进行适度封装,从而形成了库,有了库,这便更有利于上层用户或者开发者进行二次开发。

  1. 用户不能越过操作系统,去操作底层硬件。
  2. 用户也不能直接访问操作系统,而是通过调用系统调用接口/用户操作接口。
  3. 用户操作接口lib是对系统调用接口的封装,旨在将复杂的系统调用使用起来较为简单。若有能力,可以直接使用系统调用。
  4.  但要注意,使用系统调用直接写出的代码,不具备跨平台性。因为不同操作系统有不同的统调用接口。而lib做了封装,隐藏了系统调用接口的差异

📁 总结

        以上,我们就对计算机的底层结构——冯诺依曼体系结构有了一定理解;了解了什么是操作系统,即进行管理的软件;初识了计算机的层状结构,知道了通过操作系统去操作底层硬件用户不能直接使用硬件,也不能直接访问操作系统;认知了系统调用接口和库函数,库函数就是对系统调用接口的封装。

        如果感觉本期内容对你学习操作系统有作用,欢迎点赞,收藏,关注。Thanks♪(・ω・)ノ

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop学习3:问题解决

文章目录 问题解决1. ERROR: but there is no HDFS_NAMENODE_USER defined2. JAVA_HOME is not set and could not be found.3. Hadoop-DFS页面访问不了4. namenode格式化失败,或者dfs页面打开失败5. ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Ab…

YOLOv5独家改进:backbone改进 | 最新大卷积核CNN架构UniRepLKNet,ImageNet 88% | CVPR2024

💡💡💡本文独家改进:大核卷积一统多种模态!RepLK正统续作UniRepLKNet,代替YOLOv5 Backbone 改进结构图如下: 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡…

对于双列集合map的学习

双列集合 特点 1.双列集合一次需要存一对数据,分别是键和值。 2.键和值一一对应,键不能重复,值能重复。 3.键值这个整体我们称之为键值对或者键值对对象,在java中叫做Entry对象。 Map的常见API Map是双列集合的顶层接口&…

ChatGLM:基于ChatGLM-6B使用ptuning进行微调,实现类instruction的效果

由于业务需要,调研下怎么训练一个虚拟角色出来,所以找了一些文档参考,其中有一个基于ChatGLM-6B使用ptuning进行微调,实现类instruction的效果的现成的项目,给大家分享下。 一、介绍 由于ChatGLM-6B 不支持instructio…

五子棋小游戏(sut实验报告)

实验目的 实现人与人或人与电脑进行五子棋对弈 实验内容 启动游戏,显示游戏参数设置界面,用户输入参数后进入游戏界面,显示棋盘及双方博弈过程,游戏过程中可选择退出游戏。判定一方获胜后结束本局游戏,可选择继续下…

Qt/QML编程之路:基于QWidget编程及各种2D/3D/PIC绘制的示例(45)

关于使用GWidget,这里有一个示例,看了之后很多图形绘制,控件使用,及最基本的QWidget编程都比较清楚了。ui的绘制: 运行后的界面如 工程中有非常丰富的关于各种图形的绘制,比如上图中circle,还有image。有下面一段readme的说明: # EasyQPainter Various operation pra…

容量治理三板斧:扩容、限流与降级

前言 随着现代软件系统日益复杂和用户规模的不断增长,分布式架构成为了保持系统高可用性与高性能的标准解决方案。然而,随之而来的是对系统容量治理的新挑战。在这样的背景下,容量治理成为了分布式系统设计和运维中不可或缺的一环。要确保系…

Java毕业设计 基于SpringBoot vue学科竞赛项目管理系统

Java毕业设计 基于SpringBoot vue学科竞赛项目管理系统 SpringBoot vue 学科竞赛项目管理系统 功能介绍 学生:登录 验证码 首页推广 图片轮播 竞赛通知 我的比赛队伍 组队招募 获奖通告 系统公告 统计分析 修改密码 修改个人信息 投诉建议 教师:登录 …

腾讯云和阿里云4核8G云服务器多少钱一年和1个月费用对比

4核8G云服务器多少钱一年?阿里云ECS服务器u1价格955.58元一年,腾讯云轻量4核8G12M带宽价格是646元15个月,阿腾云atengyun.com整理4核8G云服务器价格表,包括一年费用和1个月收费明细: 云服务器4核8G配置收费价格 阿里…

以某厂商方案为例,讲一下如何手工配置传统网络到SD-WAN网络的改造实施

正文共:1024 字 8 图,预估阅读时间:3 分钟 假设有这样一张网络,其中RTA和PCA表示某公司的A分支,通过中国电信CT路由器接入互联网ISP;RTB和PCB表示某公司的B分支,通过中国联通CU路由器接入互联网…

【webrtc】m122:PacingController 源码阅读

PacingController 关系与BitrateProber 关系更为密切PacingController 内置BitrateProber G:\CDN\signalapp_webrtc\modules\pacing\pacing_controller.hPacingControllerBitrateProber prober_;PacingController 关系与BitrateProber 关系更为密切,在整个系统中的地位也更重要…

ssm+vue的高校课程评价系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的高校课程评价系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

大语言模型系列-GPT-2

文章目录 前言一、GPT-2做的改进二、GPT-2的表现总结 前言 《Language Models are Unsupervised Multitask Learners,2019》 前文提到,GPT-1利用不同的模型结构微调初步解决了多任务学习的问题,但是仍然是预训练微调的形式,GPT-…

防御保护--IPSec VPN实验

防御保护--IPsec VPN实验 一、实验需求二、配置IP地址三、配置IPSec通道四、配置NAT策略4.1 配置NAT策略4.2 配置服务器映射 五、配置安全策略5.1 查看IKE协商是否建立: 六、配置静态路由七、测试 一、实验需求 基础配置和实验步骤可参考: 防御保护–防…

设计模式前置了解uml图

在开发前,会进行系统的设计,而数据模型的设计大多通过 UML 类图实现。为了在 UML 类图中清晰地表达类之间的关系,需要对类之间的关系有一定的认识,并且了解相关的表达符号。 类之间的关系有以下几种: 组合 聚合 关联…

202012青少年软件编程(图形化) 等级考试试卷(一级)

青少年软件编程(图形化) 等级考试试卷(一级)2020年12月 第1题:【 单选题】 下面哪个区域是“舞台区” ?( ) A:A B:B C:C D:D 【正确答案】: B 【试题解析】 : 第2题:【 单选题】 下图为小猫的初始方向, 哪个积木可以让小猫面向正右方?( ) A: B: C:…

【Linux基础(三)】信号

学习分享 1、信号的基本概念2、查看信号列表3、常见信号名称4、signal库函数5、发送信号kill6、kill - signal (无参信号)示例6.1、kill - signal (不可靠信号)示例6.2、kill - signal (可靠信号)示例 7、信号分类7.1、信号运行原理分类7.2、信号是否携带…

云服务器2核4G配置,阿里云和腾讯云哪个便宜?性能更好?

租用2核4G服务器费用多少?2核4G云服务器多少钱一年?1个月费用多少?阿里云2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年;腾讯云轻量2核4G服务器5M带宽165元一年、252元15个月、540元三…

【Stable Diffusion】入门:原理简介+应用安装(Windows)+生成步骤

【Stable Diffusion】入门:原理简介应用安装(Windows)生成步骤 原理简介应用安装 原理简介 稳定扩散生成模型(Stable Diffusion)是一种潜在的文本到图像扩散模型,能够在给定任何文本输入的情况下生成照片般逼真的图像。 应用安…

蓝桥杯2019年第十届省赛真题-修改数组

查重类题目,想到用标记数组记录是否出现过 但是最坏情况下可能会从头找到小尾巴,时间复杂度O(n2),数据范围106显然超时 再细看下题目,我们重复进行了寻找是否出现过,干脆把每个元素出现过的次数k记录下来,直…