admin 管理员组

文章数量: 887021

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

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

1.1 操作系统的类型和结构

1.1.1 操作系统的类型

1> 概念

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

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

2> 操作系统的分类

懒得打字了。直接看图吧。

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

再比如说linux:

可能随着时间的流逝,操作系统的种类就会更多。我们无需纠结于此,记住就好。
其实也是非常好记忆的,比如:

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

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

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

1.1.2 操作系统的结构

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

  • 1.无序结构
    先来个官方的解释。

    看不懂吧?我找了个比较好懂的说法。

    (无序结构又称为模块组合结构)
    啥意思呢?大概就是说,早期的操作系统用的类似于函数调用的方式进行处理任务的。比如,某个地方都用到了1+2,那么就可以把这个写成一个模块,专门用于计算1+2。数量少还行,但是一旦数量达到几万甚至几百万,那么系统就反应不过来了。

  • 2.层次结构
    官方说法
    比较好的理解

    是不是和OSI模型很像?每层只管每层自家的事情,不管其他人的事情。好处就是各管各的,出问题也只会在一个地方,不会同时出问题。

  • 3.面向对象结构
    官方

    好理解

这个不知道为什么没有百度到。不过搜到了一个说的比较明白的。

可以看出,面向对象操作系统其实就是将面向对象的技术引入到了操作系统的开发中。这就像编程语言从c进步到cpp一样,系统更加安全可靠了。这个我认为可以将c类比成模块结构,cpp理解成面向对象结构从而进行理解。

  • 4.对称多处理结构
    官方说明

    容易理解的版本


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

  • 5.微内核技术

官方说明

个人理解

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

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

本文标签: 操作系统 架构 设计师 结构 系统