操作系统(Operator System)

news2025/1/17 0:14:11

在这里插入图片描述

这里写目录标题

  • 1. 什么是操作系统
  • 2. 主要功能
  • 3. 计算机的层状结构
  • 4. 什么叫做管理
  • 5. 总结
  • 6. 为什么要有操作系统
  • 7. 最后

1. 什么是操作系统

操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。操作系统是人与计算机之间的接口,也是计算机的灵魂。

  • 在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。从计算机用户的角度来说,计算机操作系统体现为其提供的各项服务;从程序员的角度来说,其主要是指用户登录的界面或者接口;如果从设计人员的角度来说,就是指各式各样模块和单元之间的联系。事实上,全新操作系统的设计和改良的关键工作就是对体系结构的设计,经过几十年以来的发展,计算机操作系统已经由一开始的简单控制循环体发展成为较为复杂的分布式操作系统,再加上计算机用户需求的愈发多样化,计算机操作系统已经成为既复杂而又庞大的计算机软件系统之一。(来自百度百科讲解)

2. 主要功能

计算的操作系统对于计算机可以说是十分重要的,从使用者角度来说,操作系统可以对计算机系统的各项资源板块开展调度工作,其中包括软硬件设备、数据信息等,运用计算机操作系统可以减少人工资源分配的工作强度,使用者对于计算的操作干预程度减少,计算机的智能化工作效率就可以得到很大的提升。其次在资源管理方面,如果由多个用户共同来管理一个计算机系统,那么可能就会有冲突矛盾存在于两个使用者的信息共享当中。为了更加合理的分配计算机的各个资源板块,协调计算机系统的各个组成部分,就需要充分发挥计算机操作系统的职能,对各个资源板块的使用效率和使用程度进行一个最优的调整,使得各个用户的需求都能够得到满足。最后,操作系统在计算机程序的辅助下,可以抽象处理计算系统资源提供的各项基础职能,以可视化的手段来向使用者展示操作系统功能,减低计算机的使用难度。

  • 操作系统主要包括以下几个方面的功能 :
    ①进程管理,其工作主要是进程调度,在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占, 进程管理的工作十分简单。但在多道程序或多用户的情况 下,组织多个作业或任务时,就要解决处理器的调度、 分配和回收等问题 。
    ②存储管理分为几种功能:存储分配、存储共享、存储保护 、存储扩张。
    ③设备管理分有以下功能:设备分配、设备传输控制 、设备独立性。
    ④文件管理:文件存储空间的管理、目录管理 、文件操作管理、文件保护。
    ⑤作业管理是负责处理用户提交的任何要求。
    (来自百度百科讲解)

  • 我们用一句简单的话来描述操作系统:操作系统是一个进行软硬件资源管理的软件

3. 计算机的层状结构

在这里插入图片描述
当前我们先讲解操作系统,驱动程序,底层硬件,这三个部分,对于用户,用户操作接口和system call这三个部分后序会讲到。
(1)底层硬件:包括网卡,硬盘,显示器等。底层硬件的结构是冯·诺依曼体系。
(2)驱动程序:驱动程序一般指的是设备驱动程序(Device Driver),是一种可以使计算机和设备进行相互通信的特殊程序。相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被比作“ 硬件的灵魂”、“硬件的主宰”、“硬件和系统之间的桥梁”等。 也就是说,最清楚硬件该怎么用的就是驱动程序,在计算机中真正让硬件工作的并不是操作系统,而是驱动程序,操作系统只是通过驱动程序操作的硬件。

4. 什么叫做管理

在我们生活中,无论是做什么事情,都存在两个关系
1.做决策
2.做执行
比如你中午要做糖醋排骨,早上要去买排骨。在这个之情当中,决策就是中午想做糖醋排骨,执行就是早上出去买排骨。
而所谓管理,就是能正确的做出决策。
而计算机中操作系统(管理者)扮演的就是做决策的角色。
硬件(被管理者)就是执行角色。

我们举一个在学校里的例子:
一个学校里面,有校长,辅导员,学生。这三个角色,谁是管理者,谁是被管理者呢?很明显校长就是那个管理者,而学生就是被管理者,而至于辅导员就是那个保证决策落地的一个角色。
那么作为被管理者,一般学生在学校里能见到管理者校长吗?显然是不能的,相信绝大部分的学生都不知道校长什么样子。那么问题就来了,既然管理者和被管理者一般见不到面,那么管理者到底是怎么做到把学校管理好的,是怎么把学生管理好的呢?所以管理的本质不在于见面。管理者只要知道你在学校里方方面面的数据拿到,管理者就可把你安排的明明白白的。所以管理者只要拿到被管理者的数据就可以把被管理者管理好。所以管理的本质并不是对人进行管理,而是对人的信息做管理。
上面说了管理者的核心工作是做决策,但是是不是可以乱决策啊,肯定是不能的,管理者是通过拿到的数据进行做决策。也就是依据数据做决策。

但是我都没有与校长见过面,也没说过话,他是怎么知道我在学校的信息。所以这个时候我们的辅导员就出来了,要说到出来同班同学我们在学校里第二个见面最多的那肯定是辅导员了,我们在大学四年的所有执行大多都是辅导员下发的,最常见的就是在聊天群里来一个“@全体成员”的消息了。所以管理者是怎么拿到我们的信息的,那就是通过辅导员拿到信息,因为辅导员天天跟我们见面,是不是叫你去办公室喝点茶,你的所有成绩,做了什么好事坏事辅导员都知道,所以校长只要找到辅导员就可知道我们所有的信息。拿到了信息就可以对我们做管理。

管理者在面对大量的被管理者的时候,数据量必然很大,对人的管理也转化为对数据的管理。面对如此庞大的数据,我们的管理者是怎么进行有效的管理呢?既然是对信息做管理,而每个学生的信息的属性都是相同的,比如身高,体重,年龄,数学成绩,专业成绩等,这些信息的属性都是相同的,那么我们就可以把这些信息放到一个表格中,表格的第一行对应者学生信息的属性,之后的每一行就代表每个学生的属性,这个时候对信息的管理就变成了对表格的管理。这样子管理者就可以知道每个学生的属性了。但是这样也有一个缺点就是面对这么庞大的数据量,想要查找一个学生的数据不比与大海捞针。这个时候管理者懂编程,管理者就像,能不能把这个工作交给计算机干,既然每个学生的信息属性都是一样的,那么我们就可以定义一个结构体,将信息的属性包含在结构体中。

struct student
{
	char name[20];
	int age;
	int grade;
	char score[20];
	char other[20];
	……
};

这样只要实例化一个结构体就代表一个学生了。
但是这样还是表格没什么区别啊,如果数据量很大,那不是实例化出来的对象也很多。
所以管理者又想到一个好办法,就是在定义一个结构体指针。

struct student
{
	char name[20];
	int age;
	int grade;
	char score[20];
	char other[20];
	……
	struct student* next;
};

有了结构指针,我们的第一个学生的结构体就包含了下一个学生结构体的地址,找到第一个学生就可以找到第二个学生,以此类推就形成了一个链表。所以以后管理者想要查找一个学生的信息只需要遍历这个链表就行了。但是遍历的话还是要把每个学生的信息看一遍啊。于是,既然都已经设计出来结构体,这个是时候管理者就又设计出来了一个对链表进行增删改查的代码。所以这个时候管理者对数据的增删改查就变成了对链表的增删改查,而这个动作已经用程序写完了,是由计算机执行了。所以校长的所有决策就变成了对链表的增删改查。

所以这样就完成了一个工作:对管理的一个计算机的建模的过程。为了简化这个建模的过程,我们叫做先描述在组织
计算机管理硬件

  1. 描述起来,用struct结构体
  2. 组织起来,用链表或其他高效的数据结构

那么对于我们的操作系统是怎么管理硬件的呢?也是先描述在组织。
就然都是硬件,所以硬件的信息属性都是相同的,那么就可以将这些信息放到一个结构体中。这叫做先描述

struct device
{
	char name[20];
	char status[20];
	……
	struct device* next; 
}

那么将网卡这个设别放到结构中,将磁盘这个设备放到结构体中……让后将这些结构体连接起来形成一个链表。于是操作系统想要查找一个设备只需要对链表进行遍历。这个过程叫做组织。

5. 总结

上面我们见到了操作系统是什么,操作系统是一个进行软硬件资源管理的一款软件。那么操作系统是怎么对软硬件进行管理的呢。首先管理的本质是对数据的管理。但是如果数据量很大,那么操作系统的管理效率就会很低。而为了解决这个问题,我们就要对数据进行描述,数据量虽然大,但是数据的信息属性是相同,于是我们就可以把数据的信息属性写成一个结构体,这个叫做先描述。有了结构体就可以用特定的方式把结构体写成特定的数据结构,这个时候对数据的管理就变成了对特定的数据结构进行管理,这个过程叫做组织。也就是说操作系统对软硬件进行管理的方式是,将每个软硬件的信息属性用结构体表示,这个叫做把软管硬件描述出来,后用特定的数据结构将这些结构体组织起来。然后操作系统对软管硬件进行管理就变成了对特定的数据结构体进行管理 。
所以管理的方式就可以用六个字来表示:先描述在组织。

6. 为什么要有操作系统

  • 上述提到了,操作系统是一个进行软硬件资源管理的软件。
    那么这里提出的问题为什么要有操作系统可以用另一种提问方式——为什么要有操作系统的管理。

  • 先说结论:对于操作系统主要有两大用途
    1.对下进行软硬件资源管理——手段
    2.对上提供一个良好的运行环境——目的
    这里的良好可以稳定,高效,安全。

  • 对于软硬件资源的管理中对于硬件的管理就是对硬件的数据进行管理,而硬件的数据是驱动程序所提供的,有了数据就可以这些数据的属性进行描述起来,然后通过特定的数据结构将其组织起来,这样对硬件的管理就变成了对数据结构的管理。
    对于软件也是同样的道理,既然操作系统是通过驱动程序管理软件的,那么操作系统也用相同的方式管理驱动程序的。

  • 计算机终归是用来给人使用的,而且计算机必定会存放各种数据。那么计算机是怎么做到对这些数据的安全和,稳定的呢
    我们举一个银行的例子。
    我们到银行里存钱,能不能直接跟柜台的人员说我们存钱到因你们银行里面,你们登记好来,然后打开钱库我直接放钱进去啊?明显是不能的,因为这样并不能确定这个存钱的人到底是不是坏人,万一他进了钱库把其他人的钱拿走了呢。同理在计算机里这里有个用户如果直接去访问操作系统,而操作系统是用来管理软硬件的,也就是对软硬件的数据进行管理,用户一进入操作系统中就可以看到琳琅满目的各种信息,而计算机不能判断用户是不是坏人,不知道会不会对这些数据进行破坏,并且可能这些数据当中有些是机密数据,并不能确定用户会不会进行窃取。

  • 所以操作系统就必须在用户和操作系统当中设计一个让用户不能直接通过操作系统进行访问数据,而是用操作系统提供的特殊手段进行访问数据,而这个就是系统访问接口。
    在这里插入图片描述
    这个时候用户就只能通过这个系统访问接口来访问数据,就好比一个人去银行,你不能直接到钱库里面去存钱,也不能直接去钱库里取钱,而是把你的个人信息跟柜台的人员然后通过柜台人员进行存取钱。

  • 而系统调用接口,其实就是用C语言设计出来的函数。这个由操作系统提供的函数叫做系统调用函数。
    既然是函数那肯定是有输入和输出的。而操作系统之所以要提供系统调用接口无非是给上层用户提供两方面的功能:数据层面上的支持和功能方面的支持。

  • 所以我们就有一个结论:任何人都不能直接发访问操作系统内中的任何数据,必须采用操作系统。也就是说用户不能直接越过操作系统直接访问底层硬件/软件,必须贯穿操作系统。而操作系统要对上提供服务必须提供系统调用接口。

  • 我们在使用C/C++中的print/scanf输入输出的时候,printf最终打印的数据是到显示屏上的,那printf是直接打印到显示屏上的吗?显示屏是硬件,既然是硬件那么它必定是受操作系统管理的,也就是说printf想要打印数据到显示屏上,必须是通过系统调用接口将数据打印到显示屏上的。同理scanf也是一样的。然而要调用系统调用接口,printf/scanf一定用封装系统调用函数。

  • 那么用户可以直接掉i用系统调用接口吗?答案是可以的,因为系统调用接口本来就是个用户使用的。但是我们使用C/C++或者其他语言的时候我们也没有用到系统调用接口也就是系统调用函数啊。这是因为由于使用系统调用的难易程度将系统调用函数封装到了用户调用接口。
    在这里插入图片描述
    这样就可以减少使用者的使用成本。最典型的例子就是C语言中的C标准库。

7. 最后

龙年到来,愿你的生活龙腾虎跃,事业龙飞凤舞,精神龙马飞扬,智慧龙腾四海,家庭龙凤呈祥,健康龙腾虎跃,爱情龙凤呈祥,财运龙腾四海,事业辉煌腾达,烦恼龙去凤来,幸福龙凤呈祥!
祝大家在新的一年里天天开心,学业腾飞,事业有成。

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

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

相关文章

PostgreSQL PG的流复制搭建

注: 本文为云贝教育 刘峰 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。【PostgreSQL】PG的流复制搭建 - 课程体系 - 云贝教育https://www.yunbee.net/Home/News/detail/article_id/510.html 一 、主备机…

HarmonyOS资源分类与访问

资源分类与访问 应用开发过程中,经常需要用到颜色、字体、间距、图片等资源,在不同的设备或配置中,这些资源的值可能不同。 应用资源:借助资源文件能力,开发者在应用中自定义资源,自行管理这些资源在不同…

仿网易云音乐网站PHP源码,可运营的原创音乐分享平台源码,在线音乐库系统

源码介绍 使用PHP和MYSQL开发的原创音乐分享平台源码,仿网易云音乐网站。用户可以在网站上注册并上传自己的音乐作品,系统内置广告系统,为网站创造收入来源。 安装教程 1.导入sql.sql 2.修改 includes\config.php 数据库信息和网址都改成…

【教3妹学编程-算法题】一年中的第几天

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开森。 3妹:2哥你看今天的天气多好啊,经过了一周多的寒潮,天气总算暖和些了。 2哥&#xff…

最新ChatGPT网站AI系统源码,附详细搭建教程/支持GPT4.0/AI绘画/GPT语言对话/DALL-E3文生图/自定义知识库

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

搭建 Mac系统Arduino + MindPlus开发环境

搭建 Mac系统Arduino MindPlus开发环境 1.概述 2024年1月1号,元旦大家的安排丰富多彩,在这一天中我的安排依旧坚持初心,牢记使命。学习是我的起点也是我的终点,只要活着就要用知识丰富自己的生活。 今天是一个有意义的日子&…

GVRP实验配置

GVRP(GARP VLAN Registration Protocol),称为VLAN注册协议。 GVRP基于GARP的工作机制,是GARP的一种应用。GVRP用来维护交换机中的VLAN动态注册信息,并传播该信息到其它的交换机中。支持GVRP特性的交换机能够接收来自其…

Servlet见解3

13 Cookie和Session http协议是一个无状态的协议,你每一个跳转到下一个页面的时候都是需要先登录才能使用,这样就很麻烦比如淘宝,没有cookie和session的话,用户在首页已经登录上去了,但是需要再次登录才能选择商品&am…

无监督关键词提取算法:TF-IDF、TextRank、RAKE、YAKE、 keyBERT

TF-IDF TF-IDF是一种经典的基于统计的方法,TF(Term frequency)是指一个单词在一个文档中出现的次数,通常一个单词在一个文档中出现的次数越多说明该词越重要。IDF(Inverse document frequency)是所有文档数比上出现某单词的个数,通常一个单词…

JMeter(十六)-JMeter断言

十六、JMeter断言 1.简介 断言组件用来对服务器的响应数据做验证,常用的断言是响应断言,其支持正则表达式。虽然我们的通过响应断言能够完成绝大多数的结果验证工作,但是JMeter还是为我们提供了适合多个场景的断言元件,辅助我们来…

Redis原理及常见问题

高性能之道 单线程模型基于内存操作epoll多路复用模型高效的数据存储结构redis的单线程指的是数据处理使用的单线程,实际上它主要包含 IO线程:处理网络消息收发主线程:处理数据读写操作,包括事务、Lua脚本等持久化线程:执行RDB或AOF时,使用持久化线程处理,避免主线程的阻…

服务器监控软件夜莺部署(一)

文章目录 一、夜莺介绍1. 简介2. 相关网站 二、夜莺部署1. 部署架构2. Docker启动3. 配置数据源4. 内置仪表盘效果5. 时序指标效果 一、夜莺介绍 1. 简介 夜莺监控系统是一款专业的服务器监控软件,它可以帮助用户实时监测服务器的CPU、内存、磁盘利用率等。 夜莺监…

二叉树题目:根到叶路径上的不足结点

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:根到叶路径上的不足结点 出处:1080. 根到叶路径上的不足结点 难度 6 级 题目描述 要求 给定二叉树的根结点 root \texttt{root} root…

C语言之sizeof详解,5点透析,帮你真正了解它

今天也要继续坚持 前言 今天复习C语言了解到不少和她有关的知识,才知道之前对他了解甚少,于是写下博客及时记录自己的所得,与大家分享一下 第一点:sizeof不是函数 sizeof是一个关键字而不是函数!是的,他…

【AIGC矢量风格】黑色和白色一系列物体

基于矢量风格的一组画面: 矢量风格是海报设计中常见的一种风格,它主要使用矢量图形进行设计。矢量图形是由数学公式定义的图形,其特点是可以在不失去清晰度的情况下进行任意缩放,无论图形尺寸如何变化,都不会失真或模糊…

猫咪训练的方法指南,新手养猫的攻略大全

一、教程描述 本套教程可以教你学会养猫,让您快速成长为养猫专家。视频教程是猫咪基础训练,共有7个视频,电子书教程是养猫攻略大全,共有11本,包括爱猫养护实用手册,全世界250多种猫的彩色图鉴,…

解密C++中的forward<int>(a)和forward<int >(a):你真的了解它们之间的区别吗?

一文看尽C中的forward完美转发 一、前言二、深入理解forward和完美转发三、对forward<int>(a)的解析四、对forward<int &&>(a)的解析五、forward<int>(a)和forward<int &&>(a)的区别总结 一、前言 完美转发在C中具有重要性&#xff0…

kafka 的零拷贝原理

文章目录 kafka 的零拷贝原理 今天来跟大家聊聊kafka的零拷贝原理是什么&#xff1f; kafka 的零拷贝原理 零拷贝是一种减少数据拷贝的机制&#xff0c;能够有效提升数据的效率&#xff1b;   在实际应用中&#xff0c;如果我们需要把磁盘中的某个文件内容发送到远程服务器上…

zlib.decompressFile报错 【Bug已解决-鸿蒙开发】

文章目录 项目场景:问题描述原因分析:解决方案:方案1方案2此Bug解决方案总结寄语项目场景: 最近也是遇到了这个问题,看到网上也有人在询问这个问题,本文总结了自己和其他人的解决经验,解决了zlib.decompressFile报错 的问题。 问题: zlib.decompressFile报错,怎么解…

1. 私有云实战之基础环境搭建

文章目录 服务器搭建准备基础环境介绍展示效果iKuai展示效果iStroreOS展示效果ESXI展示效果群辉展示效果JumpServer展示kubesphere展示 环境搭建ESXI系统安装及基础网络环境配置ESXI系统安装基础网络环境配置配置虚拟交换机配置端口组 ESXI中虚拟机安装 ikuai安装及配置ikuai安…