OS管理和进程的学习

1.冯诺依曼体系结构

1.1

输入设备:键盘,鼠标,键盘,网卡(网络接受),磁盘...

输出设备:显示器,磁盘,网卡(网络发送) ....

存储器:内存--进行运行程序,读取文件,写入文件....

运算器:对我们数据进行计算。

控制器:对计算机的进程进行控制。

运算器和控制器都在CPU中,冯诺依曼体系结构想要协同操作起来,就需要一根线进行连接,我们把它叫做总线,总线分为IO总线和系统总线。

IO总线:存储器 运算器 控制器之间的线

系统总线:存储区 输入设备 输出设备之间的线

1.2设计原因:

我们可以发现,输入设备没有直接去和CPU进行数据交流,而是先放到了寄存器当中,为什么会这样设计呢?原因就是CPU的运算是纳秒级别,非常非常快,而输入设备或者输出设备要进行读取数据的时候,要去磁盘中读取数据,而硬盘读取数据是毫秒,所以并不能同时很好的运行,而计算机的运算速率最后取决于什么,就是取决于那个慢的,所以这么做就白瞎了CPU这么快的运算速率了。所以有了内存,进行协调CPU和硬盘,这样输入设备和输出设备都直接和寄存器打交道,数据从寄存器到CPU,再从CPU到寄存器,最后到输出设备。

冯诺依曼这套设计理念,会提高CPU的运行效率,就是怎么说,CPU读取数据的时候,也会进行别的操作,然后边读取也可以别输出,所以并不是需要完全等数据读取完才会进行工作,所以不是单向的提高了速率,而是双向的提高效率,边输入边输出的效率。

1.3:

1.3.1一个程序运行的要先加载到内存中,为什么?:程序需要到CPU才能进行运行,而CPU是从哪里获取数据的?---内存

缓存存在内存中

二:OS系统

1.操作系统是什么:任何计算机系统都包含一个基本的程序集合,称为操作系统 (OS) 。笼统的理解,操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库,shell程序等等)
OS操作系统就像是一个管理者,进行管理同时运行的程序,进行合理的 管理软硬件资源
2.设计目的
与硬件交互,管理所有的软硬件资源(对下)
为用户程序(应用程序)提供一个良好的执行环境(对上)
2.系统是如何调用的: 先描述再组织
如果是对硬件的,其实每个硬件可以看成一个结构体,然后在这个结构体当中就会有硬件的状态啦,优先级啦等等,然后最后把每个硬件用链表连接起来,最后对硬件的操作,就是相当于对链表的操作--增删查改,这种思路就是先描述再组织。
3.如何理解系统调用
OS系统并不是直接和用户进行打交道的,而是程序员进行和OS操作,所以用户用的都是程序员创建好的程序,然后给用户提供图形化界面的接口,让非程序员的人可以点击鼠标进行操作,比如打游戏。而程序员也是上层用户,用的书系统调用接口提供的用户操作接口,然后我们就能进行指令操作,进行开发等等。而且OS操作系统,是不信任用户的,因为用户并不懂OS操作系统,如果新任用户,让用户对OS进行操作,就会导致非常多的bug。
结论就是,用户进行的开发操作或者玩游戏的操作,都是通过库或或者图形化界面的接口或者外壳或者指令进行系统调用。
OS虽然不相信用户,但是你可以使用它的程序 ,只是不让你修改人家的内部结构和内容。但是我们程序员该怎么和OS进行交流呢。 OS留了内部函数,各种库给外部—也就是留了接口,可以让程序员进行操作--进行系统调用。操作系统,C编译器,和几乎所有的 UNIX 应用程序 都是用 C  语言编写的,所以接口一定和c语言或者c++有关,底层平台的接口都必须和c有关,没有c或者c++,就没有接口,没有接口就不能使用操作系统,不能使用操作系统,就不能使用键盘,鼠标,网卡等地等。
总结就是,操作系统和库函数,封装的各种库,接口等等等 是上下级关系

三:进程

1:什么叫进程:(内部数据结构+代码程序和数据

我们如何管理进程,就是通过管理进程的属性数据,为了管理进程的属性数据,属性数据存进结构体--PCB(task_struct),管理结构体,我们就要为它创建数据结构--链表,然后操作系统就能调度进程这个也是先描述再组织。

2.进程是运行起来的程序,进程会根据task_struct 属性,被OS调度器调度,运行,每次按照一定的时间运行一定的时间,然后再调度下一个进程。进程是被调度的

3.为什么要有PCB->操作系统要管理,怎么管理就是先描述,描述的方法就是存进PCB中。

那PCB里面有哪些属性呢?:下次再见哈哈哈哈

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

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

相关文章

CTFHUB技能树之SQL——字符型注入

开启靶场,打开链接: 直接指明是SQL字符型注入,但还是来判断一下 (1)检查是否存在注入点 1 and 11# 返回正确 1 and 12# 返回错误 说明存在SQL字符型注入 (2)猜字段数 1 order by 2# 1 order…

Shell重定向输入输出

我的后端学习大纲 我的Linux学习大纲 重定向介绍 标准输入介绍 从键盘读取用户输入的数据,然后再把数据拿到Shell程序中使用; 标准输出介绍 Shell程序产生的数据,这些数据一般都是呈现到显示器上供用户浏览查看; 默认输入输出文件 每个…

QT的文件操作类 QFile

QFile 是 Qt 框架中用于文件处理的一个类。它提供了读取和写入文件的功能,支持文本和二进制文 件。 QFile 继承自 QIODevice ,因此它可以像其他IO设备一样使用。 主要功能 文件读写: QFile 支持打开文件进行读取或写入操作文件信息&#x…

neutron组件

1.实现虚拟交换机有两种方式 2.HCS网络节点 华为 HCS 将网络节点单独部署,且部署两台(主备部署) 两张万兆网卡,否则检测无法通过 L3 agent 部署在哪个节点,哪个节点就是网络节点 DHCP agent metadata agent 3.neutron概念 3.1Neutron支持…

人工智能 | 阿里通义千问大模型

简介 通义千问系列模型为阿里云研发的大语言模型。千问模型基于 Transformer 架构,在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。同时,在预训练模型的基础之上&…

整理一下实际开发和工作中Git工具的使用 (持续更新中)

介绍一下Git 在实际开发和工作中,Git工具的使用可以说是至关重要的,它不仅提高了团队协作的效率,还帮助开发者有效地管理代码版本。以下是对Git工具使用的扩展描述: 版本控制:Git能够跟踪代码的每一个修改记录&#x…

YOLO目标检测

文章目录 一、含义二、与传统检测对比1.one-stage的优缺点2.two-stage的优缺点 三、MAP指标1.基本概念2.计算方法3.指标意义 一、含义 YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,由Joseph Redmon等人于2016年提出。它的核心…

力扣 困难 52.N皇后II

文章目录 题目介绍题解 题目介绍 题解 法一:返回51题N皇后List的长度 法二: class Solution {private int n, ans;private boolean[] onPath, diag1, diag2;public int totalNQueens(int n) {this.n n;onPath new boolean[n];diag1 new boolean[n * …

秃姐学AI系列之:语义分割 + 数据集 | 转置卷积 + 代码

语义分割 语义分割将图片中的每个像素分类到对应的类别 通常来说现在的会议软件的背景虚化这个功能用的就是语义分割技术 无人车进行路面识别也是语义分割技术 语义分割 vs 实例分割 语义分割将图像划分为若干组成区域,这类问题的方法通常利用图像中像素之间的相关…

1 -《本地部署开源大模型》如何选择合适的硬件配置

如何选择合适的硬件配置 为了在本地有效部署和使用开源大模型,深入理解硬件与软件的需求至关重要。在硬件需求方面,关键是配置一台或多台高性能的个人计算机系统或租用配备了先进GPU的在线服务器,确保有足够的内存和存储空间来处理大数据和复…

html+css+js实现Notification 通知

实现效果&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Notif…

【Linux】为什么环境变量具有全局性?共享?写时拷贝优化?

环境变量表具有全局性的原因&#xff1a; 环境变量表之所以具有全局性的特征&#xff0c;主要是因为它们是在进程上下文中维护的&#xff0c;并且在大多数操作系统中&#xff0c;当一个进程创建另一个进程&#xff08;即父进程创建子进程&#xff09;时&#xff0c;子进程会继承…

SAP 批量复制角色处理办法

SAP 批量复制角色处理办法 1. 定义2. 功能3. 应用场景4. 操作步骤5. 注意事项6.业务场景7.操作步骤(1)导出旧角色(2)导出文件数据修改(3)上传修改好的角色(4)生成角色参数文件(5) 调用函数批量创建角色(6)关于权限常用功能 SAP 批量复制角色&#xff08;Batch Role Copy&#x…

【系统规划与管理师】历年各章节分值汇总(论文)

【移动端浏览】☞【系统规划与管理师】历年各章节分值汇总&#xff08;论文&#xff09; 第4章 IT服务规划设计 第5章 IT服务部署实施 第6章 IT服务运营管理 第7章 IT服务持续改进 第8章 监督管理 第9章 IT服务营销 第10章 团队建设与管理

【二】企业级JavaScript开发之代码编辑器

代码编辑器 程序员接触时间最长的就是代码编辑器。 代码编辑器主要分两种&#xff1a;IDE&#xff08;集成开发环境&#xff09;和轻量编辑器。很多人喜欢这两种各选一个。 当然还有很多其他很好的编辑器&#xff0c;你可以选择一个你最喜欢的。 选择编辑器就像选择其他工具…

开源OpenStack

1.查询HCS基于OpenStack哪个版本开发 2.九大核心组件 OpenStack可以对接FC也可以对接KVM主机&#xff1b;&#xff08;OpenStack 对接华为FusionCompute&#xff0c;一个集群对应 openstack 一台计算主机&#xff09;-引申出nova compute 2.1nova nova两个核心组件nova contro…

马拉车算法(C/C++)

#1024程序员节 | 征文# 马拉车算法&#xff08;Manachers Algorithm&#xff09;是一种用于在字符串中查找最长回文子串的线性时间复杂度算法。该算法由Udi Manacher在1980年代提出&#xff0c;因此得名。它的核心思想是利用已知的回文信息来减少不必要的比较&#xff0c;从而提…

【Linux】-权限

&#x1f511;&#x1f511;博客主页&#xff1a;阿客不是客 &#x1f353;&#x1f353;系列专栏&#xff1a;深入代码世界&#xff0c;了解掌握 Linux 欢迎来到泊舟小课堂 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 ​ 一、权限的概念 在Linux 中&…

软件测试与软件缺陷的基础知识

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

技术面没过,竟然是因为我没用过Pytest框架?

想象一下&#xff0c;你在一次技术面试中满怀信心&#xff0c;答完所有问题&#xff0c;结果却被告知没通过&#xff0c;原因竟然是——你没用过Pytest框架&#xff01;是的&#xff0c;在当今软件测试的世界里&#xff0c;Pytest已经成为了许多公司的“必备”技能。 那么问题…