软件工程几门课程之间的关系
《操作系统》是站在软件的角度看计算机的运行原理,《计算机组成原理》则是站在硬件的角度来看计算机的运行原理,
因此这么课对于学习计算机的学生来说非常重要。我这里不谈怎么通过考试,相信对于现在的的大学考试来说,只要认真备考的都不会通不过,所以这里不谈怎么通过考试,而是谈怎么学到有用的东西。 对于以后想从事嵌入式系统、操作系统设计等和硬件结合比较紧密的工作的同学,我建议所有的内容都要学好,而如果以后想从事软件相关工作的同学也要学好存储器、输入输出系统、计算机的运算方法、指令系统、CPU的结构和功能等章节的内容,因为做大型系统软件会涉及到调优的问题,如果只懂软件,而不知道硬件在怎么运行的话,调优会受到限制,软件无法发挥硬件的最大优势。举一个简单的例子,我所在的公司以前开发过一套软件系统,在Intel的服务器上运行,一开始我们的软件运行效率非常低,然后Intel派了一个对硬件、软件都非常熟悉的团队来进行调优,经过调优,我们的程序运行效率提高了10倍。
这门课程和数字电路等课程不同,《数字电路》是站在微观的角度讲解计算机的原理的,而《计算机组成原理》则是站在宏观角度讲解的,因此大可不必在电路图等细节问题上陷得太深,只要像zsk425 说的那样,以“抽象”的观点看问题,只要知道它在做什么就可以了,不要管它内部是怎么实现的。 这门课和其他专业课不同,大部分都是理论性的东西,很少有动手实验的内容,因此很多同学感觉非常枯燥。那么我的建议就是自己多结合自己的电脑进行联想和研究,多到网上搜索相关的资料,那样理解就会更加深刻。
《计算机组成原理》、《操作系统》、《计算机组成原理》是可以当成“小说”来看的课程,不要皱着眉头把它当成理论学,而是把课本想象成一个给你讲计算机运行原理的说书人。 比如学到《系统总线》的时候,你就想:计算机部件之间的通讯如果是通过一根线来进行的话肯定非常慢,因为数据、控制信息等都要通过一根线进行,而如果分成数据总线、地址总线和控制总线三条线的话数据、控制、地址信息就可以并行进行,所以速度就快了。然后你就可以到网上搜PCI、ISA总线等的介绍,南北桥芯片的介绍等,这样你就能把知识做到“不用刻意记就记住了”。 讲到存储器的缓存的时候,你就琢磨缓存到底是在做什么。缓存就是为了解决低速设备读取的问题,从内存中读数据肯定没有直接从CPU的缓存中读取快,所以就需要把经常被读取的数据放到缓存中,以后读的时候直接去缓存中读取就可以。缓存不能设计的太小,因为太小的话很多需要缓存的数据放不进去,太大的话则会增加成本,而且会导致很多不需要被缓存的数据也缓存了。然后你就到网上看主流的CPU内置的1M、2M、8M缓存的比较的文章,相信你就会理解深刻了。 讲到程序查询方式、DMA方式等的时候你就联想企业中的人员管理,有的企业里边A员工让B员工做一件事情也要领导转达任务分派,而且有的企业里一些普通的事情员工之间就可以处理,无需要领导过问。 讲到奇偶校检码的时候你就可以思考为什么有的压缩文件、视频文件有轻微的损坏仍然能够打开,你甚至可以自己写一个程序来实现校检功能。
----此段话是在2016-03-04时在某地摘抄,现已忘却,当时也未注明出处,若有读者知晓,请告知,那时定注明出处。
软件工程几门课程之间的关系相关推荐
- 基础数学课程之间的关系
基础数学课程之间的关系 python代码 import graphviz text4maths=''' digraph graph4maths{graph [compound = true fontn ...
- 将我人生的第一篇博客献给伟大的软件工程这门课程
我.一个未来肌肉猛男.未来公务员.未来国家地理摄影师.拥有无与伦比的计算机废柴体质.选这个专业是因为机缘巧合.但是对这个专业并没有任何偏见.只是对这个专业的兴趣不是很大,如果可以,我希望以后的我能从事 ...
- 第一次作业,针对软件工程这门课程提出五个疑问。
1.如果对于不爱好计算机的同学来说学习软件工程的意义大吗,有多大? 2.软件工程的知识面那么广,如果才能系统有效的将它学好? 3.软建工程这门课是否有点纸上谈兵了? 4.软件工程是衣门很枯燥的学科,我 ...
- 研究大学生基础课程成绩和专业课程成绩的关系,证明两者之间是否有线性关系
Python课程作业: 研究大学生基础课程成绩和专业课程成绩的关系,证明两者之间是否有线性关系 完成截图 代码 关注微信公众号未名编程,消息框回复0813即可获得
- 基础数学课程之间的递进关系
基础数学课程之间的递进关系 text4maths=''' digraph graph4maths{graph [compound = true fontname = "SimSun" ...
- AcDbObjectId、AcDbHandle与AcDbStub之间的关系 阿门原创
阿门原创 http://hi.baidu.com/lihao102 欢迎转载 近期,由于项目的需要做一套撤销恢复机制,特地研究了一下AutoCAD(下文称为ACAD)的撤销恢复机制,ACAD的 ...
- 现代软件工程讲义 0 课程概述
这门课的教学方案在这里. 根据学生和学校的具体情况, 可以进行调整. 师生关系 首先要明确的是, 在这门课中的师生关系是什么样的. 大学目前的师生关系是怎样, 什么样才是理想的师生关系? 我们先看 ...
- 计算机应用综合实践课程报告,南通大学继续教育学院软件工程综合实践课程报告书——生产信息化工作管理系统...
内容简介: 南通大学继续教育学院软件工程综合实践课程报告书--生产信息化工作管理系统,共38页,9911字 目录 一 前言(1) 二 需求分析(2) (一)系统需求(2) (二)功能需求(2) 1 生 ...
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什 ...
最新文章
- 基本环境安装: Centos7+Java+Hadoop+Spark+HBase+ES+Azkaban
- Linux操作系统为何会对计算机病毒免疫
- Fedora7 安装完全过程
- 结合深度学习的工业大数据应用研究
- linux获取连续数组下标值,shell 数组,双层循环打印变量
- The Learning route of GNN
- The LAO将于4月2日启动Neptune DAO,旨在为其他区块链项目提供流动性
- 关于获取安卓设备的mac地址
- mmdetection 绘制PR曲线
- 实测macOS双开微信客户端
- ThinkPHP6 自定义分页样式 快速配置
- 如何编制试算平衡表_试算平衡表的编制步骤是怎样的?
- 赛码-回文串-java
- 7.8 Introduce Local Extension 引入本地扩展
- 计算机专业的女生适合干什么工作?
- 程序员过高工资导致加班?应该降低程序员工资?网友:放过其他苦逼的程序员吧
- 43.属性名和属性值
- 面试自动化测试的必问题
- linux 修改IP, DNS -(转自fighter)
- Network protocols
热门文章
- [CC2642R1][VSCODE+Embedded IDE+Cortex-Debug] TI CC2642R1 快速搭建VsCode开发环境
- python 卡方检验批量筛选_卡方检验(python代码实现)
- Kafka配置动态SASL_SCRAM认证
- 被认证的虫子,吃着才放心 | 独家
- Python将excel或者csv表格中的空行删除
- OVS代码结构(by quqi99)
- yolov导出engin推理加速
- ISP算法介绍--------super Good
- GTSAM中ISAM2和IncrementalFixedLagSmoother说明
- Android开发实战《手机安全卫士》——11.“进程管理”模块拓展 窗体小部件 生成快捷方式