程序就是软件,存放代码的文件。
进程指的是程序的一次执行,是资源单位。
PS:线程是cpu的执行单位。
多线程运行cpu保持两个不同的线程状态,可以在纳秒级的时间内来回切换,速度快到你看到的结果是并发的,伪并行的,然而多线程不提供真正的并行处理,一个cpu同一时刻只能处理一个进程(一个进程中至少一个线程)。
存储器除了常规的内存RAM和硬盘之外,还有一些特殊的存储硬件。
相当于内存,用于存放BIOS,ROM是非易失性随机访问存储,断电后内容不丢失。
相当于“硬盘”:断电数据丢失,但是耗电量极低。它是易失性的,用来保持当前时间和日期和保存配置的参数。
3.最基础的系统,用来运行BIOS程序。
CPU
ROM
CMOS
硬盘一般分为基于磁信号工作的磁盘和基于电信号工作的固态硬盘,目前主流的硬盘仍然是磁盘。
磁盘低速的原因是因为它一种机械装置,在磁盘中有一个或多个金属盘片,它们以5400,7200或10800rpm(RPM =revolutions per minute 每分钟多少转 )的速度旋转。
当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。
把一个戈丁手臂位置上的磁道合起来,组成一个柱面。
是指磁盘上划分的区域。磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,硬盘的读写以扇区为基本单位,扇区的典型值是512字节。
数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间。
机械手臂从一个柱面随机移动到相邻的柱面的时间称为寻道时间。
机械手臂达到正确的磁道之后,还必须等待旋转到数据所在的扇区下,这段时间称为延迟时间。
以7200转/60s的磁盘为例:
120转/s
转一圈花费:8ms
平均寻道时间:4ms
平均延迟时间:5ms
# 磁盘容量单位 TB,PB, Eb, Zb, YB
1B= 8bit(2进制位称为bit位)
1KB=2(10)B=1024B; 括号中的数字为2的指数(即多少次方)
1MB=2(10)KB=1024KB=2(20)B;
1GB=2(10)MB=1024MB=2(30)B。
1TB=2(10) GB=1024GB=2(40)B
1PB=2(10) TB=1024TB=2(50)B
1EB=2(10) PB=1024PB=2(60)B
1ZB=2(10) EB=1024EB=2(70)B
1YB=2(10) ZB=1024ZB=2(80)B
1Byte相当於一个英文字母
Kilobyte(KB)=1024B相当於一则短篇故事的内容。
Megabyte(MB)=l024KB相当於一则短篇小说的文字内容。
Gigabyte(GB)=1024MB相当於贝多芬第五乐章交响曲的乐谱内容。
Terabyte(TB)=1024GB相当於一家大型医院中所有的X光图片资讯量。
Petabyte(PB)=l024TB相当於50%的全美学术研究图书馆藏书资讯内容。
Exabyte (EB)=1024PB;5EB相当於至今全世界人类所讲过的话语。
Zettabyte(ZB)=1024EB如同全世界海滩上的沙子数量总和。
Yottabyte(YB)=1024ZB相当於7000位人类体内的微细胞总和。
虚拟内存机制使计算机可以运行大于物理内存的程序,方法是将正在使用的程序放入内存执行,而暂时不需要执行的程序放到磁盘的某块地方,这块地方称为虚拟内存,在Linux中称为swap,这种机制的核心在于快速地映射内存地址,由cpu中的一个部件负责,称为存储器管理单元(Memory Management Unit MMU)。
cpu和存储器并不是操作系用唯一需要管理的资源,I/O设备也是非常重要的一环。
I/O设备一般包括两个部分:设备控制器和设备本身。
控制器:是查找主板上的一块芯片或一组芯片(硬盘,网卡,声卡等都需要插到一个口上,这个口连的便是控制器),控制器负责控制连接的设备,它从操作系统接收命令,比如读硬盘数据,然后就对硬盘设备发起读请求来读出内容。
控制器的功能:通常情况下对设备的控制是非常复杂和具体的,控制器的任务就是为操作系统屏蔽这些复杂而具体的工作,提供给操作系统一个简单而清晰的接口。
设备本身:有相对简单且标准的接口,这样大家对可以为其编写驱动程序了。想要调用设备,必须跟该接口编写复杂而具体的程序,于是有了控制器提供设备驱动接口给操作系统,必须把设备驱动程序安装到操作系统中。
多总线模式
北桥即PCI桥:连接高速设备(CPU,内存)。
南桥即ISA桥:连接慢速设备。
在计算机的主板上,有一个基本的输入输出程序(Basic Input Output system)。
BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存ROM中。
(1)计算机加电;
(2)BIOS开始运行,检测硬件:cpu、内存、硬盘等;
(3)BIOS读取CMOS存储器中的参数,选择启动设备;
(4)从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位);
(5)根据分区信息读入bootloader启动加载模块,启动操作系统;
(6)然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI。
操作系统是一个协调、管理、控制计算硬件资源与应用软件资源的一个控制程序。
平台=计算机硬件+操作系统
常见的平台有:windows系统+某硬件,Android+某硬件,Linux+某硬件。
跨平台性:
由于平台的多种多样,我们开发应用程序时就需要考虑到应用程序的跨平台性,如果能开发出一款可以在任意平台运行的应用程序,就可以极大的提高开发效率。
1.应用程序/用户
2.操作系统(Windows、mac、Linux)————————文件
3.计算机硬件(cpu、内存、硬盘)——————————硬盘
1.定义:机器语言指的是能被机器直接识别的编程语言,也就是二进制,是最低级的语言,直接与机器交互。
2.优点:程序运行速度最快,效率最高。
3.缺点:
(1)开发效率低,编程指令记忆困难;
(2)编程过于复杂,实现简单功能都需要很多步骤。
1.定义:使用英文标签取代二进制指令的编程语言。
2.优点:
(1)程序运行较快,仅次于机器语言;
(2)解决了及其语言二进制指令难以记忆的问题。
3.缺点:编程较机器语言简便,但仍较为复杂。
1.定义:用人类可以理解的表达方式编写程序,需要经过翻译才能被计算机理解、运行的编程语言。
2.分类:按照翻译方式的不同,可分为
编译型(C、GO):,第一次运行时翻译,以后就不需要翻译);
解释型(python、shell):,一边运行一边翻译)两种。
运行效率:机器语言>汇编语言>高级语言(编译型>解释型)
开发效率:机器语言<汇编语言<高级语言
缺点:编程较机器语言简便,但仍较为复杂。
1.定义:用人类可以理解的表达方式编写程序,需要经过翻译才能被计算机理解、运行的编程语言。
2.分类:按照翻译方式的不同,可分为
编译型(C、GO):,第一次运行时翻译,以后就不需要翻译);
解释型(python、shell):,一边运行一边翻译)两种。
运行效率:机器语言>汇编语言>高级语言(编译型>解释型)
开发效率:机器语言<汇编语言<高级语言