第一篇:操作系统概念总结
操作系统:
是管理系统资源,控制程序执行,协调硬件使用的最基本的系统软件,在硬件的基础上提供一个基本的应用程序运行环境。
多道程序multiprogramming:
在计算机内存中存放多个作业,这几个作业通过调度程序轮流占用cpu。
分时系统 time-sharing:
允许多个用户同时以交互方式使用计算机,共享主机资源。
内核 kernel:
操作系统最基本的部分,提供进程和内存管理功能,具有访问硬件和所有内存空间的权限。微内核 microkernel:
提供最小的进程和内存管理及通信功能的内核模块
系统调用 system call:
由操作系统实现的对系统功能调用的应用编程接口。
虚拟机 virtual machine:
通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。中断/陷阱 interrupt:
指系统发生某个事件后,cpu暂停正在执行的某个程序,转去执行处理该事件的程序的过程。
直接内存访问 DMA:
直接内存访问是一种硬件机制,它允许I/O设备和内存之间直接传输它们的I/O数据,而不需要CPU的参与。使用这种机制可以大大提高与设备通信的吞吐量。
C/S模型:
将应用程序分成需要访问文件的前端客户端和包含文件的后台服务器,客户端通过向特定服务器发送请求获得资源。
进程 process:
指正在执行中的程序,是一个活动实体。
高速缓存一致性 caching coherency:
对于多处理器环境,每个CPU不但要维护自己的内部寄存器,还要维护本地高速缓存。由于多个CPU可并发执行,必须确保在一个高速缓存中对A的值所做更新立即反映在所有其他A所在的高速缓存中。
进程控制块 PCB:
进程在操作系统里的表示方法,包括进程状态、进程号等信息。
进程间通信 IPC:
协作进程见通信的一种机制,允许进程不必通过共同地址空间共享来通信和同步。双重模式 dual mode:
指操作系统提供的两种执行模式:用户模式和监控模式。目的是保护操作系统和其他所有程序数据不受错误用户程序的影响。
套接字 socket:
可定义为通信的端点,由IP地址和端口号组成。每个参与通信的进程都拥有一个套接字。线程 thread:
又称轻量级进程,是cpu使用的基本单元,由线程号、程序计数器、寄存器集合和堆栈组成。
用户级线程 user thread:
用户线程在内核之上支持,并在用户层通过线程库来实现。无需内核干预,因此线程易于创建和管理,但有可能会引起拥有该线程的整个进程的阻塞。
内核级线程 kernel thread:
由操作系统直接支持,内核在其空间里创建、管理的线程。
短期调度程序 short-term scheduler:
又称CPU调度程序,从就绪可执行的进程中选择进程,并为其中之一分配CPU。中期调度程序 mid-term scheduler:
中期调度程序采用交换方案,能将进程移出内存,降低多道程序设计的程度。之后进程能被重新调入内存并从中断处开始执行。
长期调度程序 long-term scheduler:
又称作业调度程序,是从大容量存储设备的缓冲池中选择进程将它们装入内存以执行。交换 swap:
当内存剩余空间不够大时,进程可以暂时从内存中交换到硬盘上的特定存储空间,等到需要执行时再调回内存。
上下文切换 context :
将CPU切换到另一个进程需要保存原来进程的状态并装入新进程的保存状态。当发生上下文切换时,内核会将旧进程的关联状态保存在其进程控制块中,然后装入经调度要执行的新进程的已保存的关联状态。
分派程序 dispatch:
分派程序是一个模块,用来将CPU的控制权交给由短期调度程序所选择的进程,其功能包括切换上下文、切换到用户模式、跳转到用户程序的合适位置重新启动用户程序。进程同步 process synchronization:
多进程的一些操作执行的时序上存在一定的制约条件。
竞争条件 race condition:
多个进程并发访问和操作统一数据且执行结果与访问发生的特定顺序相关。
临界区 critical section:
一个代码段,在该代码段里进程会可能改变共享数据。
互斥 mutual exclusion:
如果进程Pi在其临界区内执行,那么其他进程都不能在临界区内执行。
前进要求 progress:
当无进程在临界区执行时,其他申请进入临界区的进程应选择一个进入临界区。有限等待 bounded waiting:
任何在进入区等待进入临界区的进程都应在有限时间内能够进入临界区,即进程不会在进入区饿死。
信号量 semaphore:
内核定义的一种特殊数据结构,其表现值的数据类型为整型,用于解决进程同步的问题。忙等待 busy-waiting:
当一个进程位于其临界区内时,其他试图进入临界区的进程都必须在进入区内连续空循环。饥饿 starvation:
又称饿死或无限期阻塞,进程在信号量内有可能可以前进,但是却无穷等待的情况。管程 monitor:
一个管程定义了一个数据结构以及能为并发进程所调用的一组操作,这组操作能同步进程和改变管程中的数据。
互斥 mutual exclusion:
如果一个进程占有R资源,其他进程申请该资源时申请进程必须等待直到该资源释放为止。
占有等待hold and wait:
一个进程必须占有至少一个资源,并在等待着另外的资源,而被等待资源则被其他进程所占有。
非抢占 non-preemption:
当一个进程拥有R资源时,其他进程不能抢占该进程的R资源。
循环等待circular wait:
一组进程{P0,P1…Pn},P0等待的P1的资源,P1等待P2的资源……Pn等待P0的资源。安全状态 safe state:
如果资源申请分配存在一个安全序列,那么系统处于安全状态。
安全序列 safe queue:
系统能按某个顺序为每个进程分配资源(不超过其最大值)并能避免死锁,那么该顺序为一个安全序列。
地址捆绑 address binding:
由一个地址空间向另一个地址空间的映射。
页表 page table:
页表相当于一个逻辑地址空间与物理地址空间的映射表,包含每一页的物理地址的基地址。内存管理单元 MMU:
它是CPU中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。
内部碎片 internal fragmentation:
当一个进程装入到固定大小的分割块(比如页)时,假如进程小于分割块,则剩余的空间将无法被系统使用,称为内部碎片。
外部碎片 external fragmentation:
因为进程持续地被装入和替换,使得可用的内存空间被分割成许多不连续的区块。这些不连续区块之间产生的零碎的内存剩余空间则称外部碎片。
旁路转换缓冲 TLB:
又称页表缓冲,由于查询存储在内存的页表付出的代价很大,由此产生了TLB。其功能作用类似cache,但里面存放的内容是页表。
虚拟内存 virtual memory:
用户视角认为虚拟内存是一个巨大连续的可用内存,而实际上虚拟内存是利用硬盘的一个存储空间与主存不停地进行交换而实现的。虚拟内存将用户逻辑内存和物理内存分开,用户也不再受内存存储的限制。
页错误 page faults:
当进程试图访问那些尚未调入到内存的页时,这种标记为无效的访问会产生页错误中断。写时拷贝 copy-on-writing:
如果任何一个进程需要对共享页进行写操作,那么就创建一个共享页的拷贝,进程则修改创建出来的拷贝页。
系统颠簸 thrashing:
当一个进程在换页上用的时间要多于执行时间,也即页调度过于频繁,那么这个进程就在颠簸。
文件 file:
记录在外存上相关信息的具有名称的集合,是逻辑外存的最小分配单元,可存储不同类型的数据信息。
文件重定向 file reposition:
又称文件寻址,高速缓存 Cache:
高速缓存是为了解决CPU与主存存取速度不匹配的问题而出现的,是除寄存器外目前速度最快的存储器,在CPU与主存之间充当缓冲区的作用。
引导 bootstrap:
指使用一个很小的程序(引导程序)将某个特定的程序(通常是指操作系统)装入内存中。引导块 boot block:
引导块位于文件卷最开始的第一扇区,为根文件系统所特有,用于将操作系统的启动程序装入内存中。
虚拟文件系统 VFS:
虚拟文件系统(VFS)是一种用于网络环境的分布式文件系统,是允许和操作系统使用不同的文件系统实现的接口,它将文件系统通用操作和具体实现分开。
轮询 polling:
主机在不断循环中不断读取状态寄存器直到忙位被清除。
内存映射I/OMMIO:
它是PCI规范的一部分,I/O设备控制寄存器映射到CPU的地址空间。从处理器的角度看,内存映射I/O后访问系统I/O设备和访问内存一样
第二篇:操作系统总结
什么是OS,OS有哪几个特征?其最基本的特征是什么?
答:操作系统是为了达到方便用户和提高利用率的目的而设计的,控制和管理计算机硬件和软件资源,合理的组织计算机工作流程的程序的集合它具有并发,共享,虚拟,异步性四个基本特征。其中最基本的特征为并发性
2什么是进程及与程序的区别与联系,为什么PCB是进程存在的唯一标志?
进程是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位。
区别:(1)进程是动态的,程序是静态的。(2)进程具有并发性,而程序没有(3)进程是资源分配和处理机调度的独立单位,其并发性受系统制约(4)一个程序多次执行,对应多个进程,不同的进程可以包含同一程序PCB:因为在进程的整个生命期中,系统总是通过PCB对进程进行控制的3处理机三级调度分别完成什么工作?
(1)高级调度:就是作业调度,用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程,分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备执行
(2)低级调度:就是进程调度,它决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作
(3)中级调度:实际上就是存储器管理中的对换功能试说明引起进程调度的时机是什么?
(1)进程完毕(2)时间片用完(3)I/O请求发生某个事件(4)原语:wait操作,阻塞(5)高优先者进入 5什么是临界资源和临界区?
一次仅允许一个进程访问的资源称为临界资源。访问临界资源的代码段称为临街区
6试修改下面生产者---消费问题中,如果将两个wait操作即wait(full)和wati(mutex)互换 位置,或者将signal(mutex)与signal(full)互换位置,结果会如何?
(1)wait(full)和wait(mutex)互换位置后,因为mutex在这儿是全局变量,执行完wait(mutex),则mutex赋值为0,倘若full 也为0,则该生产者进程就会转入进程链表进行等待,而生产者进程会因全局变量mutex为0 而进行等待,使full 始终为0,这样就形成了死锁.(2)而signal(mutex)与signal(full)互换位置后,从逻辑上来说应该是一样的.7什么是死锁?死锁产生的有哪些
死锁是因多个进程因竞争资源而造成的一种僵局(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)环路等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。同步机制应遵循的基本准则是什么?
(1)空闲让进(2)忙则等待(3)有限等待(4)让权等待.程序有几种连接方式
(1)静态链接方式(2)装入时动态链接(3)运行时动态链接
10什么是动态重定位方式及为什么要引入动态重定位方式及如何实现?
程序和数据装入内存时需对目标程序中的地址进行修改。这种把逻辑地址转变为内存的物理地址的过程叫重定位
11什么是分页,什么是分段,在存储管理中两者的区别
(1)分页是将一个进程的逻辑地址空间分成若干大小相等的部分,每一部分称作页面,内存划分成与页面大小相等的物理块,进程的任何一页可放入内存的任何一个物理块中,段是信息的逻辑单位,含有一组意义相对完整的信息,更好的来满足用户的需要。
(2)分段是一组逻辑信息的集合,即一个作业中相对独立的部分。多个段在内存中占有离
散的内存单元,对每个段,在内存占有一连续的内存空间,其内存的分配与回收同可变分区的内存分配与回收办法
分页与分段的主要区别是?
(1)页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率(2)页的大小固定,并且有系统决定,而段的长度不固定决定于用户所编写的程序(3)分页作业的地址空间是一维的,段是二维的。
12动态分区存储管理中内存的回收方式
13.什么是对换,对换的分类及主要用途在进程换出时应遵循什么原则
对换是把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把因具备运行条件的进程或者进程所需要的程序或数据调入内存。
分类:(1)整体对换(进程对换):以整个进程为单位(2)页面对换(分段对换/部分对换):以页和段为单位
规则:内存空间不够用才换出。系统处于阻塞状态,且优先级最低的进程最先换出。若换入:系统处于就绪状态,且优先级最高的进程最先换入,直至无可换入的进程为止。
14.什么是虚拟存储器虚拟存储器具有哪些特性,最基本的特性是什么?虚拟存储器的容量受哪两方面的限制?
虚拟存储器:是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。
特征:(1)离散性(最基本的特征)(2)多次性(3)对换性(4)虚拟性
虚拟存储器的容量主要受指令中表示地址的字长和外存的容量的限制。
15.在没有快表的分页存储管理中取一条指令需访问几次内存及访问内存的目的,及具有快表的分页存储管理系统的地址变换过程。
两次。第一次:访问内存中的页表,从中找到页的物理块号,再将块号与页内偏移量W拼接,形成物理地址。第二次:从第一次所得的物理地址中获得所需数据
地址变换过程:CPU给出有效地址后,地址变换机构将页号与快表中的所有页号进行比较,若有与此相匹配的页号,则表示所访问的页在快表中,从中读出物理块号与页内地址相拼接,得到物理地址;若访问的页不在快表中,则要访问在内存中的页表,从页表中读出物理块号与页内地址相拼接,得到物理地址,同时,还应将此页表项写入快表中,若此时快表已满,则OS必须找到一个老的并且被认为不再需要的页表项将它换出。
16.什么是紧凑技术及为什么要引入
紧凑:把原来多个分散的小分区拼接成一个大分区的方法
引入:提高内存的利用率,让大容量的作业可以装入并且减少零头或碎片
17程序的局部性原理是什么局限性的两个主要表现方面
局部性原理:(1)程序执行时,除少部分转移和过程调用指令外,大多数条件下任是顺序执行的(2)过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但经验就看出过程调用的深度在大多数情况下不会超过5(3)程序中存在许多循环结构,这些虽然只能由少数指令构成但它们将多次执行(4)程序中还包括许多对数据结构的处理
主要表现在:(1)时间局限性(2)空间局限性
18.什么是spooling技术spooling系统有哪些组成Spooling技术是对脱机输入,输出系统的模拟。
组成:(1)输入井和输出井(2)输出缓冲区和输入缓冲区(3)输入进程SPi和输出进程SPo(4)请求打印队列
特点:(1)提高了I/O的速度(2)将独占设备改为共享设备(3)实现了虚拟设备功能
第三篇:操作系统总结
第一部分概述
一、导论
1.操作系统做什么
① 冯诺依曼体系结构
② OS角色:对上:控制程序正确执行,使用方便;对下:资源分配器
③ 核心功能:进程管理,内存管理,文件管理,输入输出,保护和安全
2.计算机系统组织
① 中断
② 存储结构:寄存器→高速缓存→主存→电子磁盘→光盘→磁带
③ I/O结构:I/O的同步、异步;慢速设备(中断)快速设备(DMA)
3.操作系统结构:多道(使CPU总有一个任务执行)、分时(高频率切换任务)
4.进程管理
① 进程有其生命周期,进程是执行中的程序
② 管理活动:创建或删除用户或系统进程;挂起或重启进程;防死锁;提供进程
同步、通信机制
③ 目的:使进程可以运行,相互协调不死锁
5.内存管理
① 目标:内核健壮
② 保护方法:独立操作模式:用户模式,内核模式;计数器定时中断防止死循环
6.存储管理
① 解决问题:速度匹配→缓存(缓存的命中率)
② 等级问题:一致性;多处理器下各缓存的一致性
二、操作系统结构
1.操作系统服务:用户界面,程序执行,I/O操作,文件系统操作,通信,错误检测,资源分配,统计,保护和安全。
2.操作系统的用户界面:命令解释程序,图形用户界面
3.系统调用类型:进程控制,文件管理,设备管理,信息维护,通信
4.系统程序分类:文件管理,状态信息,文件修改,程序设计语言支持,程序装入和
执行,通信,系统工具,应用程序。
5.操作系统结构:
① 简单结构(MS-DOS):小空间多功能,应用程序直接操作硬件,不安全,无模块,接口和功能层次没有区分
② 分层法:难划分,效率低,但是构造和调试简单化
③ 微内核:包括最小的进程和内存管理以及通信,便于扩充操作系统。
④ 模块化:动态加载模块,允许内核提供核心服务,也能动态的实现特定的功能 ⑤ 组合结构
第二部分进程管理
一、进程
1.进程的概念
① 进程通常包括:程序计数器,栈,数据段
② 进程状态:新建,运行,等待,就绪,终止
③ 进程控制块PCB:进程状态,程序计数器,CPU寄存器,CPU调度信息,内存
管理信息,记账信息,I/O状态信息
④
2.进程调度
① 调度队列:作业队列,就绪队列,设备队列P80
② 调度程序:长期调度程序(作业调度程序):从作业池中选择进程,并装入内存
准备执行。短期调度程序(CPU调度程序):从准备执行的进程中选择进程,并为之分配CPU时间。中期调度程序:能将进程从内存中移出。
长短期的区别是执行频率;长期调度控制多道程序设计的程度,中期调度可以降低多道。
③ I/O绑定进程,CPU绑定进程
④ 上下文切换:将CPU切换到另一个进程需要保存当前进程的状态和恢复另一进
程的状态。
3.进程操作
① 进程创程:创建新进程的执行方式(父子进程并发执行;父进程等待直到某个
或全部子进程执行完毕)
新进程地址空间(子进程是父进程的副本;子进程装入另一个新程序)
资源共享(所有/子集/不共享)
② 进程终止
父进程终止子进程的原因(子进程使用了超过它分配的资源;分配给子程序的任务不需要了;父进程结束)
4.进程间通信
① 通信基本模型:共享内存,消息传递
② 共享内存:消费者可能等待生产者;无限缓冲区,有限缓冲区的区别
③ 消息传递:
命名:直接通信(对称寻址:接受者命名发送者;非对称寻址:接受者不需要命名发送者)间接通信(邮箱、端口的参与)
同步:阻塞与非阻塞(发送,接收),同步与异步
缓冲:零容量(无缓冲);有限容量、无限容量(自动缓冲)
5.客户机-服务器通信:套接字SOCKET,RPC远程调用,RMI远程方法调用
二、线程
1.概述:多线程优点:响应度高,资源共享,经济,多处理器体系结构的利用
2.多线程模型:用户层的用户线程或内核层的内核线程,用户线程受内核支持,而无
需内核管理,而内核线程由操作系统直接支持和管理,这两种方法支持多线程。① 多对一模型(效率比较高,阻塞系统调用的后果)
② 一对一模型(更好的并发功能,缺点是创建一个用户线程就需要一个内核进程)③ 多对多模型(用户可以创建任意多的线程;二级模型=多对多+一对一)
3.多线程问题
① 系统调用fork().exex()
② 线程取消异步取消(立即终止),延迟取消(检查是否应该终止)
③ 信号处理:信号必须有一个处理程序
④ 线程池:优点(处理请求速度快,线程数量可控制)
三、CPU调度
1.基本概念
① CPU区间和I/O区间的概念
② 抢占与非抢占调度的概念(发生在:一个进程从运行切换到等待、运行切换到
就绪、等待切换到就绪、以及终止,1,4非抢占,2,3抢占)
2.调度准则:CPU利用率(使CPU尽量忙),吞吐量(测量工作的方法),周转时间(从
进程提交到完成的时间),等待时间,响应时间
3.调度算法
① 先到先服务调度FCFS(非抢占的)
② 最短作业优先调度SJF(抢占,最优算法,难知道下一CPU区间长度,用于长
期调度)
③ 最短剩余时间优先调度SRTF(强占式的SJF,适合长期调度)
④ 优先级调度(问题:无穷阻塞或饥饿,老化来解决;非抢占方式不用占用CPU
切换)
⑤ 轮转调度RR(专为分时系统设计,是可抢占的,时间片过大变为FCFS,时间片
过小等待时间段,但是切换频繁)
⑥ 多级队列调度(前台与后台的调度算法不同,RR与FCFS)?
⑦ 多级反馈队列调度
⑧ 实时调度:硬实时(在特定硬件上保证时间),软实时:尽力而为,优先级不变,没有饥饿现象
4.算法评估
① 确定性模型甘特图
② 排队模型 N=入*W(N平均队列长度,W为队列的平均等待时间,入为新进程
到达队列的平均到达率)
③ 模拟
④ 实现
四、进程同步
1. 背景:竞争条件:共享内存,共享变量
2. 临界区问题
① 临界区解决方案:进入去,临界区,退出区,剩余区
② 效果:互斥,有空让进,有限等待
③ 证明:1.互斥,临界区一个时间只能有一个进程2.前进,临界区内无进程执行,那么只有那些不在剩余区内执行的进程可参加选择,这种选择不能无限延迟3.有限等待,从一个进程做出进入临界区的请求,知道该请求允许为止,其他进程允许进入其临界区的次数有上限。
④ PETERSON算法
3. 信号量:计数信号量,二进制信号量
① 技术信号量用于控制访问:当每个线程需要使用资源时,需要对该信号量执行
acquire()操作,当线程释放资源时,需要对该信号执行release()操作。
② 用信号量解决同步问题
4. 管程:管程结构确保一次只有一个进程能在管程内活动
5. 经典同步问题
① 生产者消费者问题
② 读者写者问题
③ 哲学家吃饭问题
五、死锁
1.死锁特征
① 必要条件:互斥,占有并等待,非抢占,循环等待
② 资源分配图:分配图没有环则没有死锁,有环则有死锁;有环则可能有死锁。
2.死锁预防
① 互斥:通常不能通过否定互斥条件来预防死锁:有的资源本身就是非共享的。② 占有并等待:协议一:每个进程在执行前申请并获得所有资源;协议二,允许
进程在没有资源时才可以申请资源。协议缺点:资源利用率低,可能发生饥饿。③ 非抢占:协议:如果一个进程占有资源并申请另一个不能立即分配的资源,那
么其现在已分配的资源都可被抢占。
④ 循环等待:对所有资源类型进行完全排序,且要求每个进程按递增顺序来申请
资源。
3.死锁避免
① 安全状态:如果系统能按某个顺序为每个进程分配资源并能避免死锁,那么系统
状态就是安全的。
② 单实例:资源分配图:申请边,分配边,需求边
③ 多实例:银行家算法Available(向量),Max(矩阵),Allocation(矩阵),Need(矩
阵),4.死锁检测
① 单实例:等待图:当且仅当等待图中有一个环时,系统存在死锁
② 多实例:类似银行家算法
5.死锁恢复
① 进程终止:终止所有死锁进程;一次只终止一个进程,直到取消死锁循环为止 ② 资源抢占:问题:选择一个牺牲品;回滚;饥饿
第三部分内存管理
一、内存管理
1.背景
① 地址绑定:编译时(编译时就知道进程将在内存中的驻留地址,那么就可以生
成绝对代码),加载时(生成可重定位的代码),运行时(如果进程在执行时可以从一个内存段移到另一个内存段,那么绑定必须延迟到执行时才进行)
② 逻辑地址(CPU所生成的地址)物理地址(内存单元所看到的地址)
③ 动态加载(子程序只在调用时加载,优点不用的子程序绝不会被加载)④ 动态链接与共享库(将连接延迟到运行时)
2.交换(没看)
3.连续内存分配:单分区,多分区
4.非连续内存分配:分页(分页技术不会产生外部碎片)
5.动态存储分配问题:首次适应,最佳适应,最差适应
6.页表结构:层次页表,哈希页表,反向页表
二、虚拟内存
1.背景
① 多道尽可能多的程序,这也是内存管理的目标
② 虚拟内存好处:可以运行比物理内存大的程序;更快的启动和响应(载入更快);
更多的多道;更容易的共享文件盒地址空间;更少的输入输出。
2.按需调页:在需要时才调入页
① 有效位-无效位来来确定页是否在内存
② 有帧就加入,无帧就换页,页错误处理流程:检查内部表确定引用是否合法→
非法则终止,合法则调入→找到空闲帧,装入内存→修改内部表→重启指令 ③ 按需调页的有效访问时间:effective access time=(1-p)*ma+p*处理页错误的时间
3.页面置换(引用串)
① FIFO 先入先出
② 最优算法:向后看,换页的时候看内存中哪个页最晚用;是所有算法中产生页
错误最低的算法;问题:需要引用串的未来知识
③ LRU最近最少使用算法:往前看,内存中哪页在列表序列中离的最远,无Belady
异常
④ 算法实现:计数器(最近最少使用:换计数器值最小的)代价大:系统级,可
能溢出,一定会写全表
页码堆栈:每当引用一个页,该页就从栈中删除并放在栈顶。严格实现,但是代价高。
二次机会:引用位,引用时改为1,;换页时,是1则置零,是0则换
计数算法:LFU最不经常使用,MFU最经常使用(可采用老化)
4.帧分配
① 分配策略限制:所分配的帧不能超过可用帧的数量,大于最小需求
② 每个进程帧的最少数量是由体系结构决定的,而最大数量帧是由可用物理内存
决定的。
③ 当指令完成之前出现页错误,该指令必须重新执行
④ 帧分配方法:
固定分配:平均分配、按比例分配
优先级分配:全局置换(帧数可变),局部置换(固定);全局置换算法的一个问题是进程不能控制其页错误率,但是全局置换通常会有更好的系统吞吐量,且更为常用。
5.系统颠簸
① 颠簸产生的原因:抢帧→I/O上升→CPU使用率降低→多道继续增加→忙于换页 ② 工作集合策略防止了颠簸,并尽可能的提高了多道程序的程度,可以通过页错
误频率PFF来直接测量和控制页错误以防止颠簸。上限之上分配更多,下限之下,减少帧数
6.其他问题
① 预调页关键问题:采用预调页的成本是否小于处理响应页错误的成本。② 页大小问题:最佳页大小的选择,大页,小页
③ 优化程序结构
第四部分存储管理
一、文件系统接口
1.文件概念
① 文件是逻辑外存的最小分配单元,即数据除非在文件中,否则不能写到内存中。② 文件操作:写,读,重定位,删除,截短
③ 文件加锁:共享锁,专用锁;强制,建议文件加锁机制
2.访问方法:顺序访问,直接访问,其他方法(索引)
3.目录结构
① 目录操作:创建文件,删除文件,遍历目录,重命名文件,跟踪文件系统 ② 评价目录结构:命名(不同文件同名),分组(同一文件不同命名)
③ 单层结构目录(命名,分组均无),双层结构目录(可命名不可分组),树状结
构(绝对,相对路径;可命名分组),无环图目录(硬链接,软链接),通用图目录
二、文件系统实现
1.文件系统结构:应用程序→逻辑文件系统→文件组织模块→基本文件系统→I/O控
制→设备
2.目录实现:线性列表(编程简单,运行费时,查找文件需要线性搜索)
哈希表(采取策略避免冲突)
3.分配方法
① 连续分配:每个文件在磁盘上占有一组连续的块;困难时为新文件找到空间,外部碎片问题也可能很大,确定文件分配多大空间,② 链接分配:解决了连续分配的所有问题;必须顺序访问文件,指针需要空间,由于指针分配在整个磁盘,可靠性就成了一个问题。
FAT文件分配表:改善了随机访问时间,但是需要大量磁头寻道时间
③ 索引分配:把所有指针都放在一起,构成索引块;支持直接访问,且没有外部
碎片问题,但是会浪费空间;索引块分多大是个问题
链接方案(一个索引块可以指向另一索引块构成链接)
多层索引(第一个索引块指向第二个索引块,第二个指向文件数据块)
组合方案P404 N级间接块(计算)
4.空闲空间管理:为向量(1空0满)块号码计算:(值为0的数字)*(一个字的位
数)+第一个值为1的位的偏移;链表(所有空闲的块用链表链接起来);组(将N个空闲块的地址存储在第一个空闲块中);计数()
第四篇:操作系统总结
操作系统基本基础概念
多任务是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务。像Windows、LINUX就是支持多任务的操作系统。每个任务使用由操作系统分配的短暂的时间片(Timeslice)轮流使用CPU,由于CPU对每个时间片的处理速度非常快,在用户看来好像这些任务在同时执行,这叫做时间片轮转调度法。还有更多的多任务调度方法。
实时系统
(REAL TIME system)是指系统能及时的响应外部时间的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。分为硬实时任务和软实时任务,系统对任务的截止时间有要求否则会出现难以预测的结果,这就是硬实时任务,反之要求不是很严格则为软实时任务。
操作系统的基本特性
并发与并行:并发性是两个或多个事件在同一时刻发生。而并行性是两个或多个事件在同一时间间隔内发生。
进程:为了使多个程序能并发的执行,系统必须为每个程序建立进程(process)。简单说来~进程是指在操作系统中能独立运行并作为资源分配的基本单位。他是由一组机器指令数据、堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发的执行和交换信息。一个进程在运行时需要一定的资源,如CPU、内存空间、IO设备等。
我的注解:进程很重要。Linux的进程之间的关系可以这样描述:一个完整的main函数运行的时候,在linux里是以进程的形式存在的。系统启动之后运行的第一个进程的进程号是1,叫做init进程,一切进程都从它派生出来,一个父进程可以派生另一个进程,即为子进程,这俩进程为并行关系。子进程也可以创建子进程。
进程的创建在linux里边用fork()函数它有两个返回值,一个是在父进程中返回,返回的是子进程号,一个是在子进程中返回,如果子进程创建成功,则返回的是0。子进程是父进程的一个拷贝,现代的进程创建都用vfork()创建子进程之后,并不拷贝全部的进程空间,只有在用到时才拷贝,叫做写时复制技术(copy on write)。
Linux里边这样创建子进程:
pid_t pid=fork();//这里的pid_t是一种数据类型(如int),这里代表进程号(实质上也是个整形变量int)
If(pid==0){这里边就是子进程代码}
Else if(pid>0){这里边是父进程代码,pid的值是子进程的进程号PID}
线程:通常在一个进程中可以包含若干个线程,他们可以利用进程所拥有的资源。在引入线程的操作系统中,一般都把进程作为分配资源的基本单位。而把线程作为独立运行和独立调度的基本单位。优点:运行效率更高。
进程的状态:一般分为就绪状态。执行状态。阻塞状态。
操作系统产生死锁的原因:1.竞争资源。2.进程间推进顺序非法。比如说:一个进程占有一个资源A,当他运行到需要用到被另一个进程占用的资源B时,没有得到,于是进入等待退出运行,而这个占有资源B的进程还想得到资源A,但是占有A的进程此刻在休眠,也没得到,所以这个进程也进入等待退出运行。这样两两相互等待造成了死锁。解决方法:1.在进程运行开始时就把所有资源占好。2.按顺序加锁。比如要得到资源B首先要对A加锁,如果得不到就不能加锁。所有进程都按照这个方法进行。
第五篇:操作系统重点总结
CPU内部结构
8086分为两个部分:总线接口部件BIU和执行部件EU
BIU主要功能负责CPU与存储器、I/O接口之间的信息传递。
BIU部件包括(1).四个段地址寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器ss、附加段寄存器ES、(2).指令指针寄存器IP、(3).20位地址加法器、(4).6B的指令队列、(5).总线控制逻辑电路。
EU主要功能负责指令的执行。EU部件包括(1).四个通用寄存器:累加器AX、基址寄存器BX、计数器CX、数据寄存器DX。(2).四个专用寄存器:堆栈指针寄存器SP、基址指针寄存器BP、源变址寄存器SI、目的变址寄存器DI。(3).算数逻辑单元ALU。(4).标志寄存器FR。(5).EU控制电路。
CPU寄存器
1.通用寄存器AX,BX,CX,DX,每一个寄存器都是16位的,既可以作为16位,又可以拆成高、低8位,分别作为两个独立8位寄存器使用。AX(AH,AL)累加器 BX(BH,BL)基址寄存器 CX(CH,CL)技术寄存器 DX(DH,DL)数据寄存器 2.专用寄存器SP,BP,SI,DI
SP堆栈指针寄存器:在堆栈中存放栈顶偏移指针,永远指向堆栈的栈顶。BP基址指针寄存器:一般也用来存放访问内存时的基地址。
SI源变址寄存器、DI目的变址寄存器:它们常常用在变址寻址方式中。3.段寄存器CS,DS,SS,ES CS代码段寄存器。DS数据段寄存器。SS堆栈段寄存器。ES附加段寄存器。
每一个段寄存器都是16位。4.指令指针寄存器IP
16位的指令指针寄存器IP 用于存放
下一条执行指令的偏移地址。CPU取指令总以CS为段基址,以IP 位段内偏移地址。当CPU从CS段内偏移地址为(IP)的内存单元中取出指令代码的一个字节后,IP 会自动加1,从而指向代码的下一个字节,用户不能直接访问IP寄存器。5.标志寄存器FR
它是16位寄存器,但只使用其中的9位,这9位包括6个状态标志位和3个控制标志位。状态标志记录了前面算术逻辑运算结果的一些特征;控制标志是用户自己通过指令设置的,设置后将对其后的操作产生控制作用。
指令、伪指令与宏指令
指令语句是可执行语句,在汇编中要产生对应的机器代码,与机器指令有一一对应关系,是CPU指令系统中的指令的符号形式,CPU根据这些代码执行相应的操作。
伪指令语句是不可执行语句,没有机器指令与其对应,在汇编中不产生机器代码,是汇编程序支持的一种命令,在汇编程序对汇编语言源程序汇编期间由汇编程序执行,告诉汇编程序如何汇编源程序,可以完成数据的定义、内存的分配等功能。
宏指令语句是以一条宏指令代表一段程序,经过定义之后,在程序中出现该程序段的地方均可用宏指令代替,简化了程序设计。在汇编时,凡出现宏指令语句的位置都会被换成相应的程序段。
DOS系统功能调用
DOS功能模块位于BIOS的上层,对硬件的以来较小,DOS功能既可用于操作系统管理,又可用于汇编程序的设计。(1).设置所要调用功能的入口参数(2).在AH寄存器中存入搜要调用功能的功能号。
(3).通过INT n(系统功能调用用INT 21H)指令自动转入中断子程序入口。(4).相应中断子程序运行完毕,可按规
定取得出口参数。
CPU与外设间信息调用
微机与外设之间的信息传递实际上是CPU与接口之间的信息传递,它们之间信息传递的主要方式有以下五种:(1).无条件传送方式:又称为同步方式,它所有的操作均由执行程序完成,主要适用于CPU或外围设备始终是准备好了的情况,或者危机和外设是完全同步的情况。
(2).程序查询方式:(3).中断处理方式:(4).DMA控制方式:(5).I/O处理机方式:
8259A工作方式 1.中断触发方式(1).边沿触发方式。(2).电平触发方式。2.连接系统总线方式
该方式用来确定系统总线与8259A数据总线之间是否需要进行缓冲。(1).缓冲方式。(2).非缓冲方式。3.屏蔽中断源的方式
8259A 8个中断请求线上的每一个都可以根据需要决定是否屏蔽,屏蔽是通过编程使屏蔽寄存器IMR相应位置0或置1,从而允许或禁止该位所对应的中断。
(1).普通屏蔽方式。(2).特殊屏蔽方式。4.优先级排队的方式
8259A对中断优先级的管理是中断管理的核心问题。(1).全嵌套方式(2).特殊全嵌套方式(3).优先权自动循环方式(4).优先权特殊自动循环方式 5.中断结束方式(1).自动中断结束方式。(2).普通中断结束方式。(3).特殊中断结束方式。