复旦大学计算机科学与工程系

上传人:kms****20 文档编号:56887390 上传时间:2018-10-16 格式:PPT 页数:37 大小:195KB
返回 下载 相关 举报
复旦大学计算机科学与工程系_第1页
第1页 / 共37页
复旦大学计算机科学与工程系_第2页
第2页 / 共37页
复旦大学计算机科学与工程系_第3页
第3页 / 共37页
复旦大学计算机科学与工程系_第4页
第4页 / 共37页
复旦大学计算机科学与工程系_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《复旦大学计算机科学与工程系》由会员分享,可在线阅读,更多相关《复旦大学计算机科学与工程系(37页珍藏版)》请在金锄头文库上搜索。

1、软件系统,计算机科学引论,2018年10月16日,Machine Structure,2,软件与硬件,存储程序概念导致计算机系统可以轻易更换程序 软件与硬件分离 硬件(hardware):物理存在 需要付出较大代价才能替换(并不一定贵) CPU, 内存, 硬盘, 键盘 软件(software):数字化存在 可以轻易替换(并不一定便宜) 操作系统, 应用软件 题外话:固件(firmware) 介于软件和硬件之间,可一定程度替换(如BIOS),2018年10月16日,Machine Structure,3,软件与硬件,软件与硬件关系 硬件提供实现基本功能的资源 内存:存储;CPU:运算;键盘:输入

2、 软件使用硬件资源实现用户需要的功能 计算机系统由软件控制各种软件是计算机科学研究的主要内容 软件的设计与实现,实现各种功能的算法,2018年10月16日,Machine Structure,4,软件系统,软件系统的功能 管理计算机的各种资源 计算资源,存储资源,输入/输出资源 把资源抽象为标准形式以便别的程序使用 不同硬件有不同的操作方式,难以使用 操作系统(operating system, OS) 利用资源实现用户需要的功能 应用软件(application),2018年10月16日,Machine Structure,5,操作系统,第一个任务:管理各种资源 CPU:计算;内存:存储 内

3、存的数据从何而来?输入输出设备(IO) 各种设备资源,CPU,内存,输入:input 输出:output,2018年10月16日,Machine Structure,6,操作系统,输入输出设备 最常用的设备类型 存储设备 永久存储所需信息 磁盘,光盘,磁带 信息交换设备 与用户或别的计算机交换信息 键盘,鼠标,显示器,扫描仪,打印机,网卡,2018年10月16日,Machine Structure,7,操作系统,输入输出设备 存储设备(storage) 提供可以在断电后仍然存储数据的存储空间 硬盘(hard disk) 主要的存储设备,系统需要的主要信息的存储点 光驱(CDROM/DVDROM

4、,CDRW/DVDRW,) 机器间交换较大量数据的设备 操作系统如何管理存储设备?,2018年10月16日,Machine Structure,8,操作系统,操作系统对存储设备的管理 文件(file) 一个文件是一块数据 存储在一块存储设备上的存储空间中 文件的内容 文件所包含的数据存储在存储设备上 文件的属性 名字 创建日期,修改日期, 大小 也存储在存储设备上,如何区分?,2018年10月16日,Machine Structure,9,操作系统,操作系统对存储设备的管理 目录(directory) 存储文件的基本信息的特殊文件 操作系统把很多不同的设备或信息都抽象成特殊文件 简化程序接口

5、目录中也可以包含目录 目录本身是特殊文件 目录树(directory tree) 路径(path) 文件在目录树中的位置,所有这些信息在磁盘上如何组织?,2018年10月16日,Machine Structure,10,操作系统,操作系统对存储设备的管理 文件系统(file system,FS) 分配存储空间 管理目录和文件 其它功能 常用文件系统 FAT, NTFS, ext2fs ISO9660, UDF,2018年10月16日,Machine Structure,11,操作系统,信息交换设备 在计算机和用户或别的计算机间交换数据 输入(input) 把用户或别的计算机的数据输入到计算机用

6、于处理 键盘(keyboard),鼠标(mouse),扫描仪(scanner) 输出(output) 把计算机处理好的数据输出给用户或别的计算机 打印机(printer),图形显示设备(graphics) 某些设备既输入也输出 网卡(network card, network interface card, NIC),2018年10月16日,Machine Structure,12,操作系统,信息交换设备 操作系统如何与设备交换信息? 如何表示IO行为 如何表示某个键按下? 如何表示鼠标移动 如何表示要显示一个红色的点如何匹配CPU和IO设备的速度 CPU很快,IO常常很慢 人每秒只能键入几个

7、字母,2018年10月16日,Machine Structure,13,操作系统,如何表示IO行为 计算机能处理的都是数 IO行为要编码成数各种编码、接口 键盘接口,USB,PCI,Ethernet,,2018年10月16日,Machine Structure,14,操作系统,如何匹配CPU和IO设备的速度,设备 行为 有人参与 速率(KBPS) 键盘 输入 是 0.01 鼠标 输入 是 0.02 声音输出 输出 是 5.00 软盘 存储 否 50.00 打印机 输出 是 100.00 硬盘 存储 否 10,000.00 局域网 输入/输出 否 10,000.00 图形显示 输出 是 30,0

8、00.00,2018年10月16日,Machine Structure,15,操作系统,CPU速度比IO快 1GHz CPU处理数据速率:1GBPS16GBPS CPU必须“等”设备就绪之后再传送数据 否则输出数据将丢失,输入数据是错误的 CPU必须等待设备就绪轮询(polling) 操作系统按一定时间间隔查询设备状态,如就绪则传递数据,否则不传递数据,2018年10月16日,Machine Structure,16,操作系统,轮询问题 浪费CPU运算能力 设备未就绪仍需要查询 对设备有限制 必须缓冲数据足够长时间 两次轮询的间隔 对快速设备支持不好 缓冲区要很大 响应缓慢,2018年10月1

9、6日,Machine Structure,17,操作系统,快速设备例 1GBit网络(较高配置的台式机) 最小数据包100字节(以太网最小包46字节) 1GBit/s81001250000 package/s 为防止数据丢失每秒查询12500002次 假设每次查询需400CPU周期 125000024001000,000,000 假设1GHz CPU 1000,000,000/1000,000,000=100% 如果最小包50字节?,2018年10月16日,Machine Structure,18,操作系统,中断 当设备的数据准备好,或可以接收CPU数据时,向CPU发送一个特殊的信号 CPU保

10、存当前的所有状态,转到特定的函数上执行,处理设备的操作 当处理完设备,CPU恢复刚才保存的状态,继续执行用户程序,2018年10月16日,Machine Structure,19,操作系统,中断效率例 1GBit网络 平均每个包1024字节(以太网最大包约1500B) 1GBit81024122070 假设每次中断需800周期 122070 80097,656,000 假设1GHz CPU 97,656,000 /1000,000,000=9.8% 如果平均包大小50字节? 你需要改进你的协议,或者更快的CPU,2018年10月16日,Machine Structure,20,操作系统,操作系

11、统如何管理“内部”资源? CPU:计算 内存:存储,CPU,内存,2018年10月16日,Machine Structure,21,操作系统,管理计算资源(CPU):调度(schedule) 批处理(batch) 执行完一个程序再执行另一个程序 早期的计算机使用的技术 问题 响应周期长:必须等待整个程序运行完 资源利用率低:整个计算机被一个程序占用 例:等待IO的时候,CPU只能空转,2018年10月16日,Machine Structure,22,操作系统,调度 分时(time sharing) 把多个程序都调入内存 把时间分成很短的小片(一般10ms) 就绪(ready)的程序一次可以运行

12、一个时间片 未就绪的程序?等待直到就绪 运行完一个时间片后如仍未完成,必须停下来,把CPU交给另外的就绪程序运行 如果没有别的就绪程序?当然继续执行 所有在内存中的程序都好像“一直”在执行 进程(process),2018年10月16日,Machine Structure,23,操作系统,调度 分时调度的好处 同时执行多个程序 提高了计算机资源利用率 提高了计算机的程序产出 不能减少单个程序的延迟 现代操作系统 分时调度为主,辅以批处理 某些任务需要单独占用某个设备 打印:spooling,2018年10月16日,Machine Structure,24,操作系统,分时调度的问题 多个进程同时

13、在内存中 如何分配内存给各个进程 保证进程有足够的内存 保证进程间不互相影响 平坦地址空间(flat address space) 每个进程有一个大的,从0开始编址的地址空间 不同进程的同一个地址是不同的内存单元虚拟内存(virtual memory),2018年10月16日,Machine Structure,25,操作系统,虚拟内存(virtual memory) 进程运行于独立的虚地址(virtual address)空间 硬件将虚地址转换为物理地址(physical address) 操作系统管理物理内存分配,进程1虚地址 空间,虚地址,硬件 映射,物理地址,物理 内存,虚地址,进程2

14、虚地址 空间,2018年10月16日,Machine Structure,26,操作系统,虚拟内存 物理内存空间比总的虚拟内存空间小 每个进程有4GB的虚拟内存空间 10个进程:40GB! 现象一:大多数进程只占用少数地址空间 不映射未占用的地址到物理内存分页(paging),2018年10月16日,Machine Structure,27,操作系统,0,物理内存,虚拟内存,Stack,64 MB,0,映射要使用的页到物理内存,分成等大小单元 页(4KB), ,2018年10月16日,Machine Structure,28,操作系统,物理内存仍然不够 例:每个进程10MB,100个进程要1G

15、B。如何在512MB的计算机上运行? 现象二:大多数进程同时使用很少一点内存 工作集(working set):程序在一段时间内使用的内存的总量把暂时不用的页放到别的地方(硬盘),2018年10月16日,Machine Structure,29,操作系统,0,物理内存,虚拟内存,Stack,64 MB,0,2018年10月16日,Machine Structure,30,操作系统,虚拟内存 实现平坦地址空间 每个进程都有足够的地址空间 不必竞争地址空间 进程间的地址空间相互独立 不互相干扰,避免信息泄露 把物理内存当作硬盘空间的缓存 扩展可用内存容量,2018年10月16日,Machine S

16、tructure,31,操作系统,所有计算机资源已经被操作系统管理 应用软件如何使用? 应用软件才是实现具体功能的软件 要提供给应用软件使用各类资源的接口API:Application Programming Interface,2018年10月16日,Machine Structure,32,操作系统,API 管理某类资源的编程接口 硬盘空间 fopen/fread/fwrite/fclose CPU system/exec/spawn/exit 内存 malloc/free/alloc POSIX 常用操作系统调用的标准,硬件,OS,应用软件,2018年10月16日,Machine Structure,33,操作系统,平台(platform) 应用软件可以运行的环境 包括硬件和操作系统 二者任意一个不同都是不同的平台,硬件,OS,应用软件,2018年10月16日,Machine Structure,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号