操作系统(Operator System)

在这里插入图片描述

这里写目录标题

  • 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.rhkb.cn/news/228488.html

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

相关文章

彭涛:2023年终复盘,工作,团队,个人!

眨眼2023即将结束,2024即将开启,每年这个时候,都会简单总结下自己这一年,既是对今年的一个复盘和回顾,也是对新一年的向往和期待。 我的2023年,大概分为 「个人」,「家庭」,「团队」…

C语言实现RSA算法加解密

使用c语言实现了RSA加解密算法,可以加解密文件和字符串。 rsa算法原理 选择两个大素数p和q;计算n p * q;计算φ(n)(p-1)(q-1);选择与φ(n)互素的整数d;由de1 mod φ(n)计算得到e;公钥是(e, n), 私钥是(d, n);假设明…

设计模式(4)--对象行为(11)--访问者

1. 意图 表示一个作用于某对象结构中的各元素的操作。 使你可以在不改变各元素的类的前提下定义于作用于这些元素的新操作。 2. 五种角色 抽象访问者(Visitor)、具体访问者(Concrete Visitor)、抽象元素(Element)、 具体元素(Concrete Element)、对象结构(ObjectStructure) 3…

12 HAL库的硬件SPI驱动数码管

引言: 本文将为大家介绍一下SPI, 数码管的知识, 以及HAL库驱动SPI接口的数码的代码示例。 一、SPI的基础知识 1. SPI简介 01 SPI是串行外设接口(Serial Peripheral Interface)的缩写 02 是美国摩托罗拉公司&#xff08…

【ARMv8M Cortex-M33 系列 2 -- Cortex-M33 JLink 连接 及 JFlash 烧写介绍】

请阅读【嵌入式开发学习必备专栏 之Cortex-M33 专栏】 文章目录 Jlink 工具JLink 命令行示例JFlash 烧写问题Jlink 工具 J-Link 是 SEGGER 提供的一款流行的 JTAG 调试器,它支持多个平台和处理器。JLink.exe 是 J-Link 调试器的命令行接口,它允许用户通过命令行执行一系列操…

微信小程序开发系列-11组件间通信02

微信小程序开发系列目录 《微信小程序开发系列-01创建一个最小的小程序项目》 《微信小程序开发系列-02注册小程序》 《微信小程序开发系列-03全局配置中的“window”和“tabBar”》 《微信小程序开发系列-04获取用户图像和昵称》 《微信小程序开发系列-05登录小程序》 《…

打破数据孤岛:ChatGPT如何打通金融大数据的任督二脉?

文章目录 一、引言二、ChatGPT与金融大数据分析的融合三、实践应用:ChatGPT在金融大数据分析中的优势与挑战四、案例分析:ChatGPT在金融大数据分析中的应用案例五、前景展望:ChatGPT在金融大数据分析领域的未来发展《AI时代Python金融大数据分…

[新版Hi3531DV200 性能强悍]

新版Hi3531DV200 性能强悍 Hi3531DV200是针对多路高清/超高清(1080p/4M/5M/4K)DVR产品应用开发的新一代专业SoC芯片。Hi3531DV200集成了ARM A53四核处理器和性能强大的神经网络推理引擎,支持多种智能算法应用。同时,Hi3531DV200还…

maven工具的搭建以及使用

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:🎀首先进行maven工具的搭建🦓1.[打开下载 maven 服务器官网](http://maven.apache.org)🪅2.解压之后,配置环境变量🏨3.打开设…

【SpringBoot开发】之商城项目案例(实现登陆版)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《SpringBoot开发之商城项目系列》。&#x1f3af…

【Android Gradle 插件】Android Plugin DSL Reference 离线文档下载 ( GitHub 下载文档 | 查看文档 )

一、Android Plugin DSL Reference 文档下载 二、Android Plugin DSL Reference 文档查看 一、Android Plugin DSL Reference 文档下载 在之前的博客 【Android Gradle 插件】Android Plugin DSL Reference 文档介绍 ( 1.2 ~ 3.4 版本文档地址 | 4.1 ~ 7.1 版本文档地址 ) 中…

ffmpeg两种windows版本区别说明

版本一 必须拷贝exe和dll文件才能使用,如果缺少dll则exe不正正常执行 如果缺少dll ,执行 exe会报错如下 版本2 直接拷贝exe就能使用,没有依赖的环境

uniapp实现前端银行卡隐藏中间的数字,及隐藏姓名后两位

Vue 实现前端银行卡隐藏中间的数字 主要应用了 filters过滤器 来实现效果 实现效果&#xff0c;如图&#xff1a; <template><div><div style"background-color: #f4f4f4;margin:50px 0 0 460px;width:900px;height:300px;"><p>原来&#…

Android 13 动态启用或禁用IPV6

介绍 客户想要通过APK来控制IPV6的启用和禁用&#xff0c;这里我们通过广播的方式来让客户控制IPV6。 效果展示 adb shell ifconfig 这里我们用debug软件&#xff0c;将下面节点置为1 如图ipv6已被禁用了 echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 修改 接下来…

老虎目标检测数据集VOC格式900张

老虎是地球上最为壮丽而令人敬畏的野生动物之一&#xff0c;是大型猫科动物中的一员。老虎通常具有强壮的体格和敏捷的身体机能&#xff0c;是世界上最顶级的掠食者之一。 老虎的外貌特征鲜明&#xff0c;身体长约2至3米&#xff0c;体重可达200至300公斤。它们的体型庞大&…

Kubernetes 学习总结(41)—— 云原生容器网络详解

背景 随着网络技术的发展&#xff0c;网络的虚拟化程度越来越高&#xff0c;特别是云原生网络&#xff0c;叠加了物理网络、虚机网络和容器网络&#xff0c;数据包在网络 OSI 七层网络模型、TCP/IP 五层网络模型的不同网络层进行封包、转发和解包。网络数据包跨主机网络、容器…

2023下半年的总结

我从八月下旬开始写的&#xff0c;到现在差不多有半年了&#xff0c;总结一下吧&#xff01; 1.计算机视觉 在计算机视觉方面&#xff0c;想必两个有名的深度学习框架&#xff08;TensorFlow和PyTorch&#xff09;大家都很清楚吧&#xff0c;以及OpenCV库。对于人脸识别&…

2024年【黑龙江省安全员C证】考试及黑龙江省安全员C证找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年黑龙江省安全员C证考试为正在备考黑龙江省安全员C证操作证的学员准备的理论考试专题&#xff0c;每个月更新的黑龙江省安全员C证找解析祝您顺利通过黑龙江省安全员C证考试。 1、【多选题】下列属于编制安全检查…

【力扣题解】P530-二叉搜索树的最小绝对差-Java题解

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P530-二叉搜索树的最小绝对差-Java题解&#x1f30f;题目描述&#x1f4a1;题解&…

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

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