操作系统(OS)

news2025/1/12 12:18:24

文章目录

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


前言

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


一、操作系统是什么?

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

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

二、用户对资源的访问

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rocket MQ 从入门到实践

为什么要使用消息队列,解决什么问题?(消峰、解藕、异步) 消峰填谷 客户端》 网关 〉 消息队列》秒杀服务 异步解耦 消息队列中的重要概念理解。(主题、消费组、队列,游标?) 主题&…

C++向函数传递函数

函数指针的定义格式为&#xff1a; <函数返回类型> (*指针变量)(<函数形参列表>) 例如&#xff1a; 下面定义了一个函数指针变量fp: double (*fp)(int);这意味着fp可以指向返回类型为double,参数类型为int的任何函数 比如&#xff1a; double func(int x){...}获…

基于springboot的购物商城管理系统

1.项目简介 1.1 用户简介 用户主要分为管理员和用户端&#xff1a; 管理员&#xff1a; 管理员可以对后台数据进行管理、拥有最高权限、具体权限有登录后进行首页轮播图的配置管理、商品的配置、新品家具商城的配置管理、、家具商城分类管理配置、家具商城详情商品管理、用户…

【Rockchip 安10.1 默认给第三方apk默认开启所有权限】

Rockchip 安10.1 默认给第三方apk默认开启所有权限 问题描述解决方法 郑重声明:本人原创博文&#xff0c;都是实战&#xff0c;均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Rockchip 3229 OS:Android 10.1 Kernel: 4.19 问题描述 有些第三方或者主界面&…

openEuler学习总结1(仅供学习参考)

华为的openEuler内核是源于Linux。 openEuler操作系统安装流程 第一步&#xff1a;开启虚拟化 第二步&#xff1a;安装一个虚拟化软件virtualbox 第三步&#xff1a;镜像 第四步&#xff1a;配置 设置虚拟机所在的目录 把网卡类型选择成桥接网卡 挂载镜像 设置完成&#xff0…

Git——修改历史记录详解

目录 Git1、修改历史信息1.1、启动互动模式1.2、修改Commit信息的影响1.3、取消Rebase 2、多个Commit合并位一个Commit3、一个Commit拆解成多个Commit4、在某些Commit之间插入新的Commit5、删除Commit6、调整Commit的顺序7、Revert指令7.1、取消Commit7.2、取消Revert1、再开一…

9. 综合案例-ATM系统 (1~7节知识综合练习)

ATM系统_综合大练习 今天的任务是对之前所有的学习的知识, 进行一个综合性的大练习. 老师说的好, 键盘敲烂 这个项目我写了大量的注释给大家参考, 如果有同学是跟着我的系列学习的, 一定动手练一练. 下面的代码只要按着敲是可以直接运行起来的, 我也把完整代码上传到了CSDN上…

17.WEB渗透测试--Kali Linux(五)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;16.WEB渗透测试--Kali Linux&#xff08;四&#xff09;-CSDN博客 1.ettercap简介与使用…

【技术类-04】python实现docx表格文字和段落文字的“手动换行符(软回车)”变成“段落标记(硬回车)”

作品展示&#xff1a; 背景需求&#xff1a; 把python实现docx表格文字和段落文字的“手动换行符&#xff08;软回车&#xff09;”变成“段落标记&#xff08;硬回车&#xff09;合并在一起统计数量 【技术类-02】python实现docx段落文字的“手动换行符&#xff08;软回车&a…

C语言 数据在内存中的存储

目录 前言 一、整数在内存中的存储 二、大小端字节序和字节序判断 2.1.练习一 2.2 练习二 2.3 练习三 2.4 练习四 2.5 练习五 2.6 练习六 三、浮点数在内存中的存储 3.1 浮点数存的过程 3.2 浮点数取的过程 总结 前言 数据在内存中根据数据类型有不同的存储方式&#xff0c;今…

ElasticSearch常见用法,看这一篇就够了(文末送书)

2024送书福利正式起航 关注「哪吒编程」&#xff0c;提升Java技能 文末送3本《一本书讲透Elasticsearch&#xff1a;原理、进阶与工程实践》 大家好&#xff0c;我是哪吒。 ElasticSearch是一款由Java开发的开源搜索引擎&#xff0c;它以其出色的实时搜索、稳定可靠、快速安…

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

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

单链表-合并两个集合的数

bb都在代码里哈哈哈哈 对了这里有个要求&#xff0c;不能破坏原来的链表 #include<iostream> #include<cstring> using namespace std;typedef struct LNode {int data;struct LNode* next; }LinkNode; void Create(LinkNode*& L, int a[], int l)//首先建链…

mongodb查询大全mongo语句-MongoDB语句与MySQL语句对比

mongodb查询大全mongo语句 以前版本官网:https://www.mongodb.com/ 现在版本2021年12月7日官网:https://www.mongodb.com 直通车:https://docs.mongodb.com 一、前言 虽然这些语句在开发当中不会使用,因为springdataMongoDB封装的非常完美了。但是这里的语句思想和关系型…

惯导系统静止初始化方法与代码实现并在gazebo中测试

惯导系统静止初始化方法与代码实现并在gazebo中测试 前言静止初始化方法惯导静止初始化实现代码在gazebo中进行测试 前言 在进行GPS加IMU的组合导航或者Lidar加IMU的组合导航时&#xff0c;用EKF或者ESKF的滤波方法时&#xff0c;需要提前知道惯导的测量噪声、初始零偏、重力方…

Mysql 索引、锁与MVCC等相关知识点

文章目录 Mysql锁的类型锁使用MVCC快照读和当前读读视图【Read View】串行化的解决 索引类型存储方式区分逻辑区分实际使用区分索引失效情况 索引建立规范SQL编写规范exlpain字段解析ACID的原理日志引擎慢SQL整合SpringBoot博客记录 Mysql锁的类型 MySQL中有哪些锁&#xff1a…

机器学习——压缩网络作业

文章目录 任务描述介绍知识蒸馏网络设计 Baseline实践 任务描述 网络压缩&#xff1a;使用小模型模拟大模型的预测/准确性。在这个任务中&#xff0c;需要训练一个非常小的模型来完成HW3&#xff0c;即在food-11数据集上进行分类。 介绍 有许多种网络/模型压缩的类型&#xff0…

如何写好Stable Diffusion的prompt

Stable Diffusion是一种强大的文本到图像生成模型&#xff0c;其效果在很大程度上取决于输入的提示词&#xff08;Prompt&#xff09;。以下是一些关于如何编写有效的Stable Diffusion Prompt的秘诀&#xff1a; 明确描述&#xff1a;尽量清晰地描述你想要的图像内容。使用具体…

3.4 bp,si,di寄存器,寻址方式,寄存器总结

汇编语言 1. [bxidata] 我们可以用[bx]来指明一个内存单元我们也可以用[bxidata]来表示一个内存单元&#xff0c;它的偏移地址为bx中的数值加上idata mount c d:masm c: debug r d 2000:1000 e 2000:1000 12 34 56 78 a mov ax,2000 mov ds,ax mov bx,1000 mov ax,[bx] mov c…

训练YOLOv8m时AMP显示v8n

在训练Yolov8模型时&#xff0c;使用AMP&#xff08;Automatic Mixed Precision&#xff09;可以加速训练过程并减少显存的使用。AMP是一种混合精度训练技术&#xff0c;它通过将模型参数的计算转换为低精度&#xff08;如半精度&#xff09;来提高训练速度&#xff0c;同时保持…