标签:路径 磁盘 round raid als struct mon res pass
空间局部性(spatial locality)和时间局部性(temporal locality)的区别
三种I/O技术:
可编程I/O(Programmed I/O)
处理器执行I/O指令后,还要定期检查I/O模块的状态,以确定I/O操作是否已经完成。
中断驱动I/O(Interrupt-Driven I/O)
CPU给I/O模块发送I/O命令,然后继续做一些其他的工作,当I/O模块准备好与CPU交换数据时,它将打断CPU的执行并请求服务。
直接存储器访问(DMA)
DMA模块控制内存和I/O模块之间的数据交换。为传送一块数据,处理器给DMA模块发送请求,等到整个数据块传送结束后,DMA模块才发送中断信号给CPU。
中断产生的背景(?
大多数I/O设备比CPU慢得多,引入中断机制以提高CPU利用率。
中断处理流程
课本图1.10
中断的现场保存和恢复
现场保存:将程序状态字(PSW)、PC、一些寄存器的值 压入控制栈
instruction cycle:CPU取出一条指令并执行这条指令所用的时间。
interrupt:中断是一种允许其他模块(如I/O、存储器)中断CPU正常处理过程的机制。
hit ratio:对较快存储器的访问次数与对所有存储器的访问次数的比值。
memory hierarchy:为了以较低的价格获得更高的性能,现代计算机系统采用多类型存储器的组合,称为存储器的层次结构。分为:板上存储器、板外存储体、离线存储体。
cache:高速缓存
locality:
? 空间局部性:访问趋向于在地址空间中聚集
? 时间局部性:最近访问的数据在不远的将来会被再次访问
操作系统设计的三个目标
操作系统提供的功能/服务
批处理系统/分时系统产生的背景
批处理
分时
多道批处理系统已经极大地提高了计算机系统的效率,但是用户交互性并不好。所以出现了分时技术(Time-Sharing),多个用户可以同时分享处理器时间,以达到减少用户响应时间的目的。
PCB和执行上下文(execution context)or 进程状态(process state)的关系
上下文属于PCB的一部分。PCB是进程映像的一部分。
一个进程的执行上下文(execution context)是如何被OS使用的
系统调用(system call)的目的是什么?系统调用是如何与OS,以及双执行模式(dual-mode:kernel-mode & user-mode)相联系的?
操作系统(Operating System):是控制应用程序执行的程序,它充当用户和计算机之间的接口,并对计算机资源进行管理。
内核(kernel):OS常驻内存的部分,包含了操作系统中最常用的功能。
多道(multiprogramming):当一个程序(作业)被中断需要等待某些事件发生时,CPU可以切换到另一个可以立即运行的程序(作业),这种处理称为多道multiprogramming。
分时系统(time-sharing system):分时系统允许多个用户通过终端同时访问系统,共享CPU时间,操作系统以时间片为单位,轮流为每个终端用户服务,提供了较好的交互性。
批处理系统(Batch Processing System):批处理是指计算机操作员将作业组织成批,提交给操作系统,由操作系统控制它们自动运行。这种采用批处理技术的操作系统称为批处理操作系统。批处理操作系统分为单道批处理系统和多道批处理系统。批处理操作系统不具有交互性,它是为了提高CPU的利用率而提出的一种操作系统。
什么是进程?为什么要引入进程的概念?
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
在操作系统中引入进程,是为了实现多个程序的并发执行。传统的程序不能与其他程序并发执行,只有在为之创建进程后,才能与其他程序(进程)并发执行。
有中断为什么还需要引入进程?
系统程序员在开发早期的多道程序和多用户交互系统时使用的主要工具是中断。
为了能够协调各种不同活动而进行的系统软件设计是相当困难的。
容易产生四类错误:
PCB的构成
process switching
vs mode switching
进程切换,是作用于进程之间的一种操作。OS将一个正在运行的进程中断,指定另一个进程为运行态,并把控制权交给这个进程。当分派程序(dispatcher)回收当前进程的CPU并准备把它分派给某个就绪进程时,该操作将被引用。
模式切换,是进程内部所引用的一种操作。当进程映像所包含的程序引用系统调用时,该操作将被引用。
进程切换一定引起模式切换(进程切换时会执行中断例程,中断例程要在系统模式下运行;调度程序也要在系统模式下运行),反之则不一定。
进程切换发生的时机
进程切换的流程
进程创建的流程
为什么需要双模式?(user-mode & kernel-mode)
双模式可以保护操作系统和重要的操作系统数据表(如PCB)不受用户进程的干涉。在内核模式下,软件具有对及所有指令、寄存器和内存的控制能力,这一级的控制不是用户程序所必需的,并且为了安全起见也不是用户程序可访问的。
阻塞的原因
关于 五状态图 or 七状态图 中的退出态
此状态下,OS只释放了进程的指令和数据,它的PCB仍留在内存中。
进程(process):一个正在执行中的程序。
进程控制块(Process Control Block, PCB):OS用来 控制 和 管理 进程所用的数据结构。
CPU的执行模式:用户模式、系统模式(内核模式)。
进程的状态:一个进程的生命周期可以划分为一组状态,这些状态刻画了整个进程。
轨迹(trace):可以通过列出为某进程而执行的指令序列来描述单个进程的行为,这样的序列被称为进程的轨迹。可以通过给出各个进程的轨迹是如何交替的来描述处理器的行为。
分派器(dispatcher):
轮循(round-robin):依次给队列中的每个进程一定的执行时间,然后进程返回队列。阻塞情况除外。
交换(swap):将内存中暂时不能运行的进程(或暂时不用的数据和程序)转移到外存,以腾出足够的内存空间,把已具备运行条件的进程(或进程所需要的数据和程序)转移到内存。
程序状态字(PSW):
处理器状态寄存器(processor status register, psr):
传统进程的概念中包含两个特点:
进程和线程
单线程方法(single-threaded approach):每个进程中只有一个线程在执行的传统方法(还没有明确线程的概念)。
为什么要引入线程?(引入的原因)
有了线程以后,凡是程序涉及到多线任务时,都使用多线程来实现,使用多线程来实现时,线程间的切换和数据通信的开销非常低,正因为开销非常低,因此线程还有另一个名称,叫“轻量级的进程”。
从性能上看,线程的重要优点有:
进程的部分活动会影响该进程中的所有线程
线程的实现方法(?
用户级线程(ULT)、内核级线程(KLT)。
KLT又称为轻量级进程。
用户级线程(ULT)与内核级线程(KLT)的优缺点
并行处理器(parallel processor)体系结构图
为什么线程间的模式切换比进程间的模式切换开销少?
线程包含的状态信息比进程少。
为什么一个用户级线程(ULT)进行系统调用被阻塞时,进程中所有线程都会被阻塞?
因为对用户级线程来说,有关线程管理的工作都由应用程序完成,线程对操作系统是不可见的,此时操作系统的调度是以进程为单位的。所以当一个线程被阻塞,这个进程内的所有线程都会被阻塞。
微内核的优点
进程(process):一个正在运行的程序。
线程(thread):是操作系统进行调度的最小单位。它包含在进程之中,是进程中的实际运作单位。
轻量级进程(lightweight process)
内核级线程(kernel-level thread, KLT)
用户级线程(user-level thread, ULT)
多线程(multithreading)
任务(task)
对称多处理(Symmetric MultiProcessing,SMP):是指在一个计算机上汇集了多个CPU,各CPU之间共享存储器以及总线结构。它是相对非对称多处理技术而言的、应用十分广泛的并行技术。
微内核(microkernel):仅提供一些操作系统最基本的功能,大部分的服务由用户空间的程序提供。通常包括:内存管理、进程间通信、I/O和中断管理。
宏内核(monolithic kernel):在一个操作系统程序中提供了所有必须的功能,即所有操作系统功能都运行在内核空间内。
并发带来的问题:
并发(concurrency)需要解决的四个问题
信号量的类型
计数信号量(一般信号量)
二元信号量(互斥量):值只能为0或1
强信号量
弱信号量
? 不论是二元信号量还是一般信号量,都需要一个队列来保存当前正在等待的进程,那么就产生一个问题:进程按照什么顺序从队列中移除?
? 最公平的策略是先进先出:被阻塞时间最久的先从队列中移除。采用这一种策略的称为强信号量,而没有规定进程从队列中移除顺序的信号量称为弱信号量。强信号量保证不会饥饿,而弱信号量则无法保证。
实现互斥的三类方法
硬件实现互斥的方法描述
并行(parallel):在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。
并发(concurrency):在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。
交替(interleave):
覆盖技术/重叠(overlap):
互斥(mutual exclusion):当一个进程在临界区访问临界资源时,其他进程不能进入临界区。
同步(synchronize):它主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系。为进程之间的直接制约关系。在多道环境下,这种进程间在执行次序上的协调是必不可少的。
临界区(critical section):是一段代码,在这段代码中,进程将访问临界资源。
临界资源:一次仅允许一个进程使用的资源。
竞争条件(race condition):指多个线程或进程在读写一个共享数据时,结果依赖于它们的执行顺序的情形。
原子操作(atomic operation):原子操作是指不会被中断的操作;这种操作一旦开始,就一直运行到结束。
信号量(semaphore):是在多线程环境下使用的一种数据结构,是可以用来保证两个或多个关键代码段不被并发调用。
多道程序设计技术(multiprogramming):管理单处理器(uniprocessor)系统的多个进程。
多处理技术(multiprocessing):管理多处理器系统中的多个进程。
分布式处理技术(distributed processing):管理多台分布式计算机系统中多个进程的执行。
死锁的必要条件
死锁的充分条件
死锁:一组竞争系统资源或相互通信的进程间相互的永久阻塞。
死锁预防
死锁避免(包括 进程启动拒绝 和 资源分配拒绝 )
允许三个必要条件的发生,但通过明智地选择,确保永远不会到达死锁点。
优点:不需要死锁预防中的抢占和重新运行进程,并且比死锁预防的限制少。
缺点:必须事先声明每个进程请求的最大资源;
? 进程之间必须无同步要求;
? 分配的资源数目必须是固定的;
? 占有资源时,进程不能退出。
死锁检测和死锁恢复
死锁检测:
死锁恢复:
退出所有的死锁进程;
把每个死锁进程回滚到某个检查点,再重启所有进程(原来的死锁可能再次发生);
连续退出死锁进程直到不再存在死锁;
连续抢占资源直到不再存在死锁。
对于(3)和(4),选择进程的原则可采用下面的一种:
Least amount of processor time consumed so far (耗费处理器时间最少)
Least number of lines of output produced so far (输出的行数最少)
Most estimated time remaining (预计剩下时间最长)
Least total resources allocated so far (分配的资源最少)
Lowest priority (最低优先级)
死锁(deadlock):两个或两个以上的进程,因每个进程都在等待其他进程做完某些事情而不能继续执行的情形。
活锁(livelock):两个或两个以上的进程,为响应其他进程中的变化而继续改变自己的状态,但不做有用的工作的情形。
饥饿(Starvation):一个可运行的进程尽管能继续执行,但被调度器无期限地忽视,而不被调度执行的情况。
内存管理需要满足的需求:
分页与固定分区的区别
分段与动态分区的区别
动态分区是进程间的分配,分段内存管理是进程内的分配,两者的分配方式十分相似。
动态分区是进程间的,一个进程的所有代码作为一块存储;分段式内存管理将一个进程的代码按逻辑分为多个段,多个段被在内存中不同的位置。
内存管理技术
重定位(relocation):将逻辑地址转换为物理地址的过程。
地址类型:
覆盖(overlaying):不同的模块被指派到内存的同一块区域,主程序负责在需要时换入或换出模块。
覆盖的一个实例:
内部碎片(internal fragmentation):由于被装入的数据块小于分页大小,从而导致页内部有空间浪费的现象。
外部碎片(external fragmentation):指内存中还没有分配出去,但是由于大小太小而无法分配给申请空间的新进程的空闲块。
伙伴系统(buddy system):固定分区和动态分区的一种折中方案。
压缩(compaction):操作系统不时地移动进程,使得进程占用的空间连续,所有的空闲空间连成一片。
简单分页和虚存分页的区别
什么是系统抖动(thrashing)
从内存中刚刚换出(Swap Out)某一块后,又因请求马上又换入(Swap In)该块,这种反复换出换入的现象。(马上需要的进程块被换出)
系统抖动导致CPU大部分时间用于交换块,而不是执行指令,大大降低系统效率。
典型的内存管理结构
页表结构:
段表结构:
段页式:
虚拟内存的支持(Support needed for virtual memory)
用于虚拟内存的操作系统策略(Operating System Policies for Virtual Memory)
采用分级页表的优缺点
纯粹的分段系统越来越少,OS面临的大多数内存管理问题都是关于分页方面的。
驻留集 (resident set) 管理
常驻集(resident set):进程执行中的任何时候都在主存中的部分。
系统抖动(thrashing):从内存中刚刚换出(Swap Out)某一块后(换出到Disk),根据请求马上又换入(Swap In)该块,这种反复换出换入的现象。
页表项(page table entry, PTE):页表中的行
页错误(page fault):当CPU执行进程的某个页面时,发现这个虚拟空间中的页没有映射到内存中,而导致的中断(页错误)。
注意:简单分页并不会发生 page fault,因为简单分页会将进程所有页都载入内存中。
Translation Lookaside Buffer, TLB:
反向页表( inverted page table):虚拟地址的页号通过一个哈希函数映射到表项中。反向页表的大小只与实际内存大小相关。
页缓冲(page buffering):为提高性能,被替换出的页不是被丢弃,而是分配到空闲页表或修改页表。(被替换出的页仍留在主存中)
读取策略(fetch policy):确定一页何时取入。
放置策略(placement policy):确定一个进程块驻留在内存的什么地方
替换策略(replacement policy):
清除策略(cleaning policy):用于确定在何时将一个被修改过的页写回辅存。
装入控制(load control):确定驻留在主存中的进程数目。
进程的地址空间(系统空间和用户空间):
处理器调度的目标
调度与进程状态转换
调度的层次
在一个进程状态转换的过程中涉及的队列(假设一个新进程直接到达就绪态,上两图中给出了就绪态和就绪/挂起态两种选择)
短程调度什么时候进行?
当可能导致当前进程阻塞,或可能抢占剥夺当前正在运行的进程的事件发生时,调用短程调度器(也称为分派器)。这类事件包括:
短程调度准则(Short-Term Scheduling Criteria)
进程调度策略
先来先服务(First-Come-First-Served,FCFS)
轮转(Round-Robin)、虚拟轮转法(VRR,对I/O密集型进程友好)
最短进程优先(Shortest Process Next,SPN)
最短剩余时间(Shortest Remaining Time,SRT)
最高响应比优先(Highest Response Ratio Next,HRRN)
反馈(Feedback)
长程调度(long-term scheduling):决定进程是否加入待执行的进程池中。
中程调度(medium-term scheduling):交换(swap)功能的一部分,决定是否将进程换入/换出内存。
短程调度(short-term scheduling):决定处理器下一次执行哪个就绪进程。
抢占(preemptive):当前运行的进程可能被操作系统中断,并转移到就绪态。
执行I/O的三种技术
操作系统设计I/O机制时的目标
磁盘读写时有哪些因素影响延迟
寻道时间(seek time)、旋转延迟(rotational delay)、存取时间(access time)、传输时间(transfer time)
引入I/O Buffer的原因
I/O Buffer的实现方式
磁盘调度策略
面向块的设备(block-oriented device):信息保存在块中,一次传送一块。
面向流的设备(stream-oriented device):以字节流的方式输入/输出数据
独立磁盘冗余阵列(RAID):
寻道时间(seek time)
旋转延迟(rotational delay)
存取时间(access time):寻道时间 + 旋转延迟
传输时间(transfer time):向/从磁盘传送数据所需的时间。
文件(File):是一组相似记录的集合,可通过名字访问。
文件系统(File System / File Management System):操作系统的重要组成部分,提供存储数据(组织为文件)的手段,并提供一系列对文件进行操作的功能接口。
文件分配表(File Allocation Table,FAT):用来记录文件所在位置的一种数据结构。
磁盘分配表(Disk Allocation Table,DAT):记录磁盘中已用和空闲块的数据结构。
相对路径(Relative Path):指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。
绝对路径(GetFullPath):目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。
操作系统(Operating Systems: Internals and Design Principles)
标签:路径 磁盘 round raid als struct mon res pass
原文地址:https://www.cnblogs.com/skyey7/p/14957035.html