第一篇:操作系统知识点总结
操作系统的各个阶段:
1、人工操作阶段。
2、单道批处理系统评价
a、解决了作业间的自动转接问题,减少了机器时间的浪费。
b、不管作业大小,只要它一旦占用处理机开始执行,则它必须一直占据处理机,直到运行完毕。c、资源利用率低 d、对短作业不公平e、交互性差
3、多批道处理系统 优缺点: 优点:
资源利用率高:CPU和内存利用率较高; 作业吞吐量大:单位时间内完成的工作总量大; 缺点:
用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;
作业平均周转时间长:短作业的周转时间显著增长;
4、分时系统
5、实时系统
操作系统的基本特性
1、并发
并行性(parallel)是指两个或多个事件在同一时间发生。
并发性(Concurrence)是指两个或多个事件在同一时间间隔内发生。
2、共享
共享指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。a、互斥共享方式 b、同时访问方式
3、虚拟
虚拟,是指把一个物理上的实体,变为若干个逻辑上的对应物。
4、异步性
操作系统是计算机系统中的一个系统软件,它管理和控制系统中的软件和硬件资源,合理组织计算机工作流程,有效利用系统资源,为用户提供一个功能强,使用方便的工作环境,从而在计算机和用户之间起到接口的作用。
进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位
程序:指令或语句序列,体现了某种算法
进程控制块
系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程
系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志
进程与PCB是一一对应的 作用:
是一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。进程控制块中的信息:
1、进程标识符 2处理机状态
3、进程调度信息
4、进程控制信息 进程控制块的组织方式:
1、链接方式
2、索引方式进程的创建
1、创建一个PCB
2、为新进程分配资源
3、初始化进程控制块
4、将新进程插入就绪队列 进程撤消
1、根据标识符,找到该PCB
2、修改其状态
3、如有子孙进程,则予以终止
4、收回其资源
5、从所在链表中移出
人们把每个进程中访问临界资源的那段代码称为临界区
高级调度、中级调度、低级调度
高级调度也称为作业调度或长程调度用于将外存作业调入内存,创建PCB,插入就绪队列。一般在批处理系统中使用。分/实时系统一般直接入内存,无此环节。
低级调度也称为进程调度或短程调度处理机需要经常选择就绪进程执行,主要是由分派程序(Dispatcher)分派处理机。由于低级调度算法的频繁使用,要求在实现时做到高效。
中级调度为了提高内存利用率和系统吞吐量。涉及进程在内外存间的交换,将暂时不能运行的进程调出内存,以提高系统处理能力。此时的进程状态称为就绪驻外存状态或挂起状态。当内存有空闲时,由中级调度决定把外存上哪些具备运行条件的就绪进程,重新调入内存,转为就绪状态。三种调度的比较
1、进程调度运行频率最高,一般10-100 ms进行一次,故其算法不能太复杂,以免占用太多CPU时间。
2、作业调度是一批(个)作业运行完,退出系统,需重新调入一批(个)作业进入内存,故周期较长,允许算法较复杂。
3、中级调度介于上述二者之间。
死锁的定义:多个进程在运行过程中因争夺资源而造成的一种僵局
原因:1.竞争系统资源 2.进程的推进顺序不当
产生死锁的必要条件
1、互斥条件(资源独占)
2、请求和保持条件(部分分配,占有申请)
3、不剥夺条件(不可强占)
4、环路等待条件 解决死锁的基本办法
1、预防死锁(简单直观,通过设置某些限制条件来破坏产生死锁的四个必要条件中的几个,来预防发生死锁)
2、避免死锁(在动态分配资源的过程中,用某种方法防止系统进入不安全状态,从而避免发生死锁)
3、检测死锁(通过设置检测机制,及时检测出死锁的发生,确定有关的进程和资源)
4、解除死锁(与检测死锁配套使用,常用的方法是撤销或挂起一些进程,收回资源,分配给处于阻塞状态的进程,使之转为就绪状态,可以继续运行)
检测和解除措施可以较好的利用资源利用率和吞吐量。
系统产生死锁必定同时保持四个必要条件:
(1)进程互斥使用资源(2)请求和保持条件(3)不剥夺条件(4)环路等待条件
预防死锁的方法:破坏产生死锁的四个必要条件之一就可以防止死锁的发生。条件1是由设备的固有条件决定的,不能改变。
1、摈弃“请求和保持”条件资源一次性分配
优点:简单易于实现切很安全
缺点:第一,降低了系统吞吐量和资源利用率。第二,浪费了资源。
2、摈弃“不剥夺”条件
即当一个已经获得了某些资源的进程,在申请新资源未能满足时,必须释放已占有的资源。
评价:这种策略实现起来比较复杂,而且需要付出很大代价。
3、摈弃“环路等待”条件
做法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件)评价:较前几种方法,资源利用率和系统吞吐量都有较明显改善。但也存在一些问题
1.系统中各类资源所分配的序号,必须相对稳定,限制了新类型设备的增加 2.作业使用资源的顺序与系统规定资源顺序不同。
3.增加了程序设计难度。安全状态与不安全状态
安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列,则称系统处于不安全状态。程序的装入
1、绝对装入 适用于单道程序环境。
2、可重定位装入方式(静态重定位)使用于多道程序环境
3、动态运行时装入方式 程序的链接
1、静态链接。在程序运行之前,先将各目标模块及它们所需的库函数,连接成一个完整的装配模块,以后不再拆开。称为静态链接
2、装入时动态链接。将用户源程序编译后得到的一组木匾模块,在装入内存时,采用边装入边链接的连接方式。
3、运行时动态链接。指对某些目标模块的链接,是在程序执行中需要该模块时,才对它进行的链接。连续分配方式
1、单一连续分配
2、固定分区分配
把主存中可分配的用户区域预先划分成若干个固定大小的区域,每一个区域称为一个分区,每个分区中可以装入一个作业,一个作业也只能装入一个分区中。a、分区大小相等缺乏灵活性 b、分区大学不等
3、动态分区分配
分区分配中的数据结构(1)、空闲分区表(2)、空闲分区链 实现空闲分区分配链接:应在每个分区的起始地址部分,设置一些用于控制区分配的信息,以及用于链接各分区的前向指针;在分区尾部则设置一后向指针,通过前,后向指针将所有的分区链接成一个双向链.分区分配算法(1)、首次适应算法FF。(2)、循环首次适应算法。(3)、最佳适应算法。分区分配操作
a、分配内存,利用某种算法,从空闲分区链表中找到所需大小的分区。b、回收内存。
4、可重定位分区分配
5、对换
对换是指把主存中暂时不能运行的进程,或暂时不用的程序和数据,换出到外存上,把已具备运行条件的进程,或进程所需要的程序或数据,换入主存的技术。
对换有两种方式
a、对换是以整个进程为单位,便称之为“整体对换”或“进程对换”,b、如果对换是以“页”或“段”为单位进行,则分别称之为“页面对换”或“分段对换”
系统为实现对换要实现: a、对换空间的管理 b、进程的换出 c、进程的换入
连续分配是内存中不能被程序利用的小
分区成为外碎片
分页是存储管理中进程的最后一页装不满而形成的不可利用的碎片为内碎片。虚拟存储器的基本概念
所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对主存容量进行扩充的一种存储器系统。逻辑容量由内存和外存容量之和决定。运行速度接近与内存,而其成本却又接近于外存。虚拟存储器存储的特点
a、离散性。离散性是指在主存分配时采用离散分配方式,这是虚拟存储器的基础。
b、多次性。多次性是指一个作业被分成多次调入主存运行
c、对换性。对换性是指允许在作业的运行过程中换进、换出
d、虚拟性。虚拟性是指能够从逻辑上扩充主存容量,使用户所看到的主存容量远大于实际主存容量。虚拟存储器的实现方法 a、分页式虚拟存储管理
它是在分页式存储管理系统上增加了请求调页功能、页面置换功能所形成的页式虚拟存储管理系统
b、分段式虚拟存储管理
它是在分段式存储管理系统上增加了请求调段功能、分段置换功能所形成的段式虚拟存储管理系统。页面置换算法
(1)最佳置换算法淘汰或者长时间内不再访问的页面。
(2)先进先出置换算法(FIFO)淘汰最先进入内存的页面
(3)最近最久未使用算法(LRU)根据页面调入内存后的使用情况进行决策,利用最近过去仅是最近将来。(4)最近最不经常使用调度算法(LFU)最近时期使用最少
(5)最近未使用算法NUR(clock算法)设置访问位A 改进型的设置访问位A,M
I/O设备的类型1)按传输速率分类
低速设备,传输速率每秒钟几个字节至数百个字节的一类设备。有键盘、鼠标器、语音的输入和输出等设备。
中速设备,传输速率在每秒钟数千个字节至数万个字节的一类设备。典型有行式打印机、激光打印机等。高速设备,传输速率在数百千个字节至数十兆字节的一类设备。典型的高速设备有磁带机、磁盘机、光盘机等。2)按信息交换的单位分类
第一类是块设备(Block Device),这类设备用于存储信息。信息的存取总是以数据块为单位。它属于有结构设备。典型的块设备是磁盘,每个盘块的大小为512 B-4 KB。
第二类是字符设备(Character Device),用于数据的输入和输出。其基本单位是字符,故称为字符设备。
3)按设备的共享属性分类
这种分类方式可将I/O设备分为如下三类:
(1)独占设备。(2)共享设备。(3)虚拟设备。
设备控制器的基本功能1)接收和识别命令
CPU可以向控制器发送多种不同的命令,控制器应能够接收并识别这些命令 2)数据交换
实现CPU与控制器之间、控制器与设备之间的数据交换,前者通过数据总线,后者通过设置数据寄存器。3)标识和报告设备的状态
控制器中设置有状态寄存器,用其中的每一位来反映设备的某一种状态。4)地址识别
系统中每个设备有一个地址,设备控制器必须能够识别它所控制的每个设备的地址。5)数据缓冲
解决I/O设备和CPU、内存间速度不匹配的问题 6)差错控制
兼管对由I/O设备传送来的数据进行差错检测。若发现错误,向cpu报告,由CPU重新传送。设备控制器组成:
1)、设备控制器与处理机的接口 2)、设备控制器与设备的接口 3)、I/O逻辑I/O控制方式 1.程序I/O
2.中断驱动I/O控制方式优点:CPU 和I/O设备并行操作,CPU效率改善。缺点:中断的引入导致CPU的系统开销增大。
3.直接存储器访问DMA I/O控制方式 优点:避免了CPU对成批数据传输过程的频繁干预,CPU系统开销大大降低。一次可以完成一批数据的传输任务。缺点:
×一次只能完成一台设备的一批数据的传输任务。如果外部设备较多,仍然会增加CPU中断次数,导致CPU系统开销仍然很大。
4.I/O通道控制方式通道类型:
a、字节多路通道 特点:数据传输是以字节为单位进行的;通过循环轮转使用各子通道,达到了多路控制目的;主要用于控制低速、以字节为传输单位的外部设备(如打印机、显示终端等)。
b、数组选择通道 特点:每次控制一台设备连续传输一批数据;当一个设备要求的数据传输都结束后,选择通道才执行下个设备对应的通道程序;传输速度高,主要用于控制高速外设(如磁盘)。c、数组多路通道 特点:
以循环轮转使用多个子通道,每个子通道能在时间片内传送一组数据;通道利用率较高。主要用于高速、中速设备(如磁带机)的控制。缓冲管理
引入缓冲的原因
1.缓和CPU和I/O设备间速度不匹配的矛盾。2.减少对CPU的中断频率3.提高CPU和I/O并行性单缓冲
相对于没有缓冲区,单缓冲能提高用户进程的运行效率。
如果用户进程在对数据进行加工处理时不释放缓冲区,那么用户进程的性能并不能得到改善。
如果外部设备的速度比处理速度慢的多,那么单缓冲不会显著改变进程的性能。双缓冲
当数据从缓冲区复制到用户空间时,输入设备不必等待,可以立即开始向另一缓冲区输入数据,因此系统处理一块数据的时间可表示为:max(C, T)循环缓冲
循环缓冲技术是在主存中分配一组大小相等的存储区作为缓冲区,并将这些缓冲区链接起来,每个缓冲区中有一个指向下一个缓冲的指针,最后一个缓冲区的指针指向第一个缓冲区,这样n个缓冲区就成了一个环形。
三种类型的缓冲区:用于装输入数据的空缓冲区R、已经装满数据的缓冲区G、以及计算进程正在使用的工作缓冲区C 缓冲池:系统提供的公用缓冲,池中设置可供若干个进程共享的缓冲区.缓冲池组成: 3个队列:
空缓冲队列emq;输入队列inq 输出队列outq;四个工作缓冲区:
hin:收容输入数据;sin:提取输入数据
hout:收容输出数据;sout:提取输出数据
缓冲池的管理 基本操作:
从缓冲区队列中按一定规则取出一个缓冲区的过程takebuf(Type)
把缓冲区按一定规则插入缓冲区队列中去的过程addbuf(type,number)设备分配中的数据结构 设备控制表DCT
系统为每一个设备都配置了一张设备控制表,用于记录本设备的情况。系统设备表SDT
整个系统一张表,记录系统中所有I/O设备的信息,表目包括:设备类型、设备标识符、设备控制表、设备驱动程序入口等
控制器控制表COCT
一个控制器一张,包括控制器标识符,控制器状态,与控制器连接的通道表指针,控制器队列的队首指针,控制器队列的队尾指针.通道控制表CHCT
一个通道一张,包括通道标识符,通道状态,与通道连接的控制器表首址,通道队列的队首指针,通道队列的队尾指针.设备分配要考虑的因素:
1、I/O设备的固有属性 a、独享:b、共享:c、虚拟:
2、设备分配的算法1)FIFO2)优先权
设备分配中的安全性 安全分配方式:
每当进程发出一I/O后,即block,直到其I/O完成,运行时不保持任何资源。优点:安全
缺点:进程进展缓慢,CPU和I/O设备之间是串行的不安全分配方式:
进程发出I/O请求后,仍在继续运行,需要时又可发出第二个I/O请求。仅当进程请求的设备已被另一个进程占用时,才被阻塞。
优点:一个进程可同时操作多个设备缺点:分配不安全,需安全性计算 设备独立性
设备无关性,指应用软件所引用的用于实现I/O操作的设备与物理I/O系统中实际安装的设备没有固定的联系.SPOOLing技术
将一台物理I/O设备虚拟为多台逻辑设备,从而允许多个用户共享使用一台物理设备;即利用高速的共享设备(磁盘)实现低速独占设备的共享使用的技术。组成:
1、输出井和输入井:在磁盘上开辟的两个大的存储空间,模拟脱机输入/输出时的磁盘设备,暂存数据。
2、输入缓冲区和输出缓冲区:为了缓和CPU和磁盘之间速度不匹配的矛盾
3、输入进程和输出进程:两个进程来模拟脱机I/O时的外围控制机 SPOOLing技术的特点
(1)提高了I/O速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。
(2)将独占设备改造为共享设备。在输入井或输出井中,分配给进程的是一存
储区和建立一张I/O请求表。
(3)实现了虚拟设备功能。多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备。磁盘访问时间 寻道时间Ts
把磁臂(磁头)从当前位置移动到指定磁道上所经历的时间 旋转延迟时间Tr
指定扇区旋转到磁头下面所需的时间 传输时间Tt
把数据从磁盘读出,或向磁盘写入数据所经历的时间 磁盘调度
先来先服务(FCFS)
优点:公平、简单,每个进程的请求都能依次得到处理
缺点:未对寻道进行优化,平均寻道时间较长
最短寻道时间优先(SSTF)
要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。优点:每次磁头移动距离较近缺点:不能保证平均寻道时间最短 扫描算法(SCAN)(电梯调度算法)最短寻道时间算法虽然能获得较好的寻道时间,但可导致某些进程发生“饥饿”现象
SCAN算法:磁道距离 + 磁头移动方向 优点:较好的寻道性能,且能防止进程饥饿
缺点:严重推迟某些进程的请求 循环扫描(CSCAN)算法 N—Step—SCAN和FSCAN 文件系统
1、文件是指存放在外存上的已命名的一组相关信息的集合。
有结构的文件由若干相关记录组成,无结构文件看成一个字符流。文件的属性包括文件类型、文件长度、文件的物理位置、文件的存取控制、文件的建立时间。
2、记录
记录是一组相关数据项的集合,用于描述数据对象某方面的属性。它是文件中数据处理的基本单位,是组成文件的基本元素。
3、数据项
数据项是指描述一个对象的某种属性的字符集,它是数据处理的最小单位。它可以分为
基本数据项:是用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,即原子数据,又称为数据元素或字段。组合数据项:由若干个基本数据项组成,简称组项。文件类型
(1)按性质和用途分类
系统文件、用户文件、库文件(2)按文件中的数据形式分类源文件、目标文件
(3)按文件的存取控制属性分类只执行文件、只读文件、读写文件(4)按文件的逻辑结构分类有结构文件、无结构文件(5)按文件的物理结构分类顺序文件、链接文件、索引文件(6)按照文件的内容分类
普通文件、目录文件、特殊文件文件系统模型
文件系统是指含有大量文件及其属性说明的,对文件进行操纵和管理的,向用户提供使用接口的软件集合。
模型分为三个层次a、最低层是对象及其属性说明;b、中间层是对对象进行操纵和管理的软件集合;c、最高层是文件系统提供给用户的接口。文件的逻辑结构
1、有结构文件 根据记录长度a、定长记录 b、变长记录根据组织方式:a、顺序文件b、索引文件c、索引顺序文件 顺序文件
1、串结构。按存入时间的先后排列。
2、顺序结构 所有记录按关键字排列。优缺点:批量存取的效率高,查找,增加删除记录比较困难。索引文件
优点:有较快的检索速度,主要用于对信息处理的及时性要求较高的场合。缺点:要配置索引表,增加了存储费用。索引顺序文件 将顺序文件中的所有记录分为若干组,为顺序建立一张索引表,在索引表中为每组中的第一个记录建立
索引项,其中含有该记录的简直和指向该记录的指针。
直接文件和哈希文件
1、直接文件
根据记录键值,直接获取物理地址。
2、哈希文件
通过哈希函数把记录键值转化成记录地址。
外存分配方式(要知道大致原理)
1、连续分配方式
要求为每一igewenj分配一组相邻接的盘块。优缺点: a、优点 顺序访问容易 顺序访问速度快 缺点:
a、要求有连续存储空间,会产生很多外碎片,降低外存空间利用率。b、必须事先知道文件长度。
2、链接分配(消除了外碎片,提高了外存空间利用率)
a、隐式链接每个目录相中,都含有指向链接文件第一个盘块和最后一个盘块的指针。
只适合顺序访问,随机访问效率低。
2、显示链接
用于链接文件各物理块的指针,显示地存放在内存的一章链接表中。FAT占用较大的内存空间。索引分配
1、单级索引分配为每个文件分配一个索引快,再把分配给该文件的所有盘块好记录在索引块中。
支持直接访问,不会产生外碎片。可能要花费较多的外存空间。
2、多级索引分配
3、混合索引分配a、直接地址。b、一次间接地址b、多次间接地址。
第二篇:操作系统知识点总结
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
虚拟机:在裸机的基础上,每增加一层新的操作系统的软件,就变成了功能更为强大的虚拟机或虚机器。
操作系统的目标:1.方便性2.有效性 3.可扩充性4.开放性
操作系统的作用:OS作为用户与计算机硬件系统之间的接口;OS作为计算机系统资源的管理者;OS实现了对计算机资源的抽象(作扩充机器)。
操作系统的特征:并发性;共享性;虚拟性;异步性
推动操作系统发展的主要动力:不断提高计算机资源利用率 ;方便用户;器件的不断更新换代 ;计算机体系结构的不断发展。
人工操作方式的特点:用户独占全机;CPU等待人工操作;独占性;串行性。缺点:计算机的有效机时严重浪费;效率低
脱机I/O方式的主要优点:减少了CPU的空闲时间;提高I/O速度。
单道批处理系统的特征:自动性;顺序性;单道性
多道批处理系统原理:用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
多道批处理系统的优缺点 资源利用率高 ;系统吞吐量大 ;可提高内存和I/O设备利用率;平均周转时间长;无交互能力
多道批处理系统需要解决的问题(1)处理机管理问题(2)内存管理问题(3)I/O设备管理问题4)文件管理问题(5)作业管理问题
分时系统:在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。
时间片:将CPU的时间划分成若干个片段,称为时间片,操作系统以时间片为单位,轮流为每个终端用户服务
实时系统与分时系统特征的比较:多路性;独立性;及时性;交互性;可靠性
操作系统的特征:并发性;共享性;虚拟性;异步性
操作系统的主要功能:处理机管理;存储器管理;设备管理;文件管理;作业管理
对处理机管理,可归结为对进程的管理:进程控制(创建,撤消,状态转换);进程同步(互斥,同步);进程通信;进程调度(作业调度,进程调度)。
存储器管理功能:内存分配(最基本);内存保护;地址映射;内存扩充
设备管理功能:设备分配;设备处理(相当于启动);缓冲管理 ;虚拟设备
文件管理功能:文件存储空间管理;目录管理;文件读写管理;文件保护。
用户接口:命令接口;程序接口;图形接口
传统的操作系统结构:无结构OS;模块化OS结构 ;分层式OS结构
模块化操作系统结构:操作系统是由按其功能划分为若干个具有一定独立性和大小的模块。每个模块具有某个方面的管理功能,规定好模块之间的接口。
微内核的基本功能:进程管理-存储器管理-进程通信管理-I/O设备管理
进程的特征:动态性(最基本);并发性;异步性;独立性;结构特征(程序段,数据段,进程控制块PCB)
进程的基本属性:可拥有资源的独立单位;可独立调度和分配的基本单位。
进程控制块的基本组成:进程标识符;处理机的状态;进程调度所需信息;进程控制信息。进程控制一般是由操作系统的内核中的原语来实现
临界资源:如打印机、磁带机等一段时间内只允许一个进程进行使用的资源。
信号量:整型,记录型,and型,信号量集。实现进程互斥,前趋关系,进程同步。semaphore
进程通信的类型:共享存储器系统;消息传递系统;管道通信
管道通信:用于连接一个读进程和一个写进程以实现他们通信的一个共享文件,又名Pipe文件,本身提供了互斥和同步进程的能力。
next:指向下一个消息缓冲区的指针
线程的属性:轻型实体;独立调度和分派的基本单位;可并发执行;共享进程资源 作业的状态 “进入” 或“提交” “后备”“运行” “完成”
决定作业调度的两个因素:
多道程序度;调度算法
周转时间:完成时间-到达时间
带权周转时间:周转时间/执行时间
先来先服务(FCFS)
短作业(进程)优先SJ(P)F
高响应比优先调度算法HRRN:响应比R =(1+T-到达时间)/服务时间
时间片轮转法RR
准则:面向用户的准则(周转时间短;反应时间快;截止时间的保证;优先权准则);面向系统的准则(系统吞吐量高;处理机利用率好;各类资源的平衡利用)
程序的装入:绝对装入方式;可重定位装入方式;动态运行时装入方式。
程序的链接:
1、静态链接:程序运行前先链接,再装入内存:1)对相对地址的改变2)变换外部调用符号
2、装入时动态链接:装入内存时,边装入边链接。
3、运行时动态链接:某些模块的链接推迟到执行时才执行,用不到的模块可以不调入内存。
产生死锁的原因竞争资源:可剥夺和非剥夺性资源/临时性资源;进程间推进顺序非法。死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用,它们都将无法再向前推进。
处理死锁的基本方法:预防死锁;避免死锁;检测死锁;解除死锁
产生死锁的必要条件互斥条件:资源本身的特性;请求和保持条件:在请求不到新资源的时候进程不释放原来的资源 ;不剥夺条件:进程获得的资源,为使用完前不可被剥夺 ;环路等待条件:进程对资源的请求形成一个请求环形链
预防死锁
1、打破请求和保持条件:要求进程一次性申请到全部资源后再运行,不会产生死锁,但效率降低
2、打破不剥夺条件:要求进程提出新资源要求不被满足后,必须释放原来的保持的资源,损失代价严重;
3、打破环路等待条件:对资源进行线性排序编号,要求每个进程必须从低号到高号申请资源,而不考虑进程实际申请资源的先后顺序。
死锁的解除剥夺资源;撤消进程
拼接或紧凑:通过移动内存中作业的位置,以把原来多个分散的小分区拼接成一个大分区的方法。
虚拟存储器的特征:多次性;对换性;虚拟性
银行家算法:主要用来判断在当前状态下如果有进程提出资源请求request[],看是否能满足该请求:
a: 判断请求的合法性,是否满足小于NEED矩阵中的向量;
b:请求的可满足性判断,是否小于available[]向量;
c:试探分配,修改相应的参数available[]allocationneed;
d:进行安全性检查,若分配后安全,则进行分配,若判断从此进入了不安全状态,则恢复原来数据,对进程请求不予满足。
安全性算法检查:
虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定的。
动态分区分配算法:首次适应算法:按地址递增的顺序;循环首次适应算法:从上次找到的空闲分区的下一个开始;最佳适应算法:按大小递增的顺序;最坏适应算法:按地址递减的顺序
地址为A,页面大小L页号P,页内地址d:
p=int(A/L)
d=AmodL
分段系统的基本原理:分段:将作业的逻辑地址空间分为若干个段,每个段内定义一组逻辑信息。作业的地址空间分为段号(名)+段内地址两部分。
段表:将不同的段分配到内存不连续的存储空间,当然,具体每个段,因为长度可能不同,但是需连续的存储空间,因此,段表内需确定段号、段的长度、段在内存的起始地址。分页与分段区别:(1)页是信息的物理单位,为了提高内存利用率引入的;段是信息的逻辑单位,是考虑用户编程需要分成的段。(2)页的大小固定,段的大小不确定(3)页的逻辑地址是1维的,段的逻辑地址是2维的。
段页式存储管理方式
基本原理:首先用户程序分成若干个段,每个段内再实施分页,为每个段赋予一个段名。在段页式系统中,其地址结构由段号、段内页号及页内地址三部分组成。
页号、物理块号、状态位p、访问字段A、修改位M、外存地址
页表机制:页号和物理块号,状态位P(0表示在外存,没有调入,1表示在内存);访问字段A(一段时间内访问次数或是否被访问过,供页面置换出去时参考);修改位M(一段时间内是否被修改过,置换时需要回写到外存对换区);外存地址(将来调入内存时使用);物理块的分配策略
(1)固定分配局部置换(2)可变分配全局置换(3)可变分配局部置换
物理块分配算法
(1)平均分配算法(2)按比例分配算法(3)考虑优先权的分配算法
最佳置换算法(Optimal)
先进先出置换算法(FIFO)
最近最久未使用(LRU)
Clock置换算法
设备控制器是在CPU和I/O设备之间的接口,一个设备控制器控制几个设备。
设备控制器的功能接收和识别命令;数据交换;标识和报告设备的状态;地址识别;数据缓冲;差错控制
通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。通道程序是由一系列通道指令所构成的。
通道程序每条指令:(1)操作码(2)内存地址(3)计数(4)通道程序结束位(5)记录结束标志。
设备分配中的数据结构
1、设备控制表DCT2、控制器控制表COCT、通道控制表CHCT3、系统设备表
联机命令的类型
系统访问类(login);磁盘操作类format、diskcopy;文件操作类type;目录操作类mkdir;其它命令
spooling 系统组成(1)输入井和输出井
(2)输入缓冲区和输出缓冲区(3)输入进程spi和输出进程spo
SPOOLING 系统的特点
提高了I/O的速度;将独占设备改造为共享设备;实现了虚拟设备功能
设备处理程序通常又称为设备驱动程序。是I/O进程与设备控制器之间的通信程序,以进程的形式存在,故称为设备驱动进程。
连续分配的优缺点:
(1)顺序访问容易(2)顺序访问速度快(3)要求有连续的存储空间(4)必须事先知道文件的长度。
显示链接是把链接文件个物理块的指针显式的存放在内存的一张链接表中,整个磁盘仅设置一张
混合索引分配方式:UNIX系统V的索引结点中:
直接寻址iaddr(0)-iaddr(9);
一次间接寻址iaddr(10);
多次间接寻址iaddr(11)iaddr(12)
对目录管理的要求如下:
(1)实现“按名存取”(2)提高对目录的检索速度(3)文件共享(4)允许文件重名 文件与文件控制块一一对应,人们把文件控制块的有序集合称为文件目录
多级目录结构
(1)提高了检索目录的速度(2)在不同的用户目录中,可以使用相同的文件名
(3)不同用户还可以使用不同的文件名来访问同一个共享文件。
系统调用的类型 位,转换为相应的盘块号
(1)进程控制类 b=n(i-1)+j(n为每行位数)
(2)文件操纵类(3)修改位示图,令
map[i,j]=1(3)进程通信类
盘块的回收:
对对象操纵和管理的软件
1、将回收的盘块号转换为
集合是文件管理系统的核行号和列号
心部分。
Hash函数,可将记录键值
转换为相应记录的地址。
盘块的分配:
(1)顺序扫描位示图,找
出值为0的二进制位进行分
配。(2)将所找到的每一个
第三篇:操作系统总结
什么是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加锁,如果得不到就不能加锁。所有进程都按照这个方法进行。