软件(模块)开发的理解

前言

        按照笔者对<深入理解计算机系统>(以下称"本书")的阅读和学习,应该进入基于I/O多路复用阶段的并发.但是在看了教材以及其他帖子对这部分内容的分析以后,产生了一点迷茫.这部分内容,要其他概念的支撑,此外有应用级代码,.在这个过程中,笔者想了一个软件开发的流程的示意图,写出来一起讨论(实际自己当笔记看)

引入

        用一张图表达对软件开发流程的理解.

软件(模块)开发示意图        

        说明:不敢说笔者自创,只是把别人说过的东西图形化.

说明 

        从"目标"开始,设计模型和概念,然后是写代码(依托现有api),生成整个软件或一个模块,实现目标

        1.模块开发是可以迭代的.把"软件/模块"(模块)放到"已有框架/库/内核",即表示迭代.也就是继续开发.

        2.常说的"编程最重要是思想",思想体现在程序模型."程序模型及概念"也是其中最难的部分.

        3.本图除了可以做软件分析,也可以做学习用.因为现有框架(模块)也可以看作按该流程开发.

        4.对学习来说,把握的是"程序模型及概念"和"已有框架/库/内核"这两部分.学习框架,弄清概念以及代码.

        5.把"目标"和"代码/库"联系起来,也可以看作写函数的流程(不过意义不是很大)

举例:进程管理

        如前所述,"进程管理"可以看作是操作系统中的一个模块,他的开发图如下:

注:图中图片来源某百科

    双向箭头表示相互关联,文字部分(上框)是概念,下面是他们的联系.而右边的函数是概念的实现.实现是由系统内核做的,也就是写操作系统的人写的(估计是用汇编或C写的).程序员背这些api的用法(源码不清楚如果能看懂更好) 

        对进程的详细描述,笔者引用了一篇帖子可以看看进程状态(一)---- 运行,阻塞,挂起_程序运行状态-优快云博客

        进程的管理并不是这么简单.比如引用贴中提到每个状态都有对应的一个进程队列去管理,而这些进程队列中的元素(进程)在某些情况下切换.---所以模块开发不只是一张图那么简单,同时说明示意图的作用有限.

小结

        软件(模块)开发的一个简单示意图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重庆彭枫

你的鼓励是我创作的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值