4.1 层次结构与装入链接
1 存储器的层次结构存储器的层次结构 寄存器 寄存器访问速度最快,完全能与 CPU 协调工作。寄存器用于加速存储器的访问速度,如用寄存器存放操作数,或用作地址寄存器加快地址转换速度等。 高速缓存 Cache是介于CPU和主存储器间的高速小容量存储器,由静态存储芯片SRAM组成,容量较小但比主存DRAM技术更加昂贵而快速,接近于CPU的速度 CPU往往需要重复读取同样的数据库,Cache的引入与缓存容量的增大,可以大幅提升CPU内部读取数据的命中率,从而提高系统性能 分级:由于CPU芯片面积和成本,Cache很小。根据成本控制,划分L1,L2,L3三级。 L1 Cache:分为数据缓存和指令缓存;内置;成本最高,对CPU的性能影响最大;通常在32KB-256KB之间 L2 Cache:分内置和外置两种,后者性能低一些;通常在512KB-8MB之间 L3 Cache:多为外置,在游戏和服务器领域有效;但对很多应用来说,总线改善比设置L3更加有利于提升系统性能 主存储器 主存储器(简称内存或主存)是计算机系统中一个主要部件,用于保存进程运行时的程序和数据,也称可执行存储器。数据...
4.3 分页存储管理
4.2 分页存储管理方式 参考文献 https://www.cnblogs.com/fkissx/p/4712959.html 1 页面与页表页面和物理块 将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,为各页加以编号。 把内存空间分成与页面相同大小的若干个存储块,称为 (物理)块或页框(frame) ,也同样为它们加以编号。在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。 由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”。 页面若太小,一方面虽然可使内存碎片减小,从而减少了内存碎片的总空间,有利于提高内存利用率,但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存;此外,还会降低页面换进换出的效率。然而,如果选择的页面较大,虽然可以减少页表的长度,提高页面换进换出的速度,但却又会使页内碎片增大。 地址结构 前一部分为页号 P,后一部分为位移量 W(或称为页内地址)。 页表 系统又为每个进程建立了一张页面映像表,简称页表。在进程地址空间内的所有页(0~n),依次在页表中...
4.2 连续存储管理
4.2 连续分配方式存储管理 存储管理方式。内存的分配方式. 概念 每个进程占用一个物理上完全连续的存储空间(区域) 1 单一连续分配 只能用于单用户、单任务的操作系统中。 把内存分为系统区和用户区两部分.系统区仅提供给 OS 使用,通常是放在内存的低址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用。 通常采用静态重定位的方式装入程序。 2 固定分区分配 这是将内存用户空间划分为若干个固定大小的区域,在每个分区中只装入一道作业,这样,把用户空间划分为几个分区,便允许有几道作业并发运行。 3 动态分区分配 分区分配中所用的数据结构、分区分配算法和分区的分配与回收操作这样三个问题。 数据结构: 空闲分区表。在系统中设置一张空闲分区表,用于记录每个空闲分区的情况。每个空闲分区占一个表目,表目中包括分区序号、分区始址及分区的大小等数据项。 空闲分区链。为了实现对空闲分区的分配和链接,在每个分区的起始部分,设置一些用于控制分区分配的信息,以及用于链接各分区所用的前向指针;在分区尾部则设置一后向指针,通过前、后向链接指针,可将所有的空闲分区链接成一个双向链, 分区分配...
4.4 分段存储管理
4.4 分段存储管理方式1 分段存储管理引入 虚拟内存采用的是分页技术,也就是将地址空间划分成固定大小的页,每一页再与内存进行映射。 下图为一个编译器在编译过程中建立的多个表,有 4 个表是动态增长的,如果使用分页系统的一维地址空间,动态增长的特点会导致覆盖问题的出现。 分段的做法是把每个表分成段,一个段构成一个独立的地址空间。每个段的长度可以不同,并且可以动态增长。 概念 每个程序可由若干段组成,每一段都可以从“0”开始编址,段内的地址是连续的 分段存储器的逻辑地址由两部分组成,段号、单元号 基本思想 段式存储管理基于可变分区存储管理实现,一个进程要占用多个分区 硬件需要增加一组用户可见的段地址寄存器(代码段、数据段、堆栈段、附加段),供地址转换使用 存储管理需要增加设置一个段表,每个段占用一个段表项,包括:段始址、段限长,以及存储保护、可移动、可扩充等标志位 2 分段管理基本原理分段地址结构 地址结构 段表 每个分段分配一个连续的分区,而进程中的各个段可以离散地移入内存中不同的分区中。为使程序能正常运行,亦即,能从物理内存中找出每个逻辑段所对应的位置,应像分页系...
4.5 虚拟存储器
4.5 虚拟存储器的基本概念1 虚拟存储器引入 虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。当程序引用到不在物理内存中的页时,由硬件执行必要的映射,将缺失的部分装入物理内存并重新执行失败的指令。 从上面的描述中可以看出,虚拟内存允许程序不用将地址空间中的每一页都映射到物理内存,也就是说一个程序不需要全部调入内存就可以运行,这使得有限的内存运行大程序成为可能。例如有一台计算机可以产生 16 位地址,那么一个程序的地址空间范围是 0~64K。该计算机只有 32KB 的物理内存,虚拟内存技术允许该计算机运行一个 64K 大小的程序。 概念 没有必要全部装入内存,仅须将那些当前要运行的少数页面或段先装入内存便可运行,其余部分暂留在盘上。 程序在运行时,如果它所要访问的页(段)已调入内存,便可继续执行下去; 但如果程序所要访问的页(段)尚未调...
5.1 Linux IO模型
五种IO模型 参考文献 Linux五种IO模型 linux实现IO过程的方法有很多。这里只对五种模型进行介绍。如果要实现五种IO过程,在linux系统编程部分进行学习。 0 I/O 模型背景介绍同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同。所以,为了更好的回答这个问题,我先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO,也包括其他设备的IO过程。本文最重要的参考文献是Richard Stevens的“UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking ”,6.2节“I/O...
7 操作系统接口
操作系统接口 目录 联机用户接口 shell命令语言 系统调用 图形用户界面 3 系统调用定义 如果一个进程在用户态需要使用内核态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。 操作系统实现的完成某种特定功能的过程 为所有运行程序提供访问操作系统的接口 系统调用实现 编写系统调用处理程序 设计一张系统调用入口地址表,每个入口地址指向一个系统调用的处理程序,并包含系统调用自带参数的个数 陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场 Linux 的系统调用主要有以下这些: Task Commands 进程控制 fork(); exit(); wait(); 进程通信 pipe(); shmget(); mmap(); 文件操作 open(); read(); write(); 设备操作 ioctl(); read(); write(); 信息维护 getpid(); alarm(); sleep(); 安全 chmod(); umask(); chown();
附录6 中断
中断1 中断定义广义和狭义 广义:程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。 操作系统是“中断驱动”的,中断是激活操作系统的唯一方式。 狭义:处理器之外的中断事件,与当前运行指令无关的中断事件。I/O中断、时钟中断、外部信号中断。 2 中断分类外中断 由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。 内中断 异常中断。由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。 陷入中断。在用户程序中使用系统调用。 3 中断事件中断来源 由处理器、内存储器、总线等硬件故障引起 由处理器执行机器指令引起。 除数为0,操作数溢出等算术异常:简单处理,报告用户;由用户编写中断续元程序处理 非法程序、用户态使用特权指令、地址越界、非法存取等指令异常:终止程序 终止进程指令:终止进程 虚拟地址异常:调整内存后...
附录7 模式切换与进程切换
进程切换与模式切换1 模式切换模式切换的概念 进程执行过程中,由于内中断(包括系统调用和异常)引发的时间处理程序,从用户模式切换到内核模式。不需要进程的切换。 内核模式处理完成后,返回用户模式下中断处,继续执行任务。 模式切换的类别 进程切换必须在操作系统内核模式下完成,这就需要模式切换 用户模式到内核模式:由中断/异常/系统调用,中断用户进程执行而触发 内核模式到用户模式:OS执行中断返回指令将控制权交还用户进程而触发 模式切换的处理流程: (中断/异常触发)正向模式切换压入PSW/PC 保存被中断进程的现场信息 处理中断/异常 恢复被中断进程的现场信息 (中断返回指令触发)逆向模式转换弹出PSW/PC 模式切换的基本工作任务 中断装置完成正向模式切换,包括: 处理器模式转为内核模式 保存当前进程的PC/PSW值到核心栈 转向中断/异常/系统调用处理程序 中断返回指令完成逆向模式转换,包括: 从待运行进程核心栈中弹出PSW/PC值 处理器模式转为用户模式 2 ...
0 概述
计算机操作系统 概述 计算机操作系统的组成 1 操作系统引论 操作系统的目标和作用 操作系统的发展过程 操作系统的基本特性 操作系统的主要功能 OS结构设计 2 进程管理 进程的基本概念 进程控制 进程同步 进程通信 线程 管程 3 处理机管理(处理机的调度与死锁) 处理机调度的层次 调度队列模型和调度准则 调度算法 实时调度 产生死锁 预防死锁 死锁的检测与解除 4 存储器管理 存储器的层次结构 程序的装载和链接 连续分配方式 分页存储管理方式 分段存储管理方式 虚拟存储器的基本概念 请求分页存储管理的方式 页面置换算法 请求分段存储管理的方式 5 设备管理 IO系统 IO控制方式 缓冲管理 IO软件 设备分配 磁盘存储器管理 6 文件管理 文件和文件系统 文件的逻辑结构 外存分配方式 目录管理 文件存储空间管理 文件共享与文件保护 数据一致性控制 7 操作系统接口 联机用户接口 shell命令语言 系统调用 图形用户界面














