计算机基础课程联系与区别

  • 定义:
    • 操作系统
    • 组成原理
  • 联系与指导:
    • (一)
    • (二)
    • (三)
    • (四)
  • 附图:

引言:
本文系各位大佬系统总结,因此也不是出自一处,因为本人在初学时一直搞不清楚他们的区别,头脑总是混乱的听讲,因此效果不是很佳。所以总结本文,来让自己有个全面系统的认识,同时也学到了很多。

定义:

操作系统

操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
  在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。从计算机用户的角度来说,计算机操作系统体现在其提供的各项服务;从程序员的角度来说,其主要是指用户登录的界面或者接口;如果从设计人员的角度来说,就是指各式各样模块和单元之间的联系。事实上,全新操作系统的设计和改良的关键工作就是对体系结构的设计,经过几十年以来的发展,计算机操作系统已经由一开始的简单控制循环体发展成为较为复杂的分布式操作系统,再加上计算机用户需求的愈发多样化,计算机操作系统已经成为既复杂而又庞大的计算机软件系统之一。
  
  

组成原理

计算机组成原理在各个计算机应用中都有应用,大学中也有不少大学开设,使用的教科书也有些差别, 但是都讲述了相近的知识。

计算机简史
冯 诺依曼计算机组成及相关思想
总线相关知识
存储器相关知识
处理器相关知识
数据计算,原反补移码
指令
IO操作

图见下方。

联系与指导:

(一)

首先最基础的是计算机组成原理,如果想深入学习计算机的话这个是必不可少的,涉及到的知识属于比较硬的知识,要求你对计算机处理问题或者运行的情况进行理解,弄明白计算机在执行任务的时候最底层的方式。

然后是计算机网络,弄清了单个计算机工作的原理之后,必然是研究一群计算机如何一起工作和联系,计算机网络讲述的就是计算机如何与计算机进行了联系,联系的时候如何传输信息,传输信息的过程中又要注意哪些问题等等。

其次是操作系统,弄清了物理上,计算机如何工作,计算机之间如何联系,就该学习计算机如何与人进行交互了,其实上面两门课讲得都还是机器层面的问题,对于机器和人的关系就是由操作系统来完成的,操作系统主要是告诉你,机器在完成各种任务的时候,如何实现机器层面的信息向交互层面转换,也就是如何把计算机的功能等等更明白的告诉人,这样人才能更好地利用计算机。

最后是数据结构吧,其实数据机构上面应该还有编程语言和算法,编程语言就是在有操作系统之后,人们应该如何跟操作系统对话,而数据机构和算法则是在你学会编程语言之后学习的两门课程,这两门课程能够帮助你更好的更有效率的完成编程的任务。
我上面讲述的其实是从硬件也就是从底层到软件也就是到高层的顺序讲的,只有弄清了底层的原理,才能让你在学习高层知识的时候不那么迷惑。

(二)

操作系统,这门课你可千万不要觉得,“我又不需要写一个Linux,写一个windows所以我就不需要学习”。这门课不是叫你写一个操作系统的,讲的是资源的调度和分配,以及大型软件的设计。稍微写过一些并行并行的程序,都能体会到这门课的重要性。

计算机网络,是不是觉得现在网络应用框架这么多,socket不用手写,物理层和链路层就更加不用理了是吧。最近尝试把一个网络应用部署到云服务器上,网络没问题,端口全开,云主机上localhost可访问,但从公网死活访问不了,至于原因就等题主你学习计算机网络的时候来思考一下吧。

计算机组成原理,你还真不需要理解cpu的每一个电路怎么运行,但当我懂得内存与外存的区别,以及缓冲区这些概念时,代码的书写思维和我入门时真的有很大不同。

所有的语言,框架说白了就是在某种规则(语法规则,API)上进行利用(编写代码),而一旦遇上瓶颈,或者某些bug的定位,需要为某种环境而进行方案的选择折衷(比如存储空间),这个时候就是你说的那些基础知识辅助决策的时候了。

(三)

一句话概括:计算机体系结构讲的是计算机有哪些功能(包括指令集、数据类型、存储器寻址技术、I/O机理等等),是抽象的;计算机组成原理讲的是计算机功能是如何实现的,是具体的。

例如:一台机器是否具备乘法指令的功能,这是一个结构问题,实现这个乘法采用什么方式,则是一个组成问题。实现乘法指令可以采用一个专门的乘法电路,也可以采用连续相加的加法电路来实现,这两者的区别。

组成原理是让你从整体上精略地让你了解计算机是怎么工作的,内容上侧重于计算机的几大组成(运算器,控制器,存储器,输入设备,输出设备与总线结构),具体来说,是具体一条指令在cpu中是如何执行的,计算机的储存体系是如何的(分三层),还有就是一是I/O接口的基本概念。 之后学的就是体系结构和微机原理,都是以组成为知识背景的。
体系结构可以认为是对《计算机组成》的抽象化与进一步的理论化,里面计的技术包罗万象,包括大型机和微机中所应用的技术。主要内容是学习指令的流水技术,动态调度,静态调度。你学懂了后会觉得cpu一点也不神奇了。
微机原理是是对《计算机组成》的具体实现。一般会选x86计算机来说,这时一般不会再详细讲工作原理了(因为大多数原理都在《计算机组成》中讲了),而是直接讲述cpu的具本结构是什么,具体引脚的作用,各种总线多少多少,各种控制寄存器的各个位有什么意义,I/O的具体交接口(ISA,pci)……因为是具体的东西,所以有好多东东要记的。
总体来说,最有趣的是组成,最难学的是体系结构,最多东西记最有亲切感的是微机原理。作为一名计算机系的学生,这几门课都应好好学一学,他是本科阶段侧重于理论学习的的突出体现,可以让人深入而深切地认识计算机。

(四)

万丈高楼平地起,计算机系统就像程序员金字塔的地基。理解了计算机系统的构造原理,在写程序的道路上才能越走越远。至于原因如下:

  1. 经常用一些不知其所以然的技术,会感到不安。因为源码的实现往往涉及到多方面的的知识,比如设计模式,比如JDK的一些高级特性等等。

  2. 在这个数据爆炸的年代,很多系统对于项目性能的优化有很高的要求。那么如何调优成为了程序员不可避免的问题,我们知道 Java 是运行在 JVM 上的,程序的调优那就需要对 JVM 有一定的了解。

  3. 再就是如果你对计算机系统的构造不太了解,可能你平时写的程序都是错误的。比如我们一直以为两个正数的和或者积一定为正,但是用二进制补码表示的正数和或者积却不一定;程序员和编译器不能用(x-y<0)来代替(x<y),因为前者会产生溢出。甚至也不能用表达式(-y<-x)来代替,因为在二进制补码表示中负数和正数的范围是不一致的。算术溢出是造成程序错误和安全漏洞的一个常见根源。

  4. 第四个原因,这个也是最直接的原因。不知道大家是否了解大的互联网公司面试,比如阿里巴巴,腾讯这样的公司。他们面试对于基础的东西要求的很严格,你对这些东西的了解程度将直接决定你的面试成败。
    比如:讲一下JVM的结构,TCP/IP的三次握手、四次挥手,淘宝用户的数据怎么满足高并发?等等。像这些问题,如果我们不懂计算机底层知识肯定是不能过关的。

  5. 树立正确的计算机世界观
    培养一种心态,即计算机的一切是可以理解的,没有超出人类的智慧。即使有些问题你现阶段没有明白,但这些问题都是可以理解的,只是你时间不够,所以先放一下,等有时间再学习它们。这种心态可以防止你滑入无助的陷阱。 有时候你的潜意识会愚弄你,把很难做成的事情当成无法做成的事情。就像《肖申克的救赎》中表现的那样,一把很小的锤子也是可以砸开监狱的墙壁逃出来的。而Red第一次看到那个锤子时,他就认定了Andy肯定逃不出来了。而实际上Andy却用19年的时间确实把墙给凿开了,虽然其间各种艰辛,但是结局却很美好。

我们是程序员,不是造计算机的,我们也不需要对计算机的每一个部件都了解,我们只需要了解我们所写的程序在系统中的执行过程,以及计算机系统的构造对我们的程序代码有什么限制,有什么影响即可。

好了,说了这么多,其实是想告诉大家,做一只咸鱼很简单。但是要做一只有梦想的咸鱼。如果有同样想法的人,又一直下不定决心去学习的人,我们可以一起,互相监督,互相学习交流。

附图:

计算机组成原理结构图

计算机操作系统,组成原理等基础课联系与区别相关推荐

  1. 计算机操作系统32跟64区别是什么,32位和64位的区别 怎样区分电脑操作系统32位和64位...

    32位的操作系统最多支持4G的内存,64位系统则可以支持128G甚至更大;在处理数据的能力上64位的系统上比32位系统快一倍;32位的电脑只能运行32位的软件,而64位的电脑可以运行32位的软件也可以 ...

  2. 计算机操作系统课程有什么关系,计算机操作系统课程教学大纲(洪联系).doc

    计算机操作系统课程教学大纲(洪联系) 附件2:集美大学 操作系统课程 课程教学大纲 第 1 页共 6 页课程名称中文:计算机操作系统英文:Computer Operating System课程编号80 ...

  3. 计算机操作系统 教学目的,《操作系统》课程教学大纲学时

    <<操作系统>课程教学大纲学时>由会员分享,可在线阅读,更多相关<<操作系统>课程教学大纲学时(16页珍藏版)>请在人人文库网上搜索. 1.操作系统课程 ...

  4. 计算机的组成原理总结

    计算机的组成原理总结 计算机基础 冯诺依曼体系 计算机学习图 性能问题 计算机指令 编译过程 解析指令和机器码 程序栈 ELF和静态链接 程序装载 动态链接 PLT和GOT 二进制编码 字符串的表示 ...

  5. 国防科大计算机考研大纲,2022年国防科技大学F1003计算机操作系统考研大纲及参考书目...

    2022年研究生入学考试自命题科目考试大纲 科目代码:F1003 科目名称:计算机操作系统 一.参考书目 1.<操作系统教程>(第5版),费祥林,高等教育出版社,2014年. 2.< ...

  6. 计算机操作系统课设总结,计算机操作系统课程设计

    <计算机操作系统课程设计>由会员分享,可在线阅读,更多相关<计算机操作系统课程设计(36页珍藏版)>请在人人文库网上搜索. 1.操作系统课程设计实验报告姓 名: 李文孝 班 级 ...

  7. 服务器硬盘属于计算机哪一类,服务器和电脑虽然都是计算机,但却有很大区别,千万不要用错了...

    原标题:服务器和电脑虽然都是计算机,但却有很大区别,千万不要用错了 表面上看,服务器和电脑都是由CPU.内存.主板.磁盘等几大部分组成.实际上,它们之间的区别却是非常大的.主要体现在以下四点: 1.性 ...

  8. 面试「计算机操作系统」知识点大集合!

    作者:CyC2018 链接:https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/计算机操作系统.md 一.概述 基本特征 1. 并发 ...

  9. 中级统计师基础知识中计算机,【2014年中级统计师《统计基础理论及相关知识》预习:计算机操作系统】- 环球网校...

    [摘要]2014年中级统计师<统计基础理论及相关知识>预习:计算机操作系统 2014年统计师考试备考已经开始,为了帮助参加2014年中级统计师考试考生提高备考效果,环球网校为大家整理了中级 ...

  10. 简单计算机面试题库及答案_460道Java后端面试高频题答案版【模块六:计算机操作系统】...

    写在前面 1. 计算机操作系统和计算机网络是每个后端开发工程师必须掌握的知识.因为你写的代码最终都是要在操作系统里跑的,弄懂操作系统的原理对你编写高质量代码.调优.排故都有很大的帮助.在这里说一下我作 ...

最新文章

  1. 麦肯锡:物联网九大应用潜力无限 2025年经济价值高达11.1万亿美元
  2. 【Windows】字符串处理
  3. Python标准库 数学与随机数 (math包,random包)
  4. C++学习之路 | PTA乙级—— 1023 组个最小数 (20分)(精简)
  5. 并发编程概念、程序线程进程、线程同步、互斥量、读写锁、协程并发
  6. 判断一颗二叉树是否是二叉排序树
  7. Java:电脑安装多版本jdk并切换版本
  8. JDK API文档中文版(1.6、1.8、1.9)(附百度网盘下载地址)
  9. matlab nist接口文件,RefProp流体热物理性质计算程序与Matlab接口
  10. Unity的虚拟摇杆
  11. Java面向对象游戏-黑熊怪变成武大郎吃唐僧 --如何方法继承 重写
  12. 基金经理的13年期货感悟(一)
  13. 绿幕背景视频抠图替换
  14. C++中的back_inserter
  15. 约瑟夫问题(c语言)
  16. Java学习第一天:jkd安装、环境变量配置和第一个程序
  17. 【第十章 线性代数之 特征向量与特征值】3Blue1Brown
  18. 电脑上与android手机文件互传
  19. 【Linux】set ff=unix
  20. 年收入80亿、三年扩张四倍:1700人的Playrix已成休闲游戏新巨头

热门文章

  1. 572g装固态 acer v3_联想 thinkpad R60E 0658DE2 升级SSD 固态硬盘方案?宏碁V3-572G-51MR光驱位加装固态硬盘应该买什么样接口类型的...
  2. 二维码批量生成系统 windows的exe 程序执行 二维码工具 解压直接使用
  3. CI框架url模式及获得参数
  4. 元宇宙相关的前端技术
  5. xmpp 即时通讯
  6. ​SQL注入非常详细总结
  7. python文字转语音哪个库好用
  8. 微信开发者工具使用less
  9. 软件测试报告模板excel,测试报告模板,excel.docx
  10. GPS 经纬度换算方法和定位误差计算