我的编程空间,编程开发者的网络收藏夹
学习永远不晚

计算机基础知识

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

计算机基础知识

一、为何要学习计算机基础?

           好多人觉得自己有点基础就都想着直接敲代码,觉得基础知识很容易,很简单,就不怎么用心去学。然而,我觉得基础知识很重要。就像盖一栋楼房一样,你先要打好地基,再去盖房。    

   Python是一门编程语言,即通俗一点说就是语言。

   我们都知道世界上有很多种语言,比如:汉语,英语,阿拉伯语等等众多的语言。要想用这些语言去和人沟通,如果你想和英国人说话,你必须得会英语吧。而我们的计算机也有它自己的语言,你要想让计算机帮助我们做事情,你就需要和它沟通吧。那你就得懂得计算机语言吧,也就是编程。当然计算机也有很多语言,比如:C,Java,PHP,Python,C#等。所以我们就先从学习基础知识开始。也有人说学习基础理论知识很枯燥,但是,那还是得学。你要把它当成自己的兴趣,一点一点的去投入它,相信你会是很棒的。

    程序用编程语言来写程序,最终开发的结果就是一个软件。就像大家都知道的QQ,腾讯视频,酷狗音乐等一系列软件。这些软件要想运行必须得有系统控制它吧。当然,有人会问:为什么要用操作系统呢?当然,很久以前的那些程序员确实是在没有操作环境下,编程语言是操作硬件来编写的。你可能觉得没问题,但是其实问题很严重。如果一直像以前那样会严重影响效率的。操作系统是出现在硬件之上的,是用来控制硬件的。所以,我们开发时只需要调用操作系统为我们提供的简单的接口就可以了。

  

   如上图所示,我把计算机的系统分为了上面三大块。硬件,操作系统,应用程序。要想学习软件知识,我想那些硬件的知识或多或少还是得了解点的,现在我们就来谈谈硬件一类的知识。

二、计算机硬件介绍

    1. 硬件的目的:为了运行软件给它的一些指令。我们可以优先从硬件中提取出这三个主要的东西,分别是: CPU,内存,硬盘

       2. 在现实生活中,人脑是用来计算的,在计算机中,用来计算的是什么呢?当然是CPU了。多数CPU都有两种模式,即内核态与用户态。这里的即内核态与用户态将会在下面的内容中讲到。

       3.如果我们把计算机理解为人的大脑,我们可以总结为几句话:

               CPU是人的大脑,负责运算

        内存是人的记忆,负责临时存储

        硬盘是人的笔记本,负责永久存储

        输入设备是人的耳朵或眼睛,负责接受外部的信息传给CPU

        以上所有的设备都通过总线连接,总线相当于人的神经

                                                                                            总线示意图

三、处理器(寄存器及内核态与用户态切换)

   1.计算机的大脑是CPU,它从内存中取指令-▶解码-▶执行,然后在取指令,解码,执行,周而复始,直至整个程序被执行完成。

   2. 寄存器是一个存储设备,最快的一种存储设备就是寄存器。

      3.寄存器的分类

      ①通用寄存器:用来保存变量和临时结果的。

      ②程序计数器:它保存了将要取出的下一条指令的内存地址。在指令取出后,程序计算器就被更新以便执行后期的指令

      ③堆栈指针:它指向内存中当前栈的顶端。该栈包含已经进入但是还没有退出的每个过程中的一个框架。在一个过程的堆栈框架中保存了有关的输入参数、局部变量以及那些没有保存在寄存器中的临时变量

      ④程序状态字寄存器(Program Status Word,简称PSW):这个寄存器包含了条码位(由比较指令设置)、CPU优先级、模式(用户态或内核态),以及各种其他控制位。用户通常读入整个PSW,但是只对其中少量的字段写入。在系统调用和I/O中,PSW非常重要。

    4.内核态与用户态

       多数CPU都有两种模式,即内核态与用户态。        

    ①当cpu处于内核状态时,运行的是操作系统,能控制硬件(可以获取所有cpu的指令集)     

    ②当cpu处于用户太状态时,运行的是用户软件,不能控制硬件(可以获取所有cpu的指令集中的一个子集,该子集不包括操作硬件的指令集)

   这里有些人可能会含糊什么是内核态,什么是用户态?下面我来解释一下:

    内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)所以,归根结底通俗一点的话也就是上面①解释的那样

    用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。

  5.内核态与用户态切换

      用户态下工作的软件是不能之间操作硬件的,但是像我们的一些软件,比如暴风音影啊一类的软件,我们要想从磁盘中读取一个电影文件,那就得从用户态切换成内核态,为此,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

四、存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOSBIOS电池

       1.  计算机中第二重要的就是存储了,所有人都意淫着存储:速度快(这样cpu的等待存储器的延迟就降低了)+容量大+价钱便宜。然后同时兼备三者是不可能的,所以有了如下的不同的处理方式

由上图可以很清楚的看见寄存器存储是速度非常快的,但是它的容量却很少。下来就是高速缓存了。我就不一一介绍了,我相信大家应该可以看得懂这个图。

 2.寄存器即L1缓存:用与cpu相同材质制造,与cpu一样快,因而cpu访问它无时延,典型容量是:在32位cpu中为32*32,在64位cpu中为64*64,在两种情况下容量均<1KB。

   3.高速缓存即L2缓存:主要由硬件控制高速缓存的存取,内存中有高速缓存行按照0~64字节为行0,64~127为行1。。。最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。

   4.内存:主存通常称为随机访问存储RAM,就是我们通常所说的内存,容量一直在不断攀升,所有不能再高速缓存中找到的,都会到主存中找,主存是易失性存储,断电后数据全部消失

   5.EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的。还有一类存储器就是CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的配置和时间等都将丢失。

五、磁盘

1.磁盘由磁头,磁道,扇区组成的。

2.磁道:每个磁头可以读取一段换新区域。把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面

3.每个磁道划成若干扇区,扇区典型的值是512字节。

4.数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间,那么什么是寻道时间和延迟时间呢?

    平均寻道时间:机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置

    平均延迟时间:机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间

 

 

六、磁带

1.有些人会想磁带是用来干什么的呢?当然,它也是内存之一,是用来存储东西的,它的存储量是相当大的,而且价钱也便宜。当遇上火灾等紧急情况时,可以用磁带来存储我们的重要文件。常常用来做备份(常见于大型数据库系统中)。但是,它也有缺点,就是运行速度特别慢,效率低。

2.cpu和存储器并不是操作系统唯一需要管理的资源,I/O设备也是非常重要的一环。I/O设备一般包括两个部分:设备控制器和设备本身

控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口

设备本身:有相对简单的接口且标准的,这样大家都可以为其编写驱动程序了。要想调用设备,必须根据该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统。必须把设备驱动程序安装到操作系统中。

七、总线

    北桥即PCI桥:连接高速设备

     南桥即ISA桥:连接慢速设备

 

八、操作系统的启动流程

  1.计算机加电

  2.BIOS开始运行,检测硬件:cpu、内存、硬盘等

  3.BIOS读取CMOS存储器中的参数,选择启动设备

  4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)

  5.根据分区信息读入bootloader启动装载模块,启动操作系统

  6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI

九、应用程序的启动流程

  1.双击快捷方式

  2.告诉操作系统一个文件路径

  3.操作系统从硬盘读取文件到内存中

  4.cpu从内存中读取数据执行

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

计算机基础知识

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

计算机基础知识

一、为何要学习计算机基础?           好多人觉得自己有点基础就都想着直接敲代码,觉得基础知识很容易,很简单,就不怎么用心去学。然而,我觉得基础知识很重要。就像盖一栋楼房一样,你先要打好地基,再去盖房。       Python是一
2023-01-31

计算机基础知识—Linux操作系统

这一块操作系统主要分为两个部分,一个部分是书本上操作系统的知识,还有一部门是linux的相关知识:linux相关知识###(1) Linux中同步异步、阻塞非阻塞的区别(超级重要)首先是同步异步、阻塞非阻塞的区别:同步:所谓同步,就是在发出
2023-06-05

软考计算机基础知识有多少题

  计算机软考上午考试为基础知识科目,包含75道客观选择题,每小题1分,总分为75分。软考基础知识考试时间为上午9:00-11:30,考试时长为150分钟。  软考初级(信息处理技术员除外)、中级的基础知识科目和软考高级的综合知识科目都是安排在上午考试,各科目上午的考试题型均为客观选择题,共计75道选择题,每小题1分,
软考计算机基础知识有多少题
2024-04-18

云计算基础知识点有哪些

本篇内容主要讲解“云计算基础知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“云计算基础知识点有哪些”吧!数据的可用性以及完整性是用户使用云服务的根本。云计算因按需服务、资源池共享、按服
2023-06-27

计算机操作系统基础知识点有哪些

这篇文章主要讲解了“计算机操作系统基础知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“计算机操作系统基础知识点有哪些”吧!操作系统:Operating System,简称OS操作系
2023-06-20

Android相机Camera基础知识

一、概述 本章节主要讲述的Android相机Camera的相关知识点,主要包含三个方面,Android启动系统相机生成缩略图、Android启动系统相机生成原图以及Android自定义相机等。 二、Android启动系统相机 核心代码:p
2022-06-06

万字长文通关计算机与操作系统基础知识

二进制转八进制时,每三位二进制数表示一个八进制数。因为在八进制中,总共有8个基数,分别是0~7,逢8进1。而如果要使用二进制来表示时,0的二进制为000,7的二进制为111,所以,每三位二进制数对应一位八进制数。反过来,每一位八进制数对应三

计算机基础(一)

1:计算机5大组成部分 (1)控制器:控制计算机硬件 (2)运算器:逻辑运算+算数运算    控制器和运算器组成CPU (3)存储器:存储数据    内存:优点:数据读取速度快               缺点:断电即消失    外存
2023-01-31

Python基础一: 计算机基础,Pyt

1.CPU 内存 硬盘 操作系统CPU:计算机的运算和控制中心,相当于人类的大脑。内存:用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。(暂时存储数据,临时加载数据及应用程序) 4G,8G,16G,32G速度快,效率高,造
2023-01-31

day01计算机基础

计算机硬件组成由以下几个部分组成:  1.控制器  控制器是计算机指挥系统,负责控制计算机其他硬件的工作。  2.运算器  负责数学运算与逻辑运算  3.存储器  分为内存与外存        内存:断电后数据丢失,只能临时保存数据    
2023-01-31

python3基础知识

字符串截取:利用下标进行截取py_str = 'python'len(py_str)py_str[:3]py_str + '123''python123'py_str * 3'pythonpythonpython'Str将数字转换成字符串L
2023-01-31

Bash 基础知识系列 #4:算术运算

在本系列的第四章,学习在 Bash 中使用基本数学运算。

Python 基础知识

只是打印出 hello world 肯定是不够的,是吗?你会希望做得比这还要多——你想要输入一些内容,操纵它,然后从中得到一些输出出来的内容。我们可以在 Python 中通过使用变量与常量来实现这一目标,在本章中我们还会学习其它的一些概念。
2023-01-31

基础知识—3.12

1、二叉树:结点:所有的叶子。叶子结点:最后一层的叶子数。性质1:二叉树第i层上的结点数目最多为 2{i-1} (i≥1)。性质2:深度为k的二叉树至多有2{k}-1个结点(k≥1)。性质3:包含n个结点的二叉树的高度至少为log2 (n+
2023-01-30

MySQL基础知识

1、MySQL查询 union和union all的区别: union和union all都可以将两边的查询结果合并,区别在于union的合并会去掉重复行,并且使用默认的排序规则。而union all返回所有行(包括重复行),且对结果不进行排序。 举例如现在创
MySQL基础知识
2022-01-06

nodejs基础知识

什么是nodejs node.js是基于Chrome javaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。(但nodejs不是javascript应用,nodejs采用c++语言编写 ) js是脚本语言,
2022-06-04

Oracle基础知识

1、Oracle分页查询 现有表employee_tbl,要求按年龄降序,分页查询数据,每页3条数据。 ID  NAME         DATE                             SIGNIN   AGE 1    小明        
Oracle基础知识
2018-10-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录