mirror of
https://github.com/CodePanda66/CSPostgraduate-408.git
synced 2023-05-21 21:49:33 +08:00
📝 update OS_3_1
This commit is contained in:
@@ -4,5 +4,3 @@ title: 同步与互斥
|
||||
|
||||
## 1、进程同步的基本概念
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,76 @@
|
||||
---
|
||||
title: 内存管理基础
|
||||
---
|
||||
#
|
||||
## 1、内存管理概述
|
||||
|
||||
### 1.1、内存管理的功能
|
||||
|
||||
+ 内存的分配与回收
|
||||
+ 地址变换(逻辑地址$\leftrightarrow$物理地址)
|
||||
+ 扩充内存
|
||||
+ 存储保护
|
||||
|
||||
### 1.2、应用程序的编译、链接与装入
|
||||
|
||||
#### 1.2.1、程序的链接方式:
|
||||
|
||||
+ 静态链接:直接将各个目标模块以及所需库链接为一个完整的可执行程序
|
||||
+ 装入时链接:装入内存时边装入边链接
|
||||
+ 运行时链接:运行过程中需要特定模块才进行装入链接
|
||||
|
||||
#### 1.2.2、程序的装入方式
|
||||
|
||||
+ 绝对装入:编译阶段就确定好了物理地址
|
||||
|
||||
+ 可重定位装入(静态重定位):
|
||||
|
||||
地址变换在装入时一次完成,实现容易,无需增加硬件地址变化机构 。要求为程序分配连续的存储区,若空间不足就不能分配成功,程序执行期间不能移动,不能扩充内存空间,难以做到程序和数据共享。
|
||||
|
||||
+ 动态运行装入(动态重定位):
|
||||
|
||||
在程序执行过程中每当访问到相应指令或数据时,才进行对应指令或数据的地址转换。其实现需要依靠硬件地址变换机构。可以使用不连续的存储区,装入部分代码就可运行,执行期间可以动态申请内存,便于程序共享。
|
||||
|
||||
### 1.3、逻辑地址和物理地址
|
||||
|
||||
逻辑地址是指由程序产生的与段(与页无关)相关的偏移地址部分
|
||||
|
||||
物理地址是指出现在 CPU 外部地址总线上的寻址物理内存的地址信号,是逻辑地址变换后的最终结果地址。
|
||||
|
||||
在重定位中通常会设置一个重定位寄存器(基址寄存器),用来存放进程分配的内存空间地址,其转化公式为:物理地址=基址寄存器+逻辑地址
|
||||
|
||||
### 1.4、内存保护
|
||||
|
||||
为了防止一个作业有意或者无意地破坏操作系统或其他作业。常用内存保护方法有:
|
||||
|
||||
+ **界限寄存器方法**
|
||||
|
||||
两种实现方式:
|
||||
|
||||
+ **上下界寄存器方法**
|
||||
|
||||
采用上下界寄存器分别存放作业的结束地址和开始地址
|
||||
|
||||
+ **基址和限长寄存器方法**
|
||||
|
||||
采用基址和限长寄存器分别存放作业的起始地址以及作业的地址空间长度
|
||||
|
||||
+ **存储保护键方法**
|
||||
|
||||
给每个存储块分配一个单独的保护键,作用相当于一把“锁”,进入系统的每个作业也被赋予了一个保护键,它相当于一把“钥匙”,作业运行时,会检查两者是否匹配
|
||||
|
||||
## 2、覆盖与交换
|
||||
|
||||
### 2.1、覆盖技术
|
||||
|
||||
把一个大的程序划分为一系列覆盖,每个覆盖是一个相对独立的程序单位。把程序执行时并不要求同时装入内存的覆盖组成一组,称为覆盖段。将这个覆盖段分配到同一个存储区域,这个存储区域被称为覆盖区,它与覆盖段一一对应。覆盖区的大小由与之对应的覆盖段中最大覆盖确定。
|
||||
|
||||
覆盖技术打破了必须将一个进程的全部信息装入主存后才能运行的限制。但当同时执行程序的代码量超过主存时,程序仍然不能运行。
|
||||
|
||||
### 2.2、交换技术
|
||||
|
||||
把暂时不用的某个程序及数据部分从内存移到外存中,以便腾出必要的内存空间;或把指定的程序或数据从外存读到相应的内存中,并将控制权转让给它,让其在系统上运行的一种内存扩充技术。处理器三级调度中的中级调度就是采用了交换技术。
|
||||
|
||||
交换基础打破了一个程序一旦进入主存便一致运行到结束的限制。但运行的进程大小仍然受实际主存的限制。
|
||||
|
||||
## 3、连续分配
|
||||
|
||||
一片荒芜,期待你贡献出你的笔记~ 🥰
|
||||
|
||||
Reference in New Issue
Block a user