计算机的构成

CPU

控制器

运算器

存储器

内存

优点: 速度快

缺点: 容量小,断电既丢失

外存

优点:容量大,永久记忆

缺点:速度慢

I/O (input & output)

输入设备

鼠标/键盘

输出设备

显示器/打印机

什么是编程语言

  1. 什么是语言,中文,英语等是用来沟通交流的工具

  2. 编程语言:人类和计算机沟通交流的工具

什么是编程

将自己脑子中的想要让计算机做的事,写到文件中。是一堆文件,这一堆文件就是程序。

为什么要编程

想要奴役计算机,把计算机当成人类的奴隶,让计算机帮人类工作,因而取代人力。

多核CPU

一个CPU相当于一个大脑,多核CPU:计算机同时拥有多个CPU, 同一时刻处理多件事情(多进程)

单核处理器运行多个任务会存在时间差

32位和64位

计算机如何存储图片:计算机只认识0(低电频)和1(高电频),图片的本质就是一串0和1

光盘--》凹0凸1刻印

32位--》计算机一次性能处理32个0或1

64位--》计算机一次性能处理64个0或1

32位和64位本质上是同一类东西

安装包是64位的,计算机是32位--》丢包

安装包32位的,计算机是64位的--》向下兼容

机械硬盘工作原理

机械手臂

读取数据

磁道

存储数据

扇面

将每个磁道等分为若干弧段,每个弧段就是一个扇区。每个扇区的大小是固定的,为 512Byte。扇区也是磁盘的最小存储单位。

平均寻道时间

机械手臂找到磁道的时间(工业水平限制:5ms)

平均延迟时间

手臂找到数据的时间

寻找数据的时间=平均寻道时间+平均延迟时间

固态硬盘

基于电容存储,包含压缩数据算法

优点:不需要机械手臂;基于点存储

思考:如果只有刚刚说的五大组成,你要读取数据,只能自己滑动机械手臂

什么是文件

存储信息的介质,是操作系统提供的一个虚拟的概念,就是这个虚拟的概念可以用来存储信息,帮我们滑动了机械手臂

文件接口 (有操作系统提供)把复杂的硬件操作的简单化

操作系统有什么用

提供给我们一个一个接口,让我们不在关心硬件的复杂操作,让复杂的硬件操作简单化

应用程序的启动

以QQ为例

  1. 双击Windows桌面的QQ图标(qq.exe对应路径的快捷方式)
  2. 双击图标就是给操作系统发送指令,告诉操作系统QQ软件对应的硬盘地址,并让操作系统启动这个路径
  3. 操作系统接收到指令操控CPU发送指令给内存
  4. 内存接受指令后发送指令给硬盘,硬盘读取QQ软件代码给内存,QQ启

计算机系统的组成(有了操作系统后)

  1. 应用程序(软件):和操作系统交互
  2. 操作系统(软件):和硬件交互
  3. 硬件:和硬件交互

操作系统的启动(开机)

操作系统本身也是一个软件,要启动软件就需要依靠操作系统找到软件在硬盘上的位置

操作系统代码由硬盘读入内存(依靠BIOS程序),CPU运行操作系统代码(CMOS存储器),运行成功后操作系统接管操作硬件的工作。

计算机只认识0和1(二进制)

机器语言

只有0和1

计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言

优点:执行速度非常快,直接和硬件交互

缺点:开发速度非常慢

汇编语言

汇编语言类似于机器语言,但是汇编语言只是把一串二进制数写成一个英文单词。

汇编语言--》(设备)--》机器语言

优点:开发效率较高

缺点:执行速度较慢(和硬件交互)

高级语言

高级语言直接用人能理解的语言和语法风格编写程序,无需再去考虑复杂的硬件操作

优点:开发效率高

缺点:执行效率低(不在与硬件交互)、

按照翻译方式不同,高级语言又分为编译型和解释型

编译型

编译型类似于谷歌翻译,我们把要翻译的文字全部放进去,一次翻译,下次使用直接使用上一次翻译好的结果。

优点:执行效率高

缺点:开发效率低(调试bug非常复杂)

解释型

类似于同声传译,我们需要翻译的时候,找一个翻译员,对方说一句翻译员翻译一句,下次翻译还是需要一个翻译员一句一句的翻译。

优点:开发效率高

缺点:执行效率低

网络的瓶颈效应

网络通信时间要远远大于程序执行的时间--》忽略程序执行时间--》解释性语言--》Python

操作系统(单机操作的应用程序)--》编译型语言

Day 02 计算机的基本组成及工作原理的更多相关文章

  1. Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理

    Linux内核设计第一周 ——从汇编语言出发理解计算机工作原理 作者:宋宸宁(20135315) 一.实验过程 图1 编写songchenning5315.c文件 图2 将c文件汇编成32位机器语言 ...

  2. (转)计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

    原文:https://blog.csdn.net/cc_net/article/details/10419645 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体 ...

  3. Linux内核设计(第一周)——从汇编语言出发理解计算机工作原理

    Linux内核设计(第一周)——从汇编语言出发理解计算机工作原理 计算机工作原理 汇编指令 C语言代码汇编分析 by苏正生 原创作品转载请注明出处 <Linux内核分析>MOOC课程htt ...

  4. 计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

    前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来 ...

  5. 《浏览器工作原理与实践》<02>TCP协议:如何保证页面文件能被完整送达浏览器?

    前言: 在衡量 Web 页面性能的时候有一个重要的指标叫“FP(First Paint)”,是指从页面加载到首次开始绘制的时长.这个指标直接影响了用户的跳出率,更快的页面响应意味着更多的 PV.更高的 ...

  6. Ajax工作原理

    在写这篇文章之前,曾经写过一篇关于AJAX技术的随笔,不过涉及到的方面很窄,对AJAX技术的背景.原理.优缺点等各个方面都很少涉及null.这次写这篇文章的背景是因为公司需要对内部程序员做一个培训.项 ...

  7. 关于Ajax工作原理

    1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...

  8. Ajax工作原理(转)

    1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...

  9. CentOS 6.5环境下heartbeat高可用集群的实现及工作原理详解

    Linux HA Cluster高可用服务器集群,所谓的高可用不是主机的高可用,而是服务的高可用. 什么叫高可用:一个服务器down掉的可能性多种多样,任何一个可能坏了都有可能带来风险,而服务器离线通 ...

随机推荐

  1. 领扣(LeetCode)单调数列 个人题解

    如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的. 如果对于所有 i <= j,A[i]> = ...

  2. .NET进阶篇06-async异步、thread多线程3

    知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂 梯子 一.任务Task1.启动任务2.阻塞延续3.任务层次结构4.枚举参数5.任务取消6.任务结果7.异常二.并行Parallel1.Paral ...

  3. linux后台运行程序--nobup

    用途:不挂断地运行命令. 语法:nohup Command [ Arg - ] [ & ] 描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断 ...

  4. 使用OpenMP加快OpenCV图像处理性能 | speed up opencv image processing with openmp

    本文首发于个人博客https://kezunlin.me/post/7a6ba82e/,欢迎阅读! speed up opencv image processing with openmp Serie ...

  5. Openlayers ol.interaction.Select取消默认选中效果

    说明: 在使用ol.interaction.Select进行点击查询时,默认会把点击选中的要素显示在地图上 我的需求是做轨迹回放,并可以点击轨迹上某一点,进行查询.这时候如果重新播放轨迹,会发现这个选 ...

  6. python3 之 迭代器与生成器

    迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束. 迭代器只能往前不会后 ...

  7. Java NIO 三大组件之 Channel

    Java NIO 之 Channel 一.什么是Channel Channel用于源节点(例如磁盘)与目的节点的连接,它可以进行读取,写入,映射和读/写文件等操作. 在Java NIO中负责缓冲区中数 ...

  8. IDEA必备插件系列 - Key Promoter X(快捷键使用提示)

    Key Promoter X 是用于基于 IntelliJ 产品(如 IDEA,Android Studio 或 CLion)的插件,它有助于在工作时从鼠标操作中 学习基本的键盘快捷键. 当您在 ID ...

  9. day20191120笔记

    1.spring的优势 U盘拷.总结.微信公众号:.2.笔试,课前默写,默完之后要回答问题.3.微服务,带着,知识点,卷子.ssm整个东西讲一下.面试是综合能力.背面试题. 通过基础很重要.学精烂熟于 ...

  10. java 数组注意细节,例子解析

    1. int x[]; 或int [] x; 此时却无物理的存在数组.需:数组名= new 数组元素类型[size]: a = new int [10]; 2. 不能使用任何未初始化的数组. 默认的初 ...