1计算机&计算&计算思维
1.为什么要学计算机专业导论?
了解计算机专业学什么
了解计算机专业的典型计算思维
了解程序是如何被执行的
上述全部,还包括其他理由
2.从长远发展角度,计算机专业导论课程应该讲什么?
常用软件如Office,Photoshop的应用
计算机专业更深入的知识
计算机学科中经典的计算思维及学科专业介绍
计算机语言与程序设计
3.关于课程内容组织的基本脉络,有以下一些:
(I)理解社会/自然如何与计算相互融合,即社会/自然问题如何借助于计算手段进行研究?
(II)理解怎样实现自动计算,即如何构造计算系统?
(III)理解当计算量很大时,即机器也难于完成计算时,应该怎么办?
上述三者的学习次序:2->3->1
4.计算之树将经典的计算思维进行了归类,下列哪种归类是计算之树中的归类?
奠基性的思维,如0和1的思维、程序的思维和递归的思维;
通用计算环境的进化思维,如冯.诺依曼计算机到个人计算机到并行分布环境到云计算环境;
问题求解思维,如关于系统的思维和关于算法的思维等;
上述都是。
5.怎样学习本门课程?
为了考试,将可能考的知识点整理出来,记住!
为多了解一些事实性的知识,将一些术语整理出来,理解并记住它们!
将每个知识的细节都理解透彻,并记住!
理解场景,为区分场景中的不同要素而初步理解一些术语,主要目的是将知识贯通起来,而不纠结于细节!
6.关于机器自动计算和人计算的区别,下列说法不正确的是哪个?
人-计算:人设计规则并让人理解规则,人按照规则进行计算获得结果;机器-自动计算:人设计规则并让机器理解规则,机器按照规则进行计算获得结果。
人-计算:人知道规则,但人却完不成计算获得不了结果,因为计算量很大;机器自动计算,机器可以完成大量重复的计算并获得结果;
一种计算,人没有办法计算并获得结果,则机器也没有办法计算并获得结果;
很多的计算问题,如任意阶次的丢番图方程,虽然人没有办法求解,但却可以让机器自动计算求解,也是可以获得解的。
计算机包括控制各种设备的大脑系统,控制系统,便于人们各种应用的互联网产品,伴随生活的各种便携式产品。
计算机学科不是学修电脑,不是学软件和硬件的应用,而是学如何设计与人们息息相关的电子产品,如何设计机械产品中的自动控制系统,如何通过计算改变生活。
现在计算机学科的知识和细分领域太多了,这样的话本科学什么?
学习计算思维!计算思维现在被称为和理论思维(以数学为代表的强调定义、性质、公理、定理及其证明),实验思维(以化学为代表的强调通过观察实验发现现象,对现象进行归纳总结从而进行研究)并存的三大思维之一。计算机学科的人才应具有复合性思维,将计算机学科与其他学科进行融合形成复合思维。
树根:奠基性思维(理解程序是如何被计算机执行的):0和1的思维,程序的思维,递归的思维
树干:计算环境的演化
树枝的两种颜色:没一个数枝的研究过程中都涉及到两个方面的内容:算法,系统(算法的思维侧重于数学建模,系统的思维侧重于非数学建模)
树枝:分支学科,计算机和社会自然相互融合所产生的新学科,广义上把其称之为计算科学
从树叶到树干(抽象):自然想象的计算的表达与推演
从树干到树叶(自动化):用社会/自然所接受的形式体现计算及结果
抽象与自动化的机制:语言和编译器解决了人和计算机交互的问题;协议和编解码器解决了机器(计算机)和机器(计算机)之间交流沟通的机制;模型和系统,模型从业务模型到计算模型,系统是执行模型的。
从树干到树叶的三个半圆:数据化思维,网络化思维。社会、自然和计算的融合一方面强化了数据化思维,另一方面强化了网络化思维。
早期的计算机演变为计算机科学,计算机科学进一步发展,和社会自然相互融合形成了计算科学。
一般学科为横向组织教学内容,一个一个知识点来进行讲解。本门课程则为纵向组织内容,通过对知识点的纵向贯通使人了解对社会自然问题的求解过程,但是并不对知识点进行横向延展。
计算机学科本质上是抽象与自动化的学习。抽象就是学会理解,区分,命令,表达,学会将现实中的社会自然问题表达为计算机,计算机器可求解的形式;自动化就是设计、构造和应用代替人求解的机器。
知识为穴位,思维为脉络(穴位链),实践为锻炼(使脉络贯通),能力为内功(贯通的脉络)。
查尔斯·巴贝奇用差分原理实现了机器求解多项式,用齿轮表示数字,用齿轮的啮合表示差分运算和加法运算。这是第一台能够编写一定程序的,可以变化规则的计算机。
程序优化:
要实现机器的自动计算就要解决程序和程序的自动执行的问题。
一个集成电路芯片,就好比是做一个将输入转换为输出的变换函数,变换函数越复杂,集成电路也越复杂。
键盘:按照位置输入字符的设备
鼠标:更精细化的点输入(字母,符号—>图像,图形)
阴极射线管:电视的机理(前面是荧光粉,后面是电子枪)
字符发生器:专门为字符设计字形,向量式模拟显示器
内存:半导体存储器,速度高,通电时的即时存储
外存:硬盘,永久存储
计算机发展趋势:微型化,大型化(超级计算机),智能化,网络化
可感知,可互联,智能化
算盘不是计算机,只能算是一种计算的辅助工具
帕斯卡设计了第一台机械计算机—帕斯卡机。意义:他告诉人们:“用纯机械装置可以代替人的思维和记忆”。开辟了自动计算的道路。
莱布尼茨提出了二进制数及其计算规则—莱布尼茨机。探索了数理逻辑。
2符号化&计算化&自动化
英文字母符号采用一字节编码,汉字为什么不能采用一字节编码呢?因为:
汉字个数比较多;
汉字字形比较复杂;
汉字有拼音和字型;
汉字有同音字和多音字。
关于易经与0和1的关系,下列说法不正确的是?
易经的“阴”和“阳”,即可看作是0和1;
易经由一卦变为另一卦的变换方法,可被视为基于0和1的不同计算方法;
易经的阴阳虽然可以看作是0和1,但易经的阴阳是有语义的0和1;
易经的六画卦仅能表示六十四种变化。
汉字的编码:
汉字内码:汉字在计算机内部采用汉字内码存储,汉字内码是两字节且最高位均为1的0,1型编码。
(ASCII码最高位为0)
汉字输入码:用键盘上的字母符号编码每一汉字的编码,它使人们通过键入字母符号代替键入汉字。(拼音码,五笔字形码,区位码)
汉字字形码:一种字模点阵码,用于显示。
易经是我国古人研究自然现象及其变化规律并由此推演到人事现象及其变化规律的古老经书。
关于原码和补码的规则,下列说法不正确的是?
正数的原码和补码是相同的;
负数的原码和补码的符号位是相同的;
补码的+0和-0是用两个数码表示的;
原码的+0和-0是用两个数码表示的。
正数的原码,反码,补码形式是一样的,最高位为0表示正数。
负数原码,反码,补码最高位为1表示负数。负数补码的+0和-0是用+0表示的。
用补码将减法变为加法:
溢出:只有正数和正数的补码相加或负数和负数的补码相加才会产生。所以只用判断两个相同符号位补码相加结果(也为补码)的符号位是否与这两个补码相同即可判断是否溢出。
用逻辑运算实现加法运算:
用电压实现二进制0和1的表示:
基本的集成电路实现基本的逻辑运算:
三极管:如图,若左侧为高电压,则三极管为导通状态,F接地为低电平。反之三极管断开,F为高电平。
关于与门、或门、非门、异或门的符号表示,下列说法最正确的是?
以“或门”为例,方框就好比集成电路,>=1表示“或”运算,左侧的线表示输入(可以是0或1),右侧的线表示输出,整体上表示:输出为两条输入线的“或”运算。
本质上它只是与(AND)、或(OR)、非(NOT)和异或(XOR)的另一种符号表示;
门电路的符号其实暗示了集成电路之间的连接关系;
上述说法全部都正确。
用门电路实现加法器:
与或非运算:((A XOR B)AND C) OR (A AND B) 两个与门+一个或门+一个非门
输入:A B C 输出:S(结果) C(进位)
多位加法器的实现(分层构造化):
复杂电路是用简单集成电路连接起来构成的,其本质是逻辑运算的组合
进位制及其转换
小数点如何处理
为了避免指数符号与整个数符号的混淆,将指数的范围-127à+127表示为0à+254
指数部分的底数2和尾数部分的第一个1都省略不存储,但为默认存在的。
易经、0,1与抽象
1为高电压,0为低电压
二极管工作原理图 + NPN型三极管工作原理图:
三极管:B处有电流,CE为导通状态;无电流,CE中间阻断,电流不通
3冯-诺依曼计算机
运算器:逻辑运算+算术运算
控制器:取出指令+解释指令+执行指令
存储器:保存程序和数据
冯.诺依曼:控制器控制其他四个部件,输入输出时不能计算,计算时不能存储(计算和存储之间有矛盾)
现代计算机:存储器一部分存储单元进行输入输出的时候,另一部分存储单元可以参与程序执行,实现了输入输入和程序执行、计算的并行。
系统的思想:强调结构,强调部件连接后的整体性,协同性
CPU(中央处理单元):将运算器和控制器集成在一块芯片上,形成微处理器。
一个微处理器(芯片)可能包含多个CPU(多套运算器+控制器),即多核。
现在计算机四大核心部件:CPU、主存储器,I/O设备、总线。
如果存储器的地址编码线为10条,则其能管理的存储单元的个数为多少?
10个 100个 512个 1024个
10位(8位地址线):8位控制4个芯片的256个存储单元,剩下2位控制4个芯片哪个工作。
a,b,c,x相当于存储单元的地址
8,2,6,3相当于存储单元内的
控制器中的PC是程序计数器,其作用是?
存放当前正在执行的指令;
存放下一条将要执行的指令;
存放下一条将要执行指令在存储器中存储单元的地址;
上述说法都不正确;
时钟与节拍发生器:主频
PC à存储器中的地址寄存器 à存储器中的内容寄存器(数据缓冲器)à寄存器(数据/指令)(R0,R1,R2,R3/IR)信号控制部件发送信号给哪个寄存器,哪个寄存器接收
关于时钟周期和节拍,下列说法不正确的是?
时钟周期是最小的时间区隔单位;
机器主频是指单位时间内的时钟周期的个数;
一个机器周期是标准指令执行所需要的节拍数,一个节拍占用一个时钟周期;
一条指令只能占用一个机器周期。
时钟周期:也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。时钟周期表示了SDRAM所能运行的最高频率。更小的时钟周期就意味着更高的工作频率。
一个数字代表一个时钟周期
1:将PC(程序计数器)中的内容送给地址寄存器(存储器中);同时信号控制部件(控制器中)发一个控制信号给存储器,让存储器开始工作
2:存储器开始工作,根据地址寄存器中的内容找到要读的存储单元,将内容读到内容寄存器上(存储器中);同时信号控制部件发一个控制信号给IR(指令寄存器)(控制器中)
3:信号控制部件分析IR中指令,把指令码读到了信号控制部件里面,发现为取操作数的指令,将IR中的地址码送入地址寄存器;同时信号控制部件发一个控制信号给存储器,让存储器开始下一个读写操作,发另一个控制信号,使PC+1
4:存储器开始工作,根据地址寄存器中的内容找到要读的存储单元,将内容读到内容寄存器上;同时信号控制部件发一个控制信号给R0(寄存器)(运算器中),使其接收数值3
此时一条指令执行完毕:取指à分析à执行 该指令将指定地址的存储单元的数值3存到了R0寄存器中
此时已经完成了一条指令的执行,3存储到了R0寄存器中
第二条指令为乘法指令,1à2步与第一条指令执行过程相同
3:信号控制部件分析IR中指令,把指令码读到了信号控制部件里面,发现为乘法指令(将指令中指定地址的存储单元中的数据与运算器中数据相乘),将IR中的地址码送入地址寄存器;同时信号控制部件发一个控制信号给存储器,让存储器开始下一个读写操作,发另一个控制信号,使PC+1
4:存储器开始工作,根据地址寄存器中的内容找到要读的存储单元,将内容读到内容寄存器上;同时信号控制部件发一个控制信号给R1(寄存器)(运算器中),使其接受数值8
5:R0和R1将数值送入算术、逻辑部件(运算器中);信号控制部件发一个控制信号给算术、逻辑部件,使其将两数进行乘法运算
6:算术、逻辑部件将两数的计算结果存入R0
图灵机的思想
4现代计算机
本讲给大家介绍了分工-合作与协同的思想,目的是让大家在很多细节都不清楚的前提下学习如何理解复杂的系统,这是一种化复杂为简单的思想,这也是领导人的基本素养,比如在细节不是十分清楚的前提下如何把握全局。
冯.诺伊曼计算机把程序装入内存中,并用CPU(运算器+控制器)执行,但随之而来的永久存储、存储容量、存储速度、存储器价格都是我们需要解决的问题。
内/主存:由半导体制造。随机存取存储器(RAM),只读存储器(ROM)
速度快、价格高、容量小、非永久存储
外存:由磁性材料制造。硬盘,软盘,光盘 速度慢、价格低、容量大、永久存储
CPU和内存之间按照存储单元读写,内存和外存之间按存储块进行交换。
程序和数据装入内存才能被处理,装入外存才能永久保存。
OS:控制和管理计算机系统各种资源(硬件资源、软件资源和信息资源)、合理组织计算机系统工作流程、提供用户与计算机之间接口以解释用户对机器的各种操作需求并完成这些操作的一组程序集合,是最基本、最重要的系统软件。
OS作用:用户与计算机硬件之间的接口;为用户提供了虚拟机;是计算机系统的资源管理者。
OS实质:“管理各种资源以便执行应用程序”的程序
OS本身的程序是如何做出来的:
(1)分工:独立复杂环境中的各个部件。CPU管理—调度CPU去执行哪个程序;内存管理—管理内存空间的分配与回收;磁盘管理—管理磁盘信息的读写。
(2)合作:以任务为驱动,中心任务就是“让计算机或者说CPU执行存储在外存上的程序”,各部件合作完成该任务。任务、作业与进程管理—管理一个程序执行中的各项工作。
(3)协同:当基本的合作解决后,关键就是协同,“合作”与“同步”,“自动化”及“最优化”。
磁盘管理:化整为零,还零为整
盘面:磁道:扇区
一个扇区存放512个字节
一个磁盘块=若干个扇区(随不同操作系统而有差异,8、16、64或更大的2的幂次数)
文件分配表FAT里存储的是此存储块下一个存储块的块号/地址
第一个磁盘块的块号存在文件夹/目录中记录
计算机病毒攻击的目标:文件分配表FAT、文件夹(目录)、磁盘簇快
病毒进入内存后,跟随写入外存的文件写入外存,再打开此文件时,病毒再次进入内存,进行传播
CPU的管理:内存中待执行程序的地址送入控制器中的PC(程序计数器);内存中的多个程序,执行哪一个的问题;程序执行切换中的状态/环境保护问题。
程序(文件):存储在磁盘上的程序文件
进程:装入内存中的程序
任务:大粒度的工作,一个应用程序的完整的执行。一个任务由多个进程来完成
作业:小粒度的工作,不同的作业由不同的进程来完成。例如内存空间的分配;将程序从磁盘写入到内存中;调度CPU执行进程
OS的进程:为使应用程序顺利执行而做的辅助性管理性工作的进程。操作系统的进程也存储在内存中,也需要调度CPU来执行;CPU在操作系统进程和多个应用程序进程之间来回切换。
应用程序的进程:应用程序本身的进程,在操作系统的进程的控制和管理下执行的
协同完成“应用程序执行”:
创建进程:调用“进程管理”来完成进程的创建
分配内存空间:调用“内存管理”进程为进程分配内存空间
程序装载(将程序从磁盘写入内存):调用“磁盘管理”进程操作磁盘的读写将程序读入内存
调用“处理机管理”,由“处理机管理”决定进程的执行
冯.诺伊曼—程序装载在内存中如何被CPU执行的问题;
个人计算机—外存中的程序如何被载入内存如何被CPU执行
CPU管理—分时:一台主机一个CPU执行多个程序(来自于多个用户的多个终端) 早期的计算机
操作系统管理着时间轮盘,按照时间轮盘的时间分区,轮流让CPU执行若干个程序。由于时间分区足够小,所以每个作业的用户都认为自己独占着CPU
CPU管理—并行:一台主机多个CPU执行一个程序
操作系统将一个作业分解成若干个可并行执行的小作业,由不同的CPU予以执行。其中一个CPU负责作业的拆分与合并工作。如此多CPU并行完成一个作业
CPU管理—分布:网络中多台主机多个CPU执行一个任务
一个作业被一台机器的操作系统拆分成若干个可分布与并行执行的小作业,通过局域网络或互联网传送到不同的机器,有不同机器的操作系统控制其CPU予以执行。如此网络上,多台计算机可并行完成一个作业。