从高层到低层分别是
windows的体系结构层次中
始终运行在核心态的是 内核
隐藏了与硬件相关的细节、为操作系统的硬件平台提供低级接口的是 硬件抽象层。
界地址寄存器:用于存储保护。
缓冲技术 、DMA 、通道技术:用于解决 I/O 设备与CPU速度不匹配的问题。
系统使用 基地址寄存器 和 限长寄存器 来实现存储保护。
按照用户界面的使用环境和功能特征的不同,把操作系统分为三种基本类型:
把 I/O 设备看成是 特殊文件。
I/O软件结构可以分为四层
中断处理程序
设备驱动程序
设备独立的操作系统软件
用户级软件
I/O设备划分为字符设备和块设备。
按设备的使用性质可分为:输入设备、输出设备、交互式设备、存储设备。
按设备使用可共享性可分为:独占设备、共享设备、虚拟设备。
内存空间的最小分配单位是 块。
主存储器的编制单位是 字节。
I/O设备可以划分为 字符设备 和 块设备。
创建线程无需另外分配资源,而创建进程需要分配资源。
因为创建线程无需分配资源,因此创建线程速度比创建进程速度块。
线程间的通信在同一地址空间中进行,不需要额外的通信机制,所以通信简单,信息传递速度也更快。
线程能独立运行,充分利用和发挥处理器与外围设备并行工作的能力。
存储管理的主要任务包括 内存的分配与回收、内存扩充、存储共享和存储保护。
重定位:程序和数据装入内存时,需对目标程序中的地址进行修改。这种把逻辑地址转变为内存物理地址的过程称作重定位。
动态地址重定位 是指在程序装入时不进行地址转换,而是直接将程序装入到分配的内存区域中。程序运行过程中,再将指令中的逻辑地址转换为物理地址。
静态重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位。
存储器的最小编址单位是字节。
紧缩技术
操作系统采用三种算法查找和分配空闲区。
在磁盘读写请求来到时,应采用调度策略降低访问者的总访问事件。
磁盘驱动调度由 移臂调度 和 旋转调度 两部分组成。
磁盘空间管理策略中,能够迅速找到大量空闲盘块地址的是成组链接法。
磁盘属于辅助存储器。
在分时系统中,用户的进程比内存容纳的数量更多,系统将那些不再运行的进程或某一部分调出内存,暂时放在外存上的一个后背存储区,通常称为交换区,当需要运行这些进程时,再将它们装入内存。
覆盖技术:把程序划分为若干个功能上相对独立的程序段,按照其自身的逻辑结构使那些不会同时运行的程序段共享同一块内存区域。
程序段先保存在磁盘上,当有关程序的前一部分执行结束后,把后续程序段调入内存,覆盖前面的程序段。
磁带的利用率为:逻辑记录 / ( 逻辑记录 + 块间隙 )
管态又称为特权态,系统态或核心态。
目态又称为常态或用户态。
通常操作系统在管态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或无意的破坏操作系统,
从目态转换为管态的唯一途径是中断;从管态到目态可以通过修改程序状态字来实现,这将伴随着由操作系统程序到用户程序的转换。
I/O 指令是特权指令
处理器具备的功能包括
硬件中断装置和软件中断处理程序
典型的中断有:I/O中断、时钟中断、硬件故障中断、程序性中断、系统服务请求(或自愿性中断)。
程序性中断是指程序指令出错、指令越权或者指令越界而引发的系统保护。
程序性中断可以由操作系统和程序自己完成。
如系统调试中断、算法错误等。
系统调用的目的是:请求系统服务
系统调用,就是用户在程序中调用操作系统提供的一些子功能。是一种特殊的调用。
操作系统屏蔽了用户对操作系统的具体动作,而只提供了有关的功能。 编程人员可以通过系统调用去请求和释放系统资源。也可以调用对计算机硬件部分的相关工作。
为了从操作系统中获得服务,用户程序必须使用系统调用,系统调用陷入内核并调用操作系统。

原语是操作系统核心的一个组成部分,由若干条指令组成,用来实现某个特定的操作功能,执行时具有不可中断性。
申请空白的PCB,为新进程分配资源(内存);初始化进程控制块;将进程插入就绪队列。
进程和程序的本质区别为进程是动态的,程序是静态的。
等待状态 (等待某个事件的发生)<- 运行状态(被调度选中) <-> (时间片用完) 就绪状态 <- 等待i状态(某个事件已发生)
二状态进程模型
注 五状态进程模型:
七状态进程模型
就绪态:进程被加载到主存里,在运行队列(就绪队列)中,随时准备被执行
阻塞态:进程被加载到主存里,在等待队列(阻塞队列里)中,等待着其他必备事件的发生。
就绪/挂起态:进程在外存(辅存)里面,在挂起队列中,等待着其他必备事件的发生。
阻塞/挂起态:进程在外存(辅存)里面,在挂起队列中,随时准备加载到主存里执行
进程间的大量信息通信通常有 共享内存、消息机制 和 共享文件进行通信(或管道通信)。
高级通信原语:共享内存、消息机制以及通过共享文件进行通信。
进程调度:即处理器调度,是根据一定的调度算法,系统从就绪队列中选择一个进程,把处理器分配给它。
吞吐量:系统每小时完成的进程数量。
周转时间:指从一个批处理进程提交时刻开始直到该进程完成时刻为止的统计平均时间。
处理器的寄存器:用于记录处理器的运行模式信息的是 程序状态字。
指令寄存器:包含最近取出的指令。
程序计数器:记录将要取出的指令的地址。
地址寄存器:用于存储数据及指令的物理地址、线性地址或有效地址,用于某种特定方式的寻址。
数据寄存器:主要用于存放操作数。
设备控制器是一种电子部件
每个设备控制器都有若干个寄存器用来与处理器进行通信,包括控制寄存器、数据寄存器和状态寄存器。
数据寄存器又称缓冲寄存器,是计算机控制单元中的寄存器,寄存了将要写入计算机主存储器(例如:RAM)的数据,或由计算机主存储器读取后的数据。它就像缓冲器,持有从内存复制的数据,以准备给处理器使用。
主存储器的编址单位是字节。
线程的两种实现方式
在线程的两种实现方式中
引入线程的操作系统中,线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位。
把文件控制块FCB送到内存,即打开文件。
文件保密的方式:
1)隐藏文件目录
2)设置口令
3)使用密码
操作系统给每个文件都设置了一个描述性数据结构,即文件控制块(FCB),它是文件存在的标志。把所有的文件的描述性数据结构组织起来就构成了目录。
文件系统经常采用两种方法保护文件
按文件的用途进行分类,可以把文件分成系统文件、库文件和用户文件。
虚拟存储技术的基本思想和目的
思想:
多道程序设计的优势之一是(缩短作业 执行时间)
Nc表示cache完成存取总次数,Nm表示主存完成存取总次数,h表示 cache 命中率
h = Nc / ( Nc + Nm )
tc表示命中时的cache访问时间,tm表示未命中时的贮存访问时间,ta表示 cache/主存系统的平均访问时间
ta = h×tc + (1-h)×tm
r表示主存慢于cache的倍率,r = tm/tc;e表示访问效率。
e = tc / ta = tc / [ h×tc + (1-h)×tm ] = 1 / [ h + (1-h)×r ] = 1 / [ r + (1-r)×h ]
每个索引文件都有一个索引表,索引表的条目包含文件的
每次只允许一个进程进入临界区。
保证进程互斥地进入自己的临界区,便可实现诸进程对临界资源的互斥访问。
对临界区的调度使用原则,忙则等待。
所谓临界区是指访问临界资源的程序段。
管程中的 共享变量 在管程外部是看不见的,外部只能通过调用管程中所说明的 外部过程 来间接的对其进行访问。
管程由四部分组成
分别为管程名称
共享数据的说明
对数据进行操作的一组过程
共享数据的赋初值语句。
管程能保障共享资源的互斥执行,即一个管程中活动的进程数最大为 1 个。
使用进程同步和互斥-信号量P、V操作时,大量数据交换时,PV操作效率太低,会使用消息通道或管道的方式完成信息交换。
P(S)、V(S)
P占用资源
V释放资源
产生死锁的主要原因有两个
死锁的四个必要条件:
银行家算法,是1965年提出的一种避免死锁的资源分配算法,即基本思想是一个进程提出请求资源后,系统先进行资源的试分配。
死锁检测的实质是通过检测是否存在 循环等待 条件,以此来确定死锁的存在与否,并识别出与死锁有关的进程和资源。
页:将一个进程逻辑地址空间分成若干个大小相等的片;
页框(页帧):将物理内存空间分成与页大小相同的若干个存储块;
页表:系统为进程建立的数据结构,实现从页号到页框的映射。
在没有快表的情况下,页式存储管理系统按照给定的虚拟地址进行读写时,不许访问内存的次数是两次
页式存储提供编程使用的虚拟地址由两部分组成,即虚拟页号和页内地址。
例如:系统结构长度为16位,其中高6位用于页号,低10位用于页内地址,则该系统的页大小位 2^10 次 = 1024 ,虚拟地址2058的位置的页内地址是 (10)
Spolling系统是由
输入程序模块、输出程序模块、作业调度程序
提高了处理器的利用率
是用于将 IO 设备进行虚拟化的技术,主要解决的是速度不匹配的问题。
作业执行时,从磁盘上的输入井中读取数据,并把作业的执行结果暂时存放在磁盘上的输出井中。
SPOOLing提高了设备利用率,缩短了用户程序执行时间,但不提高处理器利用率。
斯普林技术
应用程序独立于具体使用的物理设备
好处:提高设备管理软件的设计效率,当 I/O 设备更新时,不需要重新编写全部的软件。
首先访问 i 结点的盘块
访问一次一重间接地址盘块
访问一次二重间接地址盘块
。。。
访问一次某地址的盘块
字节偏移量 / 磁盘块大小 = 位于的磁盘块数 #如果等于615.234,则是在615个盘块中。
每个直接地址占一个盘块
每个簇中可以存放的盘块号(一般为256) = 盘块大小 (2048)/ 每个地址项占的字节(8字节)
分别为位示图、空闲块表、空闲块链表以及以此基础上的改进方案:空闲块成组链接法。
FIFO缺页算法和LRU缺页算法
FIFO缺页算法:
LRU缺页算法:
缺页率 = (总的 - 访问成功的次数 ) / 总的
缺页次数 = 总数 - 访问成功的次数
FCFS(先到先运行)
SJF(最短先运行)