操作系统(OS)

文章目录

  • 前言
  • 一、操作系统是什么?
  • 二、用户对资源的访问
  • 三、操作系统是怎么做到管理的?


前言

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。冯诺依曼体系结构中的硬件单元提供的功能,这些硬件由操作系统来控制与管理,操作系统对下是对软硬件资源进行管理,对上(用户)提供稳定良好的环境。


一、操作系统是什么?

操作系统是一款进行管理的软件,没错它也是一个软件,它管理一堆软硬件,但它自己也是一个软件它也可以软件可以管理软件就像是现实生活中人管理人一样(管理软件),还有人管理一些机械设备,如机房管理人员(管理硬件)。linux操作系统内核包括(进程管理,内存管理,文件管理,驱动管理)
在计算机层状结构中
在这里插入图片描述

操作系统处于中间核心位置,它对下层实现软硬件资源的管理,然后对上层(用户)提供良好稳定的运行环境。操作系统帮助用户管理好下面的软硬件资源,操作系统下一层是驱动程序层,驱动程序也是软件,最底层是硬件所以对下提供软硬件资源的管理。驱动程序层处于硬件层和操作系统之间它有直接与硬件匹配的驱动,例如鼠标,在电脑上匹配鼠标时,刚开始时需要我们等上几秒,会有提示鼠标对应的驱动就绪。每一个硬件都配有自己对应的驱动程序。

二、用户对资源的访问

对于计算机来说,用户分两种:普通用户和程序员用户,普通用户用程序员开发的软件,而程序员可以说是去和计算机进行互动的一类人员,程序员要去开发软件,那么程序员就会去底层去访问硬件资源吗?不是的,其实程序员也不知道计算机硬件是怎么搞得,他不明白,那么他对于硬件那些资源该如何办,而且操作系统还在呢,既然操纵系统是管理软硬件资源的,那么我通过操作系统就可以对数据资源进行访问了吧。虽然是这样但是操作系统内部有很多重要的数据,它不想暴露给用户看见,因为怕程序员员胡乱改变导致发生不好的效果万一更改之后让计算机用不了了怎么办,但是操作系统该怎么办,它既不相信用户但是又要给用户提供服务,怎么办,这时它可以开放一些接口让用户来调用,这样用户就可以得到自己想要的,然后操作系统也没有损失。操作系统为用户(上层)提供接口服务,供用户调用接口,接口的调用让用户得到了自己想要的数据,用户所有访问操作系统的行为都将是通过系统调用完成,那些接口封装为库,很多为系统调用接口。

三、操作系统是怎么做到管理的?

操作系统是如何做到对软硬件资源管理的?需要拿到被管理者的属性信息只需要对这些属性信息就可以实现对软硬件资源的管理。在日常生活中,管理者是谁?被管理者又是谁?学校,管理者是校长,公司中,管理者是老板,在生活中管理者可以说是一个集体中最大的一个。而学校学生是被管理者,公司中员工是被管理者,而可以说大多数时间学生和校长(老板和员工)是很少见面的,但是他们之间又要有管理与被管理的关系,这是如何做到的,也许在那种小的集体中,管理者天天和被管理者见面,这样实施管理,不过就算他们见面也只是关注这个人的信息和最近的工作状态或者学习状态达到管理,而不见面要实现管理也只是需要得到他的属性信息以及最近状态同样可以达到管理,然后将得到的数据状态信息管理起来就可以做到对人管理,所以这也是他们不见面却能对学生或者员工进行管理,但是不见面如何获取资源,这中间就需要一个中间人,也就是一个执行者,就像是大学的辅导员一样在计算机中就是驱动程序
但是吧,管理者拿到了这些信息怎么管理是一个问题若是信息较少,可以直接将资料一堆一堆放着就行了,但是若是信息很多,管理者忙不过来啊,他也就需要将这些信息组织起来管理,而又考虑到这些人都有共同的属性只是具体信息不同,管理者就想到了用一个人的模板来描述一个人的信息,然后将这份模板交给执行者执行者去照着这个模板收集对应的信息,但是这些一份份信息模板对应的数据还是很多啊,人太多了,要咋个管理
于是就想着人的属性既然都是一样的,管理者又恰好是一个技术程序员,那么它想着我有这么多属性的集合,把这些属性信息集合描述为一个结构体吧,而结构体对象就相当于一个人,要对这些结构体对象进行管理可以在结构体中再添加一个属性信息下一个结构体的指针字段信息,这样可以用链表方式对人的信息进行管理,而这样的管理方式叫做先描述,再组织先对被管理者的属性信息描述为一个个属性信息集,再将属性集用数据结构组织起来,就可以做到快速管理。这样当需要最高的人,只需要对身高字段数据结构进行遍历,找出最高的那个即可,对人的管理就转换为了对数据结构的增删查改了。
而操作系统对于软硬件资源的管理,同样是先对软硬件资源信息做描述,然后再以某种数据结构组织起来,最终对软硬件资源的管理就变成了对某种数据结构的增删查改了。同样是先描述,再组织。认识每一个事物都是要知道他们的属性信息,不是一开始就知道那是什么的,而是通过属性信息了解的,同样的对软硬件资源都是要将他们的信息描述为一个属性集合,然后以某种数据结构组织进行管理。先描述,再组织这是一个对事物进行建模的过程,在操作系统中,注定存在大量的数据结构要用来组织软硬件以达到管理。

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

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

相关文章

ChatGPT登陆提示:“Please unblock challenges.cloudflare.com to proceed…”

ChatGPT登陆时提示:“Please unblock challenges.cloudflare.com to proceed”, 说明:请解除对challenges.cloudflare.com的屏蔽以继续 原因及解决方法: 1、出现这个问题,一般都是网络和本地环境问题,可以…

Seata 2.x 系列【7】服务端集成 Nacos 2.x

有道无术,术尚可求,有术无道,止于术。 本系列Seata 版本 2.0.0 本系列Spring Boot 版本 3.2.0 本系列Spring Cloud 版本 2023.0.0 源码地址:https://gitee.com/pearl-organization/study-seata-demo 文章目录 1. 概述2. 安装 N…

滑动窗口最大值(leetcode hot100)

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums [1,3,-1,-3,5,3,6,7], k 3 输…

mvnd 安装和配置

mvnd 是 maven 的增强工具,在执行速度方面优于 maven 下载安装: https://github.com/apache/maven-mvnd/releases/ 根据不同的系统下载不同的安装包 配置环境变量 Path 新增 mvnd 安装路径下的 bin 目录 E:\maven-mvnd-1.0-m8-m39-windows-amd64\b…

学会Promise,看这里!!!

前言 众所周知,在JavaScript的世界中,代码都是单线程执行的。由于这个原因,JavaScript中的耗时操作,如网络操作、浏览器事件等,都需要异步执行。这也导致在JavaScript中异步操作是非常频繁且常见的。 异步&#xff1a…

B端能用就行,颜值无所谓?你现在还敢说吗,马上轮到工业HMI

在当前的商业环境下,用户体验和界面设计的重要性越来越受到重视,即使是B端用户也希望能够使用界面美观、易于操作的工业HMI系统。 漂亮的设计不仅可以提高用户的工作效率和满意度,还可以提升产品的竞争力和市场份额。因此,即使是…

Java 面试题之框架

1. Spring 是什么 Sping 是包含了众多工具方法的 IOC 容器,IOC是控制反转,说的是对象的创建和销毁的权利都交给 Spring 来管理了, 它本身又具备了存储对象和获取对象的能力. 。 容器:字面意思,用来容纳某种物品的装置。 比如 L…

力扣题目训练(22)

2024年2月15日力扣题目训练 2024年2月15日力扣题目训练563. 二叉树的坡度637. 二叉树的层平均值643. 子数组最大平均数 I304. 二维区域和检索 - 矩阵不可变154. 寻找旋转排序数组中的最小值 II 2024年2月15日力扣题目训练 2024年2月15日第二十二天编程训练,今天主要…

高并发缓存策略大揭秘:面试必备的缓存更新模式解析

在高并发场景中,缓存能抵挡大量数据库查询,减少数据库压力,对于缓存更新通常有以下几种模式可以选择: cache aside read/write through write behind caching cache aside模式 Cache-aside模式是一种常用的用于管理缓存的模…

【linux深入剖析】操作系统与用户之间的接口:自定义简易shell制作全过程

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1.shell2.自定义shell的准…

如何遍历map

小王学习录 前言遍历map集合1. 使用for-each循环遍历 entrySet()2. 使用迭代器遍历 entrySet()3. 通过 keySet() 遍历4. 使用迭代器遍历 keySet()5. 仅遍历 values() 如果只关心map中的值而不关心键,可以遍历 values():6. 使用流(Streams)进行遍历 总结 …

typeorm导致nestjs通过@Query接收的参数为undefined

依赖版本如下,发现引入typeorm后导致接收不到Query参数,解决办法是将 TypeOrmModule导入语句放到前面就可以了

MT3004·找四边形

题目&#xff1a; 样例输入 4 12 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 2 3 4 4 1 4 2 4 3 样例输出 12 数据范围 算法设计 涉及的算法 枚举和图论基础 采用邻接矩阵g[N]来存储图&#xff0c;其中vector<ll> g[N]是建立了一个二维的vector 来用sum记录每个点 i 到达点 j…

java集合框架——Map集合概述

前言&#xff1a; 之前接触了单列合集&#xff0c;现在又接触了双列合集。整理下心得&#xff0c;打好基础&#xff0c;daydayup&#xff01;&#xff01; Map集合 Map集合称为双列集合&#xff0c;也被称为“键值对集合”。格式&#xff1a;{key1value1,key2value2...}&#…

网络学习:邻居发现协议NDP

目录 前言&#xff1a; 一、报文内容 二、地址解析----NS/NA 目标的被请求组播IP地址 邻居不可达性检测&#xff1a; 重复地址检测 路由器发现 地址自动配置 默认路由器优先级和路由信息发现 重定向 前言&#xff1a; 邻居发现协议NDP&#xff08;Neighbor Discovery…

MySQL数据库实现增删改查基础操作

准备工作 安装mysql8.0 (安装时一定要记住用户名和密码)安装数据库可视化视图工具Navicat 请注意⚠️⚠️⚠️⚠️ a. 编程类所有软件不要安装在中文目录下 b. Navicat破解版下载安装教程&#xff1a;&#xff08;由于文章审核提示版权问题&#xff0c;链接不方便给出&#xff…

虚拟内存相关知识汇总(程序重定位)

前置知识&#xff1a; Windows的内存可以被分为两个层面&#xff1a;物理内存和虚拟内存。其中&#xff0c;物理内存非常复杂&#xff0c;需要进入到Windows内核级别ring0才能看到。通常在用户模式下&#xff0c;用调试器看到的内存地址都是虚拟地址。 1.虚拟内存的定义 虚拟…

PCIE问题定位000:PCIe需要的定位手段

1、PCIe debug环境说明 本文将以PCIe EP用户逻辑举例&#xff0c;描述PCIe可以添加哪些定位手段。 如图所示&#xff0c;PCIe IP作为endpoint与RC对接&#xff0c;用户实现了应用逻辑&#xff0c;与PCIe IP进行交互&#xff0c;交互信号中data格式为TLP报文格式&#xff0c;且…

Linux_基础指令(一)

目录 1、ls指令 1.1 ls -l 1.2 ls -a 1.3 ls -i 2、pwd指令 3、cd指令 3.1 路径的概念 3.1.1 绝对路径 3.1.2 相对路径 3.2 cd ~ 3.3 cd - 4、touch指令 5、mkdir指令 6、删除系列的指指令 6.1 rmdir 6.2 rm 7、man指令 8、cp指令 9、move指令 结…

【智能算法】斑鬣狗优化算法(SHO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过。 3.代码实现4.参考文献 1.背景 2017年&#xff0c;Dhiman等人受到斑鬣狗自然狩猎行为启发&#xff0c;提出了斑鬣狗优化算法(Spotted Hyena Optimizer, SHO)。 2.算法原理 2.1算法思想 SHO将斑鬣狗狩猎行为分为围捕-狩猎-进攻三…