热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

【系统架构设计师】第一章:操作系统(1.1.11.1.2)操作系统的分类和结构

好久不见了。最近由于忙着期末考试,所以一直没更新帖子,最近考完了,我又回来了。很久不动笔了,突然很手痒,但是又

好久不见了。最近由于忙着期末考试,所以一直没更新帖子,最近考完了,我又回来了。
很久不动笔了,突然很手痒,但是又一直在纠结写什么。
原计划要写kali的从零开始的教程,不过仔细想想其实那个并没有系统架构师的专注力大,因为这个是我的一个目前的目标。
你们知道的,我今年大二,下个学期会特别忙,有七八场ctf和awd,线上线下的都有,这就意味着我基本整个学期的一半都要在外地跑。
不过好在我学计算机还是比较有天赋的,所以专业课反而是最轻松的一个。但是,我的想法不仅仅只是课程,而是希望能在大学期间将系统架构师的资格证考下来。
当然,我其实对这软考的了解也不多,不过我大概翻了翻系统架构师的目录,发现里面的内容基本四分之三都是我以前琢磨过的,所以就直接选了这个。
(后来问了人才知道,这个貌似是软考高级里面最难的一个…)
不多说了,直接上菜了。


参考教材:
《系统架构设计师考试全程指导(第二版)》
《系统架构设计师教程》


1.1 操作系统的类型和结构


1.1.1 操作系统的类型

1> 概念


  • 操作系统是计算机系统中的核心系统软件,负责管理和控制计算机系统中硬件和软件资源,合理地组织计算机工作流程和有效的利用资源,在计算机与用户之间起接口的作用。

我觉得这一段都能理解吧?其实我也不想这么啰嗦,但是就怕概念这么考。
先说说接口吧。这个就类似于我们的接口函数,比如你有嘴,能干啥呢?能吃饭,喝水,不管干什么,都要经过你的嘴,不管喝的是什么,都要用嘴来喝。接口,就是起的这样的作用,不管送过来啥都照收不误,都按照预定的动作处理。
所以我们就很容易理解这些概念了,什么是操作系统呢?就是能让你正常使用软件的东西。你点击一下屏幕,都是操作系统在帮你传递点击的信息。再傻的人都知道windows和ios是完全不同的,对吧?

2> 操作系统的分类

懒得打字了。直接看图吧。
在这里插入图片描述

我开始还奇怪的很,我怎么没见过什么批处理操作系统,什么通用操作系统?我之间见过windows,linux啥的,这些是怎么回事?
其实理论上来说,我们所熟知的操作系统都是操作系统的名称,而不是分类。由于在早期技术还不是很发达的时候,很多东西都是一点一点发展来的,那时候没有这么多漂亮的软件和界面,只有一堆堆的黑框框,甚至最早的计算机都是晶体管组成的。
后来随着技术的发展,比如某天,原本系统只能一次打开一个文档,结果有人突然发明了一种新的算法,一次可以打开10个文档。着对于当时的技术来说是一种突破,因此就将这种分类保留了下来。
比如我们现在的windows系统:
在这里插入图片描述
再比如说linux:
在这里插入图片描述
可能随着时间的流逝,操作系统的种类就会更多。我们无需纠结于此,记住就好。
其实也是非常好记忆的,比如:

分时操作系统:这个就是特点名的名。如果学过计算机网络基础的同学可能会眼熟,在我们计算机网络基础里面关于带宽的使用就用到了时分复用,原理也是差不多的。

实时操作系统:这个也很好记,对吧?其实就是讲的一个实时性,也就是随时随地都紧密相连,能够即时相应和较高的可靠性。

剩下的我就不一一举例了。还是那句话,名称都是按照特点进行命名的。
需要注意的是,不管是以上的哪种系统,都要有五个功能。这一点我会在后面说明。


1.1.2 操作系统的结构

不知道是我没理解还是咋的,搜到的每篇帖子居然都和书上的内容不一样。最后没办法,只能一个一个的找了。
引用链接:
https://blog.csdn.net/CHS007chs/article/details/77678827
https://blog.csdn.net/jiangxps/article/details/9329139
https://wenku.baidu.com/view/f270efa70622192e453610661ed9ad51f01d54b6.html
https://jingyan.baidu.com/article/6b1823096c1af8ba58e1593f.html
https://blog.csdn.net/weixin_33699280/article/details/81198752


  • 1.无序结构
    先来个官方的解释。
    在这里插入图片描述
    看不懂吧?我找了个比较好懂的说法。
    在这里插入图片描述
    (无序结构又称为模块组合结构)
    啥意思呢?大概就是说,早期的操作系统用的类似于函数调用的方式进行处理任务的。比如,某个地方都用到了1+2,那么就可以把这个写成一个模块,专门用于计算1+2。数量少还行,但是一旦数量达到几万甚至几百万,那么系统就反应不过来了。

  • 2.层次结构
    官方说法
    在这里插入图片描述比较好的理解
    在这里插入图片描述
    是不是和OSI模型很像?每层只管每层自家的事情,不管其他人的事情。好处就是各管各的,出问题也只会在一个地方,不会同时出问题。

  • 3.面向对象结构
    官方
    在这里插入图片描述
    好理解

这个不知道为什么没有百度到。不过搜到了一个说的比较明白的。
在这里插入图片描述
可以看出,面向对象操作系统其实就是将面向对象的技术引入到了操作系统的开发中。这就像编程语言从c进步到cpp一样,系统更加安全可靠了。这个我认为可以将c类比成模块结构,cpp理解成面向对象结构从而进行理解。


  • 4.对称多处理结构
    官方说明
    在这里插入图片描述
    容易理解的版本

在这里插入图片描述
(以下是我个人理解,如果有不对的希望大神可以纠正)
其实百度的说的都很复杂。但是通俗的来讲,这种机制我认为强调的是一种共享。
非要我举个例子的话,我认为可以类比于c里面的指针。在我们操作指针和指针指向的变量时,会发现内存中的数都会产生变化,因为这两个公用的是同一块内存。
类比于上面,如果我们用两个cpu同时操作同一块内存,就可以认为是对称多处理结构。


  • 5.微内核技术

官方说明
在这里插入图片描述

个人理解
在这里插入图片描述
没什么好说的,其实就是把很多最小的功能做成一个类似于函数一样的东西,统称为内核。之后可以对其进行更改,便于移植。
比如我百度到的一个。
在这里插入图片描述


本篇内容主要介绍的是操作系统的一些分类与结构。后面几节会讲操作系统的五大功能。
下一节已更新。
【系统架构设计师】第一章:操作系统(1.2.1)



推荐阅读
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • Windows环境下RabbitMQ安装详尽指南
    Windows环境下RabbitMQ安装详尽指南 ... [详细]
  • 初探性能优化:入门指南与实践技巧
    在编程领域,常有“尚未精通编码便急于优化”的声音。为了从性能优化的角度提升代码质量,本文将带领读者初步探索性能优化的基本概念与实践技巧。即使程序看似运行良好,数据处理效率仍有待提高,通过系统学习性能优化,能够帮助开发者编写更加高效、稳定的代码。文章不仅介绍了性能优化的基础知识,还提供了实用的调优方法和工具,帮助读者在实际项目中应用这些技术。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • POJ3669题目解析:基于广度优先搜索的详细解答
    POJ3669(http://poj.org/problem?id=3669)是一道典型的广度优先搜索(BFS)问题。由于陨石的降落具有时间属性,导致地图状态会随时间动态变化。因此,可以利用结构体来记录每个陨石的降落时间和位置,从而有效地进行状态更新和路径搜索。 ... [详细]
  • 在编程笔试和面试中,全排列算法因其适中的难度而备受青睐,不仅能够考察应聘者的算法基础,还能测试其对递归和回溯的理解。本文将深入解析全排列算法的实现原理,探讨其应用场景,并提供优化建议,帮助读者更好地掌握这一重要算法。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
  • Docker入门指南:初探容器化技术
    Docker入门指南:初探容器化技术摘要:Docker 是一个使用 Go 语言开发的开源容器平台,旨在实现应用程序的构建、分发和运行的标准化。通过将应用及其依赖打包成轻量级的容器,Docker 能够确保应用在任何环境中都能一致地运行,从而提高开发和部署的效率。本文将详细介绍 Docker 的基本概念、核心功能以及如何快速上手使用这一强大的容器化工具。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • PHP与MySQL的Web应用开发技术深入解析
    PHP与MySQL的Web应用开发技术深入解析 ... [详细]
  • 《我的世界》Java版与Windows 10版(基岩版)有何不同?
    《我的世界》Java版与Windows 10版(基岩版)有何不同? ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
author-avatar
hueihuei大海水_598
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有