NO.1 Day 计算机基础
计算机基础
1.编程语言的作用及与操作系统和硬件的关系
编程语言是程序员与计算机之间沟通的媒介。
一套完整的计算机系统分为计算机硬件、操作系统和软件三部分。编程语言开发的结果为软件。软件的运行在操作系统之上,操作系统运行与硬件之上,并控制硬件。操作系统为软件的运行提供了一个简单方便的借口。
2.计算机的硬件介绍
计算机主要由CPU、内存和I/O设备组成,并由一条系统总线(BUS)连接起来并通过总线与其他设备通信。
CPU:计算机的大脑,负责运算。
内存:存储数据,但是不能永久存储,容量小,读写速度快。
硬盘:能永久存储,容量大,读写速度慢。
数据的读写顺序:数据写入硬盘,传到内存,再由内存读入CPU,被分析执行。
3.cpu与寄存器
CPU:从内存中取指令-》解码-》执行 由于因访问内存以得到指令或数据的时间比cpu执行指令花费的时间要长得多,所以需要寄存器。
寄存器:再CPU内部用来保存关键变量和临时数据。
寄存器分为:通用寄存器,程序计数器,堆栈指针,程序状态字寄存器(PSW)。
4.内核态与用户态及如何切换
多数CPU有用户态和内核态两种模式。通常,PSW中有一个二进制位去控制这两种模式。
内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)
用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。
内核态与用户态切换
在使用软件中一定有操作硬件的需求,就需要从用户态切换到内核态。用户程序必须使用系统调用(system call),TRAP指令可以将用户态切换到内核态。并启用操作系统并获得服务。
5.存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池
L1缓存:即寄存器,与CPU的材质相同,CPU访问无延迟。
L2缓存:即高速缓存,存放近来经常使用的内存字。CPU对L2的访问则有1-2个时钟周期(即1-2ns)的延迟。
内存RAM:通常说的主存,易失性,断电数据全部丢失。
ROM:只能读不能写,断电后数据不会丢失。
EEPROM和闪存:非易失性的,与ROM相反,它可以擦除和重写。闪存可用于固态硬盘。速度介于RAM和磁盘之间。
CMOS与BIOS电池:CMOS存储器是易失性的,经常用来存储时间和日期,它由一块电池驱动供电。CMOS还可以用来保存配置的参数,比如哪一块是启动磁盘。
6.磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU
磁盘结构:


每个磁头可以读取一段换新区域,称为磁道
把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面
每个磁道划成若干扇区,扇区典型的值是512字节
平均寻道时间:机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就找到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置
平均延迟时间:机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间
虚拟内存:许多计算机支持虚拟内存机制,可以使计算机运行大于其物理内存的程序。方法是将正在运行的程序放入内存去执行,暂时不需要执行的程序放入到磁盘的某个位置,这个位置称为虚拟内存。在linux中成为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,称为存储器管理单元(Memory Management Unit MMU)
7.磁带
磁带比磁盘价格便宜,容量大,易于移动,经常用来备份。但速度低于磁盘。
8.设备驱动与控制器
I/O设备一般包括设备控制器与设备本身两部分。
控制器:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口。
设备驱动:有了控制器,调用设备还需要设备驱动,要想调用设备必须将设备驱动程序安装到操作系统上。
9.总线与南桥和北桥
总线:将计算机各个部分连接起来协同工作,随着处理器和存储器速度越来越快,单总线很难处理总线的交通流量了,于是出现了下图的多总线模式,他们处理I/O设备及cpu到存储器的速度都更快。
北桥:PCI桥,连接高速设备
南桥:ISA桥,连接慢速设备
10.操作系统的启动流程
- 计算机加电
- BIOS开始运行,检测硬件:cpu、内存、硬盘等
- BIOS读取CMOS存储器中的参数,选择启动设备
- 从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
- 根据分区信息读入bootloader启动装载模块,启动操作系统
- 然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI
应用程序的启动流程
点击事件-映射应用程序真实位置-加载到内存-CPU执行
NO.1 Day 计算机基础的更多相关文章
- 计算机基础--Java中int char byte的关系
计算机基础--Java中int char byte的关系 重要:一个汉字占用2byte,Java中用char(0-65535 Unicode16)型字符来存字(直接打印输出的话是字而非数字),当然要用 ...
- Java学习之计算机基础(一)
阅读本文大概需要 4 分钟 想要开始学习Java开发,需要掌握一些必要的计算机基础.如果你是计算机专业的人或者已经学过类似的课程,可以跳过这篇文章的阅读.计算机基础课程有很多,小编在大学里学过的课程就 ...
- 计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- python计算机基础-Day1
计算机基础-Day1 一.计算机基础 首先Python是一门编程语言 语言: 那什么是语言?语言就是一种事物与另一种事物沟通的介质. 所以说编程语言是程序员跟计算机沟通的介质,那么为什么要跟计算机沟通 ...
- Python之旅_计算机基础入门
一.计算机基础 1.Python是编程语言 语言:一种事物与另一种事物沟通的介质. 编程语言:程序员与计算机沟通的介质. 什么是编程:程序员用编程语言把自己的逻辑思想下来,编程的结果就是一堆文件. 为 ...
- 计算机基础,Python基础--变量以及简单的循环
一.计算机基础 1.CPU 相当于人体的大脑,用于计算处理数据. 2.内存 用于存储数据,CPU从内存调用数据处理计算,运算速度很快. PS:问:既然在内存里的数据CPU运算速度快,为什么计算机不全 ...
- day01计算机基础
今日内容 1.计算机初步认识 1.计算机认识 1. 计算机基础 1.1硬件:cpu/内存/硬盘/主板/网卡 1.2操作系统 linux:免费开源 windows mac 1.3解释器/编译器 补充:编 ...
- Java面试题 Web+EJB & Spring+数据结构& 算法&计算机基础
六.Web 部分:(共题:基础40 道,基础37 道,中等难度3 道) 122.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? [基础] 答:Web 容器加载Servlet ...
- python note 01 计算机基础与变量
1.计算机基础. 2.python历史. 宏观上:python2 与 python3 区别: python2 源码不标准,混乱,重复代码太多, python3 统一 标准,去除重复代码. 3.pyth ...
- 计算机基础part1
一:计算机的基本组成 1.计算机由输入单元.控制单元.算法逻辑单元.输出单元.存储单元,五大单元组成 二:概念篇 CPU:中央处理器,其内含有指令集(取码-解码-执行的过程) CPU同一时刻只能干一件 ...
随机推荐
- Daily Scrum (2015/10/25)
今天终于到了周末的尾声,我们的组员也应该正常得投入到工作中了.这天晚上我(符美潇)和PM(潘礼鹏)和两个DEV开了一个小会,讨论一下我们本周的代码编写工作.我们了解到大家的代码阅读工作和相关知识的学习 ...
- cnblogs用户体验及建议
一.是否提供了良好的体验给用户(同时提供价值)? 我觉得博客园还是给用户提供了良好的用户体验的,它可以从用户的角度考虑,用户在注册的时候,用户自己在设置用户名和密码的时候,如果与他人重复会有提示,而且 ...
- 作业一 031502140 博客地址yeze651521
大一 上学期一开始对于这门课程是懵懵懂懂的,基本不知道自己会不会能够学好,经过了一个学期的努力和老师的教导得到了许多有益的地方,使得我在这门课程的学习上有了大概的掌握,一个学期的学习给予了我很大的能力 ...
- Week2-作业1——关于阅读《构建之法》第1、2、16章的疑问与感悟
关于阅读<构建之法>第1.2.16章的疑问与感悟 术语解释: 第2章,23页 什么是代码覆盖率? ———————————————————— 在测试中的代码覆盖率是指,你运行测试用例后,走过 ...
- C#编程之神奇程序找数
C#编程之神奇程序找数 问题1:这个程序要找的是符合什么条件的数? 问题2:这样的数存在么?符合这一条件的最小的数是什么? 问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间精确到分 ...
- .NET项目中常用的32个正则表达式总结
最近没事总结了下最近所用到的正则表达式,下面32个是经常用到的,总结下来与大家分享. . "^-?[1-9]\\d*$",//整数 . "^[1-9]\\d*$" ...
- 订制EditText光标
订制EditText光标 设置背景android:background="@null" 设置光标样式:android:textCursorDrawable="@drawa ...
- 软工网络15团队作业8——Beta阶段敏捷冲刺(Day6)
提供当天站立式会议照片一张 每个人的工作 1.讨论项目每个成员的昨天进展 赵铭: 数据库整理. 吴慧婷:我的世界界面完成部分. 陈敏: 我的世界功能--学习情况功能完成. 吴雅娟:我的世界功能--学习 ...
- [转]无需看到你的脸就能认出你——实现Beyond Frontal Faces: Improving Person Recognition Using Multiple Cues
转自:http://www.cnblogs.com/sciencefans/p/4764395.html
- Robot Framework 教程 (6) - 使用条件表达式
本篇文章,主要对如何在Robot Framework中使用条件表达式做过程控制作说明. 按照Robot Framework的官方文档介绍,Robot Framework并不建议在TestCase或Ke ...