CSPA-01.计算机系统漫游
2019-02-13 14:42:08 7 举报
AI智能生成
计算机系统漫游
作者其他创作
大纲/内容
操作系统管理硬件
把操作系统看成是应用程序和硬件之间的一层软件
操作系统基本功能
防止硬件被失控的应用程序滥用
向应用程序提供简单一致的机制来控制复杂又通常大不相同的低级硬件设备
进程
操作系统对一个正在运行的程序的一种抽象
并发运行:一个进程的指令,和另一个进程的指令交错执行
上下文切换:操作系统实现这种交错执行的机制
从一个进程到另一个进程的转换,是由操作系统内核管理的
内核是操作系统代码常驻主存的部分
内核不是一个独立的进程,他是系统管理全部进程所用代码和数据结构的集合
线程
一个进程实际上可以由多个称为线程的执行单元组成
每个线程都运行在进程的上下文中,并共享同样的代码和全局数据
多线程比多进程之间更容易实现共享数据
虚拟内存
虚拟内存:为每个进程提供了一个假象,即每个进程都在独占的使用主存
每个进程看到的内存都是一致的,称为虚拟地址空间
虚拟地址空间的区构成
程序代码和数据
对于所有进程来说,代码是从同一固定地址开始
紧接着是和c全局变量对应的数据位置
运行开始时即被指定大小
堆
代码和数据区后紧随着的是运行时堆
在运行时可动态扩展和收缩
共享库
存放像C标准库和数学库这样的共享库的代码和数据的区域
栈
位于用户虚拟地址空间顶部的是用户栈
编译期用它来实现函数调用
可动态扩展和收缩
内核虚拟内存
虚拟地址空间顶部是为内核保留的
基本思想是把一个进程虚拟内存的内容存储到磁盘上,然后用主存作为磁盘的高速缓存
文件
就是文字序列,仅此而已
每个IO设备,包括磁盘,键盘,显示器,甚至网络,都可看成文件
系统之间利用网络通信
从一个单独系统来看,网络可视为一个IO设备
重要主题
系统是硬件和软件相互交织的集合体,它们必须共同协作以达到运行应用程序的最终目的
Amdahl定律
当我们对系统的某个部分加速时,其对系统整体性能的影响取决于该部分的重要性和加速程度
并发(concurrency)
一个通用概念,指一个同时具有多个活动的系统
并行(parallelism)
用并发来使一个系统运行的更快
抽象的使用是计算机科学中最为重要的概念之一
信息就是位+上下文
源程序实际上就是由0和1组成的系统(又称比特)序列
8位组织成一组,称为字节
像hello.c这样只由ascii码构成的文件称为文本文件,所有其他文件称为二进制文件
为什么c语言会成功
与unix系统关系密切
小而简单
为实践目的而设计
程序被其他程序翻译成不同的格式
编译系统
预处理阶段
.c->.i,读取头文件的内容
编译阶段
.i->.s,翻译为汇编语言程序
汇编阶段
.s->.o,翻译成机器语言指令
链接阶段
.o合并,得到可执行文件
了解编译系统如何工作大有益处
优化程序性能
理解链接时出现的错误
避免安全漏洞
缓冲区溢出错误,是造成大多数网络和Internet服务器上安全漏洞的原因
处理器读并解释储存在内存中的指令
要想在Unix系统上运行可执行文件,需将文件名输入到称为shell的应用程序中
系统的硬件组成
总线
贯穿系统的是一组电子通道,称为总线
通常总线被设计为传送定长的字节块,也就是字
大多数机器字长要么是4个字节(32位),要么是8个字节(64位)
I/O设备
系统与外界的连接通道
每个IO设备均通过一个控制器或适配器和IO总线相连,作用均为在总线与设备之间传递信息
主存
临时存储设备
是一组动态随机存取存储器(DRAM)芯片组成的
从逻辑上说,存储器是一个线性的字节数组,每个字节都有其唯一的地址
处理器
中央处理单元(CPU),解释(或执行)存储在主存中指令的引擎
核心是一个大小为一个字的存储设备(或寄存器),称为程序计数器(PC)
在任何时刻,PC都指向主存中的某条机器语言指令(即含有该条指令的地址)
处理器看上去是按照一个非常简单的指令执行模型来操作的,这个模型是有指令集架构决定的
操作围绕以下执行
主存
寄存器文件(register file)
算术/逻辑单元(ALU)
可能执行指令操作
加载
存储
操作
跳转
指令集架构描述的是每条机器代码指令的效果
微体系结构描述的是处理器实际上如何实现
高速缓存至关重要
系统花费大量时间把信息从一个地方挪到另一个地方
意识到高速缓存处理器存在的应用程序员能够利用之将程序性能提升一个数量级
存储设备形成层次结构
程序员可以利用对整个存储设备层次的理解来提高程序性能
0 条评论
下一页