框图怎么画

框图怎么画,第1张

由于近期一直在写文档,有人问我是如何画图的,实际上一开始我主要是画流程图,后面慢慢开始画框图。画图不仅可以对思路进行整理,还可以对思维进行很好的表达。下面根据我个人的经验,对如何画好系统框图做一些简单的介绍。

图画是另一种形式的思考,我们需要对想要表达的内容进行抽象总结,不同的思维结构,决定了采用什么形式的构图。看过《金字塔原理》的读者都知道,作者把思维表达方式都描述为金字塔的层级结构,每一层又由若干个分论点来支撑,因此金字塔结构非常稳固,并且易于理解。

构图的三种结构

那么,到底有哪些好的构图方式呢?

实际上,所有的框图都可以总结为分层结构、流水线结构、树型结构3大类。每一种结构都代表了一种思维方式。掌握了上述3种构图方法,你就基本上可以解决90%以上的构图问题,表达和抽象能力将大幅提升。

1. 分层结构

分层结构是目前普遍采用的构图方法,金字塔原理就是分层结构中的一种,这种结构强调对系统进行模块化和分层级的划分,把复杂的系统分为几个层级,各个层级又可以分为几个子模块。复杂的分层结构之间还可以有包含和跨越的关系,分层结构主要有2种排版方式,横向和竖向结构。

下面我们分别看下横向结构和竖向结构的经典排版。

横向结构

竖向结构

大体的排版方向(横向和竖向)确定之后,子模块之间也可以有包含和跨越的关系,也可以根据重点不同,对结构进行调整,例如突出从下到上稳定性的金字塔结构。

金字塔结构

另外我最喜欢的就是linux kernel方面的学习路线图,由于整个linux *** 作系统结构非常复杂,所以人们把 *** 作系统分为了不同的模块,每个模块又划分为不同的子模块,子模块之间有些会跨越多个层。通过分层结构,我们可以很清晰的认识到 *** 作系统的复杂性,这种结构也可以方面我们理解和记忆,可以说linux *** 作系统框图是分层结构的集大成者,下图是2个例子。

2. 流水线结构

流水线线结构强调了模块之间的顺序和关系,模块之间是按照一定的因果关系往前推进,比较常见的场景是学习计划,事件根因分析,一般是从左到右的顺序。

下面是流水线结构的典型实例。

当然也有对流水线结构进行各种形式的扩展,都可以理解为流水线结构。

阶梯式流水线结构

S型流水线结构

多流水线结构

流水线结构除了线性结构之外,还有环形流水线,环形流水线往往表示了事件从开始到结束可以循环往复。

环形结构

环形结构

三角环形结构

最后,我们看下复杂的树型结构

3. 树型结构

对于比较复杂的数据结构,可能就不能简单的用线型结构来表示了,只有采用更加发散和复杂的树型结构来表示它们之间的复杂关系。树型结构一般从一个中心节点(起点或中心节点)往外界进行发散,分支又发散出分支,类似一颗大树。

最简单的树型结构是一个中心,几个基本点的结构,围绕着中心论点进行展开论证。

复杂的树型结构有思维导图,鱼骨图,这类结构围绕一个论点进行思维发散,并不限制分支的数量。

树型发散导图

思维导图

最后

了解了3种主要的构图方式之后,要画好图,还需要把描述的事物通过图标进行形象化以方便理解。比如下图是描述intel主板实现的功能,通过对摄像头、GPS、internet等的形象化描述,可以更加方面用户理解它的实际用途。

目录名 说明 备注

etc 配置文件 根文件系统,必须存在于/系统上,不可单独分区

bin 用户可执行文件(基本应用程序)

sbin 系统可执行文件(基本应用程序)

lib 共享库文件

dev 设备

boot 启动文件 单独分区

tmp 临时文件 tmp目录中的数据默认每10天自动清除

mnt/media 外设挂载点 早期Linux系统使用mnt目录

usr 发型版厂商自定义应用程序 可以考虑单独分区

var 服务器数据:日志、打印池等 可以考虑为不同的服务目录单独分区

home 普通用户家目录 如果作为认证服务器,则考虑单独分区

root root用户家目录

opt 存放第三方大型应用程序,如Oracle 可以考虑单独分区

selinux selinux信息

misc/net 自动挂载点

proc linux系统信息,可在运行时进行调整 没有独立挂载点(内核映像,无法挂载)

sys 硬件相关信息

lost+found ext3文件系统收集文件碎片用 自动存在于每个ext3文件系统上

一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、虚拟文件系统和网络接口。

1、内存管理 

内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。

Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时系统只把当前运行的程序块保留在内存中,其他程序块则保留在磁盘中。在内存紧缺时,内存管理负责在磁盘和内存间交换程序块。

2、进程管理 

进程管理主要控制系统进程对CPU的访问。当需要某个进程运行时,由进程调度器根据基于优先级的调度算法启动新的进程。:Linux支持多任务运行,那么如何在一个单CPU上支持多任务呢?这个工作就是由进程调度管理来实现的。

在系统运行时,每个进程都会分得一定的时间片,然后进程调度器根据时间片的不同,选择每个进程依次运行,例如当某个进程的时间片用完后,调度器会选择一个新的进程继续运行。

由于切换的时间和频率都非常的快,由此用户感觉是多个程序在同时运行,而实际上,CPU在同一时间内只有一个进程在运行,这一切都是进程调度管理的结果。

3、进程间通信 

进程间通信主要用于控制不同进程之间在用户空间的同步、数据共享和交换。由于不用的用户进程拥有不同的进程空间,因此进程间的通信要借助于内核的中转来实现。

一般情况下,当一个进程等待硬件 *** 作完成时,会被挂起。当硬件 *** 作完成,进程被恢复执行,而协调这个过程的就是进程间的通信机制。

4、虚拟文件系统 

Linux内核中的虚拟文件系统用一个通用的文件模型表示了各种不同的文件系统,这个文件模型屏蔽了很多具体文件系统的差异,使Linux内核支持很多不同的文件系统。

这个文件系统可以分为逻辑文件系统和设备驱动程序:逻辑文件系统指Linux所支持的文件系统,例如ext2、ext3和fat等;设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

5、网络接口 

网络接口提供了对各种网络标准的实现和各种网络硬件的支持。网络接口一般分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。

网络设备驱动程序则主要负责与硬件设备进行通信,每一种可能的网络硬件设备都有相应的设备驱动程序。

扩展资料

Linux *** 作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX  *** 作系统、MINIX  *** 作系统、GNU计划、POSIX 标准和Internet 网络。

1981 年IBM公司推出微型计算机IBM PC。

1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的 *** 作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU *** 作系统,但是GNU奠定了Linux用户基础和开发环境。

1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix *** 作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的 *** 作系统。

1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell软件了。

1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码大约有十万行,用户大约有10万左右。

1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。

1995年1月,Bob Young创办了RedHat(小红帽),以GNU/Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux"发行版",在市场上出售。这在经营模式上是一种创举。

2001年1月,Linux 2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能。

2003年12月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。

2004年的第1月,SuSE嫁到了Novell,SCO继续顶着骂名四处强行“化缘”, Asianux, MandrakeSoft也在五年中首次宣布季度赢利。3月,SGI宣布成功实现了Linux *** 作系统支持256个Itanium 2处理器。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7241121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存