计算机知识整理

一、编程语言就是软件开发,软件必须依附在操作系统上才能运行。

二、计算机的大脑就是处理器,即CPU。它从内存中取指令→解码→执行,此过程重复至整个程序被执行完成。每个cpu都有一套可执行的专门指令集,任何软件的执行最终都要转化成cpu的指令去执行。Pentium(英特尔第五代x86架构的微处理器)不能执行SPARC(另外一种处理器)的程序。

CPU访问内存取指令的时间要比执行指令的时间长,所以,所有CPU内部都有一些用来保存关键变量和临时数据的寄存器。

寄存器分为通用寄存器、程序计数器、堆栈指针和程序状态字寄存器。

通用寄存器就是保存变量和临时结果的。

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

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

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

cpu分为内核态和用户态两种模式,通常PSW中有一个二进制位控制这两种模式。

当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)

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

内核态与用户态的切换,用户态下工作的软件不能操作硬件,但是我们的软件有操作硬件的需求,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用,系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

存储器分为寄存器、高速缓存、内存和cmos

寄存器即L1缓存,L1缓存的制造材料和cpu相同,因此速度很快,cpu访问它无时延。典型容量在32位cpu中为32*32,在64位cpu中为64*64,在两种情况下容量均<1KB。

高速缓存即L2缓存,主要由硬件控制高速缓存的存取,内存中有高速缓存行,最常用的高速缓存行放置在cpu内部或者非常接近cpu的高速缓存中。当某个程序需要读一个存储字时,高速缓存硬件检查所需要的高速缓存行是否在高速缓存中。如果是,则称为高速缓存命中。反之称为高速缓存未命中,这样就必须要访问内存。

内存是易失行存储,断电后数据就会消失。

除了内存之外,计算机已经在使用少量的非易失性随机访问存储如ROM,当电源切断之后,非易失性存储的内容不会丢失。ROM只读存储器在出厂时就被编写完成,因此不可修改。

EEPROM和闪存也是非易失性的存储器。闪存通常作为存储媒介,它在速度上介于RAM和磁盘之间,但与磁盘不同的是,闪存擦除的次数过多,就会被磨损了。

还有一类存储器就是CMOS,它也是易失性存储器,CMOS存储器和递增时间的电路有一小块电池驱动,所以,即使断电了,时间也能正确的更新。CMOS还可以保存配置参数,用CMOS是因为它耗电非常少。

磁盘是一种低俗的机械装置,在磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm的速度旋转。从边缘开始有一个机械臂悬在盘面上。为了统计方法,8个bit称为一个字节bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我们平时所说的磁盘容量最终指的就是磁盘能写多少个2进制位。磁盘上的每个磁头可以读取一段换新区域,称为磁道,把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面,每个磁道又分为若干扇区,扇区典型的值是512字节。数据都存放在每段的扇区上,从磁盘读取一段数据需经历寻道时间和延迟时间。机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就是找到了数据所在的那个圈圈,但是还不知道数据具体在这个圆圈的具体位置称为平均寻道时间。机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为平均延迟时间。

虚拟内存使计算机可以运行大于物理内存的程序,是将正在使用的程序放到去内存执行,而暂时不需要执行的程序放到磁盘里的某个地方,这个地方称为虚拟内存。

磁带是一种容量非常大,速度低于磁盘,但是由于它的容量大、可移动性强,所以常被用于大数据备份。

cpu和存储器并不是操作系统唯一需要管理的资源,I/O设备也是非常重要的一环。

I/O设备包含了设备控制器和设备本身两部分。

控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口

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

随着处理器和存储器速度越来越快,单总线很难处理总线的交通流量了,于是出现了多总线模式,他们处理I/O设备及cpu到存储器的速度都更快。

多总线分为北桥(即PCI桥)和南桥(即ISA桥)。北桥用来连接高速设备,而南桥则用来连接低速设备。

计算机的启动流程:

1、给计算机通电

2、按下开机按钮,这时BIOS开始运行,开始检测硬件。

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

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

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

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

时间: 2024-11-03 20:57:44

计算机知识整理的相关文章

Kali Linux渗透基础知识整理(二)漏洞扫描

Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网络上传输的数据量. TCP协议 TCP是因特网中的传输层协议,使用三次握手协议建立连接.当主动方发出SYN连接请求后,等待对方回答SYN+ACK ,并最终对对方的 SYN 执行 ACK 确认.这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议. 连接建立 TC

计算机硬件知识整理

计算机硬件知识整理 一.编程语言的作用 编程语言,就是让计算机为解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程.为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路通过计算机能够理解的形式告诉计算机,这种人和计算机之间交流的过程就是编程. 目前的主要编程语言有,Java, C, C++, Python, PHP, Pearl等. 二. 编程语言的作用及与操作系统和硬件的关系 操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件的计

关于计算机知识的基本理解

本人是个大一的学生,比较热爱计算机,有人说过,最好的学习方式就是整理,并形成体系,那么我就把我现在所学的知识整理一下. 1. 最初计算机的模型应该是图灵所提出来的,艾伦.图灵.其模型叫做:图灵机.他的图灵机的模型是:只有数据储存在储存器中,而程序的实现是通过一系列的开关或配线来实现的. (图为图灵机模型) 简单的介绍一下:程序是告诉计算机如何去处理输入的一组数据的指令集合.而输出的结果取决于,输入的数据和程序. 例如:输入2.3.,而程序是相加,那么结果就会等于5.假设说数据不变,改变程序为相乘

MYSQL数据库常用知识整理

Evernote Export MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQL备份与恢复 MYSQL的基本操作:增删查改 MYSQL的基本故障判断与处理 MYSQL的调优 MYSQL主主.主从复制的实现 MYSQL大数据备份和恢复 数据文件的损坏与修复 什么是MYSQL MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被广泛地应用在Internet上的中

Web网站服务及知识整理(二)

Web网站服务及知识整理(二)

Java基础知识整理(一)

概述 公司业务需要,产品既要有.NET又需要Java,没得选择,只能业余时间学习Java,整体觉得Java也.NET还是很相似的,只是语法有差别,差别也不是很大,这就将学习Java的基础知识整理下,以便于自己的学习.作为个.NET程序猿也可以学习Java ,毕竟技多不压身,学习多也要精通. 开发工具 eclipse ,开发java类似.NET 需要装JDK类似.NET Framework. Java开发工具eclipse设置 1.设置字体:window设置: 2.设置快捷键:window--ke

Linux动态库相关知识整理

动态库和静态库在C/C++开发中很常见,相比静态库直接被编译到可执行程序, 动态库运行时加载使得可执行程序的体积更小,更新动态库可以不用重新编译可执 行程序等诸多好处.作者是一个Linux后台开发,这些知识经常用到,所以 整理了一下这方面的知识.静态库相对简单,本文只关心Linux平台下的动态库. 创建动态库 这里我把一个短小却很有用的哈希函数编译成动态库做为示例,ELFhash用于对字符串做哈希,返回一个无符号整数. //elfhash.h #include <stdio.h> unsign

数据库知识整理

关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数据的安全性 1.2基本概念: 对于任何数据库来说,表之间的关联关系存在三种基本的关系类型:一对一,一对多,多对多仅此三种. 目前流行的关系型数据库服务器管理系统有:微软-MS SQL Server.甲骨文-Oracle.IBM-DB2.开源的MySql和PostgreSQL等.(在面试中有被问到过)

DIV+CSS网页布局常用的一些基础知识整理

CSS命名规范一.文件命名规范 全局样式:global.css:框架布局:layout.css:字体样式:font.css:链接样式:link.css:打印样式:print.css: 二.常用类/ID命名规范页 眉:header内 容:content容 器:container页 脚:footer 版 权:copyright 导 航:menu主导航:mainMenu子导航:subMenu 标 志:logo标 语:banner标 题:title侧边栏:sidebar 图 标:Icon注 释:note