中国科学技术大学计算机系 陈香兰 xlanchen@ustc.edu.cn 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 xlanchen@ustc.edu.cn 2013Fall.

Slides:



Advertisements
Similar presentations
1 I/O 设备访问方式和类型. 2 Overview n The two main jobs of a computer: l I/O (Input/Output) l processing n The control of devices connneted to the computer is.
Advertisements

§2 计算机系统结构、组成与实现 计算机系统结构、组成与实现的定义和内涵 计算机系统结构、组成和实现的相互关系.
Chapter 3: Operating-System Structures操作系统结构
CHAPTER 9 虛擬記憶體管理 9.2 分頁需求 9.3 寫入時複製 9.4 分頁替換 9.5 欄的配置法則 9.6 輾轉現象
Foundations of Computer Science
创新实验 课程说明 计算机学院 孙彤 计算机学院 张明.
Performance Evaluation
資料庫設計 Database Design.
操作系统结构.
CHAP 2 Computer-System Structures 计算机系统结构
Chapter 2: Computer-System Structures计算机系统结构
最新計算機概論 第3章 計算機組織.
第4章 VHDL设计初步.
第四章 存储体系.
Chapter 9: Memory Management
云实践引导产业升级 沈寓实 博士 教授 MBA 中国云体系产业创新战略联盟秘书长 微软云计算中国区总监 WinHEC 2015
Service survey center, NBS
Leftmost Longest Regular Expression Matching in Reconfigurable Logic
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
Ⅱ、从方框里选择合适的单词填空,使句子完整通顺。 [ size beef special large yet ]
Hardware Chen Ching-Jung
Chapter 5 電腦元件 目標---- 研讀完本章後,你應該可以: 閱讀有關電腦的廣告以及了解它的專業用語(行話)。
第 2 章 中央處理單元.
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
CPU資料處理 醫務管理暨醫療資訊學系 陳以德 副教授: 濟世CS 轉
電腦的種類 超級電腦 (supercomputer) 大型電腦 (Mainframe) 迷你電腦 ( Mini computer)
簡易 Visual Studio 2010 C++ 使用手冊
指令集架構 計算機也跟人類一樣,需要提供一套完整的語言讓人們跟它充分溝通,以完成正確的計算工作。
CHAPTER 8 VIRTUAL MEMORY
5 Computer Organization (計算機組織).
作業系統 第八章 記憶體管理.
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
Flash数据管理 Zhou da
Operating System Internals and Design principles
第4章 网络互联与广域网 4.1 网络互联概述 4.2 网络互联设备 4.3 广域网 4.4 ISDN 4.5 DDN
HLA - Time Management 陳昱豪.
Computer Organization
创建型设计模式.
组合逻辑3 Combinational Logic
預官考試輔導 計算機概論提要 91年12月4日.
第8章 記憶體管理的概念.
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
簡易 Visual Studio 2005 C++ 使用手冊
Operating System Principles 作業系統原理
句子成分的省略(1).
計算機概論 第3章 計算機組織與結構概觀.
高性能计算与天文技术联合实验室 智能与计算学部 天津大学
Introduction to C Programming
第9章 虛擬記憶體 (virtual memory)
Guide to a successful PowerPoint design – simple is best
第四章 存储器管理 4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配方式 4.4 基本分页存储管理方式
第四章 存 储 器 管 理 4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配存储管理方式
计算机组装、维修及 实训教程 第9章 硬盘驱动器 2019年4月11日星期四.
Introduction to Operating Systems 作業系統 (上)
虚 拟 仪 器 virtual instrument
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
计算机系统结构(2012年春) ----存储层次: Cache基本概念
從 ER 到 Logical Schema ──兼談Schema Integration
第10章 存储器接口 罗文坚 中国科大 计算机学院
BiCuts: A fast packet classification algorithm using bit-level cutting
Chapter 10 Mobile IP TCP/IP Protocol Suite
Efficient Query Relaxation for Complex Relationship Search on Graph Data 李舒馨
Create and Use the Authorization Objects in ABAP
TinyDB資料庫 靜宜大學資管系 楊子青.
作業系統概論 授課老師: 羅習五.
第11章 儲存裝置 與其管理.
MATLAB 結構化財務程式之撰寫 MATLAB財務程式實作應用研習 主題五 資管所 陳竑廷
作業系統概論 授課老師: 羅習五.
ppt宝藏提供 中国银行业信息化系统建设研讨会
Presentation transcript:

中国科学技术大学计算机系 陈香兰 xlanchen@ustc.edu.cn 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 xlanchen@ustc.edu.cn 2013Fall

内容提要 存储器的层次结构 程序执行的基础知识、程序的装入和链接 连续分配存储管理方式 分页存储管理方式 分段存储管理 段页式存储管理

存储器的层次结构 存储器是计算机系统的重要组成部分 在现代计算机系统中,存储通常采用层次结构来组织 容量、价格和速度之间的矛盾 内存、外存;易失性和永久性 内存,是稀缺资源 在现代计算机系统中,存储通常采用层次结构来组织 多级存储器结构 主存与寄存器 高速缓存和磁盘缓存

多级存储器结构 Storage systems in a computer system can be organized in a hierarchy Speed, access time Cost per bit Volatility

主存 vs. 寄存器 Same: Access directly for CPU Different: access speed Register name Memory address Different: access speed Register, one cycle of the CPU clock Memory, Many cycles (2 or more) Disadvantage: CPU needs to stall frequently & this is intolerable Remedy Cache

高级缓冲技术caching Caching Using of caching Copying information into faster storage system When accessing, first check in the cache, if In: use it directly Not in: get from upper storage system, and leave a copy in the cache Using of caching Registers provide a high-speed cache for main memory Instruction cache & data cache Main memory can be viewed as a fast cache for secondary storage ……

Magnetic disks 磁盘 Transfer time 传输时间 TT≈ data size * Transfer rate Transfer rate ≈ (n M/s)-1 ≈ ( n Byte/us )-1 ≈ 1/n us/Byte Positioning time 定位时间 Seek time 寻道 Ts Rotational latency 旋转延迟 TR TP ≈ Ts +TR ≈ m ms TT VS. TP Please Store data closely

内容提要 存储器的层次结构 程序执行的基础知识、程序的装入和链接 连续分配存储管理方式 分页存储管理方式 分段存储管理 段页式存储管理

程序执行的基础知识 Von Neumann architecture 冯·诺依曼体系结构(图) Process Program must be brought into memory Main memory is usually too small Process Program must be placed within a process for it to be executed 作业池 User programs Where to place the program several steps(图)

When can the absolute address can be decided? 地址的类型 Absolute address 绝对地址 Address seen by the memory unit Physical address 物理地址 Relative address 相对地址 Linear address 线性地址 Logical address 逻辑地址 Generated by the CPU Virtual address 虚拟地址 When can the absolute address can be decided?

Address binding 地址的绑定 Address binding 地址绑定, the binding of instructions and data to memory, 可以在三种时刻进行 Compile time If memory location known a priori, absolute code can be generated; must recompile code if starting location changes. Load time Must generate relocatable code if memory location is not known at compile time. Execution time Binding delayed until run time if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers)

逻辑地址空间和物理地址空间 Logical address space 逻辑地址空间 The set of all logical addresses generated by a program Physical address space 物理地址空间 The set of all physical addresses corresponding to theses logical addresses Logical = physical compile-time & load-time address-binding logical (virtual) != physical addresses execution-time address-binding MMU (hardware device)

Memory-Management Unit (MMU) Hardware device, 逻辑地址  物理地址 Relocation register 重定位寄存器 Added to every address generated by a user process at the time it is sent to memory E.g. MS-DOS on 80x86 User program deals with logical addresses, it NEVER sees the real physical addresses.

是否需要将进程的所有代码和数据一次性装入? Shall we put the entire program & data of a process in physical memory before the process can be executed? For better memory space utilization Dynamic loading Dynamic linking Overlays Swapping …

程序的装入 绝对装入方式 可重定位装入方式 动态运行时装入方式

绝对装入方式 编译时,产生absolute code,即使用绝对地址的代码 装入时,必须装入到指定的地址 无需对程序和数据的地址进行修改 适用于单道系统

可重定位装入方式 大多数情况下,不能预知装入地址,只能在装入时确定 编译时,产生可重定位代码,即使用相对地址的代码 装入时,必须重定位 通常把在装入时对目标程序中指令和数据的修改过程称为重定位。 由于地址变换是在装入时一次性完成的,以后不再改变,故称为静态重定位 可用于多道系统

动态运行时重定位 有时候,程序会在内存中移动位置 需要能支持在运行过程中动态改变程序在内存中的位置 例如对换 需要能支持在运行过程中动态改变程序在内存中的位置 方法:推迟重定位时机 即从相对地址到绝对地址的转换推迟到程序真正执行时才进行 因此,装入内存中的代码和数据的地址仍然是相对地址 需要重定位寄存器的支持

动态运行时装入方式 根据程序运行的局部性,让程序及其数据在需要时才被装入 Better memory-space utilization; unused routine is never loaded. Useful when large amounts of code are needed to handle infrequently occurring cases Error routine No special support from OS is required implemented through program design Due to the users

Overlays 覆盖技术 Keep in memory only those are needed at any given time. Needed when process is larger than amount of memory allocated to it. Implemented by user, no special support needed from OS, programming design of overlay structure is complex

程序的链接 多个源程序编译多个目标模块;库。 需要链接成可装入模块 根据链接时间的不同 静态链接方式:装入前很早就链接 装入时动态链接:边装入,边链接 运行时动态链接:运行时才链接

静态链接方式 静态链接方式: 在程序运行之前,先将各目标模块以及它们所需要的库函数,链接成一个完整的装配模块,以后不再拆开。 要解决的问题: 各目标模块内:相对地址 存在目标模块之间的调用关系 外部调用符号 要解决的问题: 修改相对地址: 多个相对地址空间一个统一的相对地址空间 变换外部调用符号

装入时动态链接 在装入时,根据外部模块调用事件,使用装入程序去寻找相应的外部目标模块,并装入,在装入时,修改相对地址 优点: 便于修改和更新 便于实现对目标模块的共享

运行时动态链接 程序的每次运行,可能要执行的目标模块集是不同的 全部装入?按需装入? 运行时动态链接将对某些模块的链接推迟到程序执行时才进行 需要操作系统配合 优点:程序运行前的装入速度加快;省空间

作业: 从一个源程序到一个在内存中可执行的程序,一般需要哪几个步骤? 有哪几种地址类型? 有哪几种程序装入方式和链接方式?