2018/11/11
内存管理常用区间和区间中的数据
- 静态区(static):存放(初始化的)全局变量、静态变量和(未初始化的)全局变量和静态变量
- 栈区(stack):存放局部变量和函数的形参。栈中的内存空间由编译器自动申请和释放
- 堆获得的控件比栈更加灵活,但是容易产生内存碎片
- 堆区(heap): 存放动态分配内存函数申请的变量。堆中的内存空间需要程序员手动释放,否则会引发内存泄露
文件分类
- 文件按照逻辑结构分为:流式与记录式
- 文件按照存储结构分为:连续、链接、散列
- 文件按照所属类型分为:系统文件、用户文件
- 连续文件(顺序文件)
- 定义:将一个文件中逻辑上连续的信息存放到存储介质的依次相邻的块上便形成顺序结构,这类文件叫连续文件,又称顺序文件
- 优点:简单;支持顺序存取和随机存取(直接存取);顺序存取速度快;所需的磁盘寻道次数和寻道时间最少
- 缺点:建立文件前需要能预先确定文件长度,以便分配存储空间;修改、插入和增生文件记录有困难;对直接存储器作连续分配,会造成少量空闲块的浪费。
- 链接文件
- 定义:一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一个物理块。
- 优点:提高了磁盘空间利用率,不存在外部碎片问题。有利于文件插入和删除。有利于文件动态扩充。
- 缺点:存取速度慢,不适于随机存取。可靠性问题,如指针出错。更多的寻道次数和寻道时间。链接指针占用一定的空间。
- 索引文件
- 定义:一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个专用数据结构----索引表,表中每一栏目指出文件信息所在的逻辑块号和与之对应的物理块号。索引表的物理地址则由文件说明信息项给出。
索引项的组织:
稠密索引:每个逻辑纪录设置一个索引项。 稀疏索引:一组逻辑纪录设置一个索引项。 - 优点:保持了链接结构的优点,又解决了其缺点:即能顺序存取,又能随机存取。满足了文件动态增长、插入删除的要求。也能充分利用外存空间。
- 缺点:较多的寻道次数和寻道时间。索引表本身带来了系统开销 如:内外存空间,存取时间。
- 定义:一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个专用数据结构----索引表,表中每一栏目指出文件信息所在的逻辑块号和与之对应的物理块号。索引表的物理地址则由文件说明信息项给出。
进程间的基本关系
- 相互独立与互相制约
题目
某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为210B,页表项大小为2B,逻辑地址结构为:
页目录号 页号 页内偏移量
逻辑地址空间大小为2^16页,则表示整个逻辑地址空间的页目录表中包含表项的个数至少是()。
- 页大小为210B,页表项大小为2B,故一页可以存放29个页表项,逻辑地址空间大小为216页,即共需216个页表项,则需要216/29=27=128个页面保存页表项,即页目录表中包含表项的个数至少是128。
inode
- inode是保存文件元信息的区域
- 文件的字节数
- 文件拥有者的User ID
- 文件的Group ID
- 文件的读、写、执行权限
- 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
- 链接数,即有多少文件名指向这个inode
- 文件数据block的位置
- 通过inode实现文件的逻辑结构和物理结构的转换
- 一般情况下,文件名和inode号码是"一一对应"关系。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。这种情况就被称为"硬链接"(hard link)
分段存储管理中,地址转换公式
- 物理地址 = 界限寄存器值 + 逻辑地址
UNIX操作系统是著名的
- 分时系统
处理器调度分为三级
- 分别是高级调度、中级调度和低级调度。
- 高级调度
- 又称为作业调度、宏观调度或者长程调度
- 主要任务是按照一定的原则从外存上处于后备状态的作业中选择一个或者多个,给它们分配内存、输入输出设备等必要的资源,并建立相应的进程,以使作业具有获得竞争处理器的权利。
- 中级调度
- 又称为中程调度或者交换调度
- 主要任务是按照给定的原则和策略,将处于外存对换区中的具备运行条件的进程调入内存,或者将处于内存中的暂时不能运行的进程交换到外存对换区中
- 低级调度
- 又称为进程调度、微观调度或者短程调度。
在执行信号量的V操作时
- 当信号量的值小于等于0,应释放一个等待该信号量的进程
- pv操作是一对原子操作
- p操作的作用是申请资源,即先将资源数减1,然后判断资源数是否小于0,若小于0,则自我阻塞在当前资源链表中。
- v操作的作用是归还资源,将先所申请的资源数加一,然后判断资源数是否小于等于0,若小于等于0说明有进程阻塞在当前资源上,唤醒一个当前资源链表中的进程
I/O请求
- 一次I/0请求对应一个I/O请求包
- 每次I/0请求都对应一个I/O请求包
- 每次I/0操作都会有对应I/O请求包
- 类比:银行办理业务之前需要先填单,这个每一个人在办理业务的时候都需要填一张单,不同人填不同的单,这个单不能被多个人使用,或者是重复使用
存储分配方法可能使系统抖动
- 页式 段式 段页式
Unix系统中进程组成
- 进程控制块、正文段和数据段
- 进程控制块分成proc结构和user结构两部分
- proc存放的是系统经常要查询和修改的信息,需要快速访问,因此常将其装入内存