
操作系统
文章平均质量分 50
DrCrypto
这个作者很懒,什么都没留下…
展开
-
高响应比优先算法
这个算法很好玩,综合了短作业优先,先来先服务,以及长作业也能得到服务的特性,因此,是一种综合的调度算法。计算公式: 优先权 = (等待时间 + 要求服务时间) / 要求服务时间又因为等待时间 + 要求服务时间 = 响应时间优先权 = 响应时间 / 要求服务时间故而称之为,高响应比优先算法。那么,这个计算公式,怎么就能体现上面三个综合特性呢?首先,短作业优先。 短作业优先是因为,要求服务原创 2016-08-30 20:54:20 · 31779 阅读 · 0 评论 -
工作集
工作集@(OS)工作集是个动态的概念,但也是个经常被忽视的出题点。很多书上就寥寥几句话带过,根本不足以解决像2016年408的一道真题。在后面解释这个问题。首先为了讲清楚工作集,需要先明白几个替换算法。局部最佳页面替换算法类似于全局最佳替换算法,需要事先知道页面的引用串,再根据进程行为改变页面数量。 思想:进程在t时刻访问某页面,如果该页面不在内存中,导致一次缺页。则把该页面装入一个空闲页框。无论原创 2016-11-24 00:17:35 · 14790 阅读 · 3 评论 -
SPOOLing技术的再思考
SPOOLing技术的再思考@(OS)首先看什么是SPOOLing。Simultaneous Peripheral Operation On-Line 通过这个名称基本上就可以知道很多事情。外部设备联机并行操作。总体看来,虚拟性是OS的四大特性之一:虚拟性共享性并发性异步性最基本的特征当然是关于CPU的并发性。其他的都是锦上添花的功能,也很重要。多道程序之所以可以并发,就是因为将CPU分时原创 2016-11-24 14:06:27 · 3031 阅读 · 0 评论 -
管程的思考
管程的思考@(OS)一个形象的感性认识: 简单点说就是只能被单个进执行的代码了,举个例子假如一个管程类叫atm(取款机),里面有两个方法叫提款 取款,不同的人为不同的线程,但是atm只允许一个人在一个时间段中进行操作,也就是单线程,那么这个atm就需要一个锁,单一个人在使用时,其他的人只能wait。再者一个人如果使用的时间太长也不行,所以需要一个条件变量来约束他. –摘自网络。管程的基本思想原创 2016-11-24 14:42:28 · 3696 阅读 · 0 评论 -
磁盘的成组与分解技术
磁盘的成组与分解技术开始理解错了成组与分解的意思,现在重新总结如下。记录的成组与分解1、记录的成组与分解的原因:由于磁盘块的大小是预先划分好的,大小固定,而逻辑记录的大小是用户文件性质决定的,不一定和块大小一致。2、记录的成组:把若干个逻辑记录存入一个块的工作称为“记录的成组”。每块中逻辑记录的个数称“块因子”。3、记录的分解:这是记录成组的一个逆过程。经程是先从磁盘中找到记录所在的块,并将本块读入原创 2016-10-19 14:02:44 · 7703 阅读 · 9 评论 -
放大分析双缓冲类时间计算问题
放大分析双缓冲类时间计算问题@(OS)某OS用双缓冲传送磁盘上数据。设一次从磁盘将数据传送到缓冲区所用时间为T1,一次将缓冲区中数据传送到用户区所用时间为T2(假设T2远小于T1,T3)。CPU处理一次数据所用时间是T3,则处理该数据共重复n次,系统所用总时间是:(n-1)xMAX(T1,T3)+T1+T2+T3.分析:对于双缓冲类问题,一次的时间是MAX(T1,T2+T3)MAX(T1,T2+T3原创 2016-12-13 16:34:37 · 1439 阅读 · 2 评论 -
进程并发与互斥性问题小结
进程并发与互斥性问题小结@(操作系统)有朋友问到一个小问题,不太好直接私信回答,因为含有代码,格式不好调。写到这里作为参考。明确几个小点:无论是不是有线程,进程都是分配资源的单位。有线程时,线程是调度的基本单位。进程内,可以共享全局变量(资源)。既然有共享资源,且线程是调度的基本单位,就意味着需要互斥访问,我们说临界资源需要加锁,或其他机制控制,就是保证资源某一时刻独占性使用。线程内的变量是原创 2016-12-15 21:00:26 · 7747 阅读 · 0 评论 -
软件实现临界区互斥的方法总结思考(四种算法的递进推导)
在这个部分,我总是难以放下一个观点,就是觉得算法的设计故意设计的很蠢,下面会逐一说明。首先看算法一:单标志法。核心思想:设置一个公共整形变量turn,用于指示被允许进入临界区的进程编号。若turn = 0, 表示允许P0进入临界区。OK,到这里肯定很容易想到一个问题,谁来改变turn?这里的turn像是一把锁,控制着进程的进入。 如果是公共区域控制turn这个变量,比如turn = 0时,允许P原创 2016-09-22 21:55:51 · 9204 阅读 · 6 评论 -
关于叫号类的PV操作总结
关于叫号类的PV操作总结@(OS)先分析一道题目。 面包师傅有很多面包,由n个推销人员推销。每个顾客进店后取一个号,并且等待叫号。当一个销售人员空闲下来时,就叫下一个号。设计一个使销售人员和顾客同步的算法。分析:需要理解的是这个场景中的过程,抽象出进程的概念,再用信号量约束。在这个场景中,主要是用号码进行约束。当取号时,这个号码只能给到一个人,因此要互斥访问。当按照号码叫号时,因为有n个推销员原创 2016-11-29 17:00:12 · 5363 阅读 · 7 评论 -
自旋锁--Test and Set Clock机制分析
自旋锁–Test and Set Clock机制分析@(OS)自旋锁:为防止多处理器并发引入的一种锁。在内核中,广泛应用于中断处理部分。而在单处理器中,防止中断处理处理中的并发简单采用关闭中断即可,在PSW中打开/关闭中断标志位,用不大自旋锁。反之,用了自旋锁机制,就不用再管开中断或者关中断。自旋锁的设计初衷是忙则等待。理解目的:为了实现保护共享资源,任何时刻只能有一个保持者。即只有一个进程可以获得原创 2016-11-23 22:41:31 · 24323 阅读 · 6 评论 -
磁盘启动次数计算原理总结
磁盘启动次数计算原理总结@(OS)文件管理有三大部分内容:目录管理文件存储空间管理文件共享保护管理目录管理又细分为:文件控制块和索引结点目录结构 单级目录结构两级目录结构树形目录结构文件存储空间管理主要是四种:空闲表空闲链表位示图成组连接文件共享和保护主要分为:基于索引结点的共享方式–硬链接利用符号链接实现文件共享–软链接个人感觉最重要的是理解目录管理中的文件控制原创 2016-11-20 16:10:36 · 9595 阅读 · 7 评论 -
基本法求解位示图编号问题
基本法求解位示图编号问题@(OS)文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127号块中。每个磁盘块占用1024B,盘块和块字节均从0开始编号。假设要释放的盘块号为409612,则位示图中药修改的位所在的盘号和块内字节分别是:C⎯⎯⎯\underline C A. 81,1 B. 81,2 C. 82,1 D. 82, 2分析:必须要说的是代入法更快。首先看81号,则32~原创 2016-11-11 14:31:28 · 16376 阅读 · 7 评论 -
磁盘访问时间计算
通常磁盘数据访问时间计算分为三个部分(实际上是四个,但是启动时间不加说明时忽略不计):寻道时间,也称寻找时间:磁头移动到指定磁道需要的时间延迟时间:磁头定位到某一磁道的扇区所需要的时间传输时间:从磁盘读出或者写入经历的时间值得强调的是,寻找磁道的时间是最大的影响因子,因此各种调度算法目的都是为了优化寻道的时间。盘面上密密麻麻的同心圆,找到需要的那个想来就很费时间,再加上访问的数据不必在相邻或原创 2016-10-21 14:15:45 · 35252 阅读 · 4 评论 -
索引结点的总结
这需要从目录结构说起。文件目录:包含有关文件的信息,信息主要有:属性,位置,所有权。这些信息主要是由OS进行管理。 目录管理的基本要求:从用户角度看待,目录在用户(应用程序)所需要的文件名和文件之间提供一种映射。目录管理提供的是:按名存取。 共享系统中目录还需要提供控制访问文件的信息。重名问题主要通过树形结构来解决。FCB:文件控制块。用于存放控制文件的各种信息的数据结构,实现了案名存取。原创 2016-10-17 13:17:07 · 14032 阅读 · 0 评论 -
索引结点的总结
索引结点的总结@(OS)这需要从目录结构说起。文件目录:包含有关文件的信息,信息主要有:属性,位置,所有权。这些信息主要是由OS进行管理。 目录管理的基本要求:从用户角度看待,目录在用户(应用程序)所需要的文件名和文件之间提供一种映射。目录管理提供的是:按名存取。 共享系统中目录还需要提供控制访问文件的信息。重名问题主要通过树形结构来解决。FCB:文件控制块。用于存放控制文件的各种信息的数据原创 2016-10-16 22:59:06 · 2338 阅读 · 0 评论 -
文件保护的概念
文件保护的概念 为了防止文件共享可能会导致文件被破坏或者未经核准的用户修改文件,文件系统必须控制用户对文件的存取,即:解决对文件的读、写、执行的许可问题。因此必须建立相应的文件保护机制:口令保护、加密保护、访问控制等。文件保护,并不保护文件是不是受损之类。防止用户文件被他人存取或窃取:口令,加密 控制用户对文件的访问方式–rwx:访问控制访问控制其中之一的策略是:在Linux下面我们非常熟悉原创 2016-10-17 14:02:02 · 10146 阅读 · 1 评论 -
文件的逻辑结构总结
文件的逻辑结构总结@(OS)逻辑结构:从用户观点出发看到的文件的组织形式,是用户可以直接处理的数据及其结构。独立于文件的物理特性。也称为文件组织。 物理结构:从实现的角度出发,OS看到的文件的存储结构。是文件在外存上的存储组织形式。不仅与存储介质的存储性能有关,也与所采用的外存分配方式有关。 无论是文件的逻辑结构还是物理结构都会影响文件的检索速度。这里首先关注逻辑结构:实际上讲的就是在文件的原创 2016-10-16 21:57:12 · 10117 阅读 · 2 评论 -
中断和异常的再总结
中断和异常的再总结@(OS)内部异常(内中断)故障(fault)自陷(trap)终止(abort)是源自CPU执行指令内部的事件。如:非法操作码,地址越界,算术溢出,虚存系统的缺页,陷入指令等引起的事件。内部异常不可被屏蔽,一旦出现立马处理。外中断:来自CPU执行指令以外的事件。如:I/O中断,时钟中断等。举个例子:(2015.24)假定下列指令已装入指令寄存器。则执行时不可能导致CPU从用原创 2016-11-10 16:32:44 · 21160 阅读 · 7 评论 -
预处理,编译,汇编,链接程序的区别
预处理,编译,汇编,链接程序的区别@(OS)一段高级语言代码经过四个阶段的处理形成可执行的目标二进制代码。预处理器→编译器→汇编器→链接器预处理器\rightarrow 编译器 \rightarrow 汇编器 \rightarrow 链接器最难理解的是编译与汇编的区别。这里采用《深入理解计算机系统》的说法。预处理阶段:写好的高级语言的程序文本比如hello.c,预处理器根据#开头的命令,修改原原创 2016-11-22 14:29:11 · 17646 阅读 · 0 评论 -
首次打开文件简单分析
首次打开文件简单分析@(OS)打开文件是一个合作的过程。具体的过程有open–read.其中特别注意,这两个操作都是系统调用!用户进程只是把打开文件这个需求发到操作系统,操作系统就根据要求完成这个任务,且这个任务分成两个部分执行。首先,维护一个打开文件表。用户进程发送的请求里,给的是文件名,经过open系统调用,就去把该文件的FCB调入内存,并返回一个指针供read调用。 即:首次打开文件时,先o原创 2016-11-14 15:30:28 · 3286 阅读 · 0 评论 -
信号量的原理总结
谈到信号量,大多数会立马想到PV操作,这个用荷兰语表示的专有名词。对比前面我们说的,四种实现临界区互斥的软件设计算法,PV操作更加的优良,现在这里就将对其原理进行详细的解释分析,以及如何在题目的场景中使用,包括算法的设计和问题的分析。http://blog.youkuaiyun.com/u011240016/article/details/52628467首先,信号量机制我们着重谈两个设计思路,核心相同,设计有原创 2016-09-22 22:40:55 · 13622 阅读 · 1 评论 -
中断占用CPU的时间分析
本篇从一道题目出发理清楚这类题目想表达的意思。这类题目很有趣的一点在于,从不同的角度思考,复杂度是不一样的。也就是,用正确的思路去想,就很简单且自然。 假设一个计算机系统具有如下性能特征:处理一次中断平均需要500us,一次进程调度平均需要花费1ms,进程的切换平均需要花费2ms。若该计算机系统的定时器每秒发出120次时钟中断,忽略其他中断的影响,请问: 1)操作系统将百分之几的CPU时间原创 2016-09-20 21:09:17 · 7889 阅读 · 7 评论 -
对PV操作问题的理解综合
从最初接触PV操作,到有些许理解时候的赞叹,但是具体问题下,自己并不能做到顺畅的分解出问题中的进程与进程之间交织的关系。虽然作者在书中很清晰的总结了一些判断标准。 需要处理的关系只有两种:同步和互斥。 互斥的问题尤其简单,只是设置一个变量mutex,令其初值为1。每个进程进来前先P一下,表示想要用临界区,从临界区出来就要V一下,重置mutex为1。 对于同步问题也并不太难,只需要用变原创 2016-09-25 21:06:58 · 3225 阅读 · 0 评论 -
IO子系统的层次结构
在计算机系统,无论软硬,经常用到的结构是层次结构。同样,IO也不例外。将IO需要完成的功能组织成一系列的层次结构,每一层利用下一层提供的服务。每层完成的是一个子功能,并向上层提供服务接口。这些特征基本上都是层次系统通用的特性,不必多说。IO系统分类的层次通常是5层。列举如下:用户层IO软件设备独立性软件设备驱动程序中断处理程序硬件首尾两个不用解释都能明白,最抽象的当然是用户看到的那些IO原创 2016-10-22 14:30:54 · 10383 阅读 · 0 评论 -
页式管理--物理地址计算问题小结
页式存储,物理地址计算,页框号计算,页表项地址推算原创 2016-10-04 19:47:05 · 11760 阅读 · 3 评论 -
生产者-消费者习题的运用
三个进程P1,P2,P3互斥使用包含N(N > 0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一个单元格;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从缓冲区中拿到一个偶数,并用counteven()统计偶数的个数。用信号量机制实现三个进程的互斥与同步。首先看一个不行但很接近的写法:se原创 2016-09-28 21:10:42 · 1839 阅读 · 0 评论 -
产品入库的PV操作
在一个仓库中可以存放A和B两种产品,要求: 1)每次只能存入一种–互斥访问 2)A产品数量 - B产品数量 < M 3)B产品数量 - A产品数量 < N其中,M,N是正整数,使用PV操作描述A和B的入库过程。semaphore mutex = 1;int countA = 0,countB = 0;PA:while(1){ if(countA - countB < M -原创 2016-09-28 21:36:06 · 3219 阅读 · 6 评论 -
销售与顾客的PV同步算法
面包师有很多面包,由n个销售人员推销,每个顾客进店后取一个号,并且等待叫号。当一个销售人员空闲下来时,就叫下一个号。设计一个销售人员与顾客同步的算法。这一类题型代表性很强,比如银行柜台,各种商店的服务等,都是一样的模式。分析:这里有n个销售人员可用,像是n个缓冲区一样。每个顾客取号,等待的看似是号码,实际是销售。因此,这是简化的生产者消费者问题,这里没有互斥问题,仅仅是同步。 以上是一种典型的错误原创 2016-09-28 23:03:21 · 4450 阅读 · 5 评论 -
访问磁盘次数计算
访问磁盘次数计算1.一个文件系统中,其FCB占64B,一个盘块大小是1KB,采用一级目录。假定文件目录中有3200个目录项,则查找一个文件平均需要访问磁盘(100)次。 分析:FCB是存储在磁盘盘块的。本题主要还是考察名词辨析:文件目录=FCB的集合,文件目录项=FCB,因此由FCB的大小以及目录项的个数可以得到的是文件目录共占用多少磁盘块。3200×64B÷1KB=2003200\times6原创 2016-10-19 17:46:25 · 25448 阅读 · 12 评论 -
死锁习题细究
(2015.26)若系统S1采用死锁避免方法,S2采用死锁检测方法。下列叙述中正确的是:B.I. S1会限制用户申请资源的顺序,而S2不会 II. S1需要进程运行所需要的资源总量信息,而S2不需要 III. S1不会给可能导致死锁的进程分配资源,而S2会A.I、II B.II、III C. I、III D. I、II、III分析:这在书上其实说的很明确了,只是被忽略了。关于死锁的处理主要原创 2016-11-10 17:03:07 · 7708 阅读 · 9 评论 -
请求分页系统中页面分配策略与页面置换策略的关系
请求分页系统中页面分配策略与页面置换策略的关系@(OS)回顾几种分配策略:固定分区分配动态分区分配伙伴系统可重定位分区分配页面置换策略:全局置换局部置换其中,关于分区分配策略已经很熟悉了,需要特别说明的是页面置换策略。这是我们在课本上不太强调的。局部置换只置换本进程内的物理页面。一个进程占用的物理页面总数是限定的,当需要置换时,即总数已经用完,新进来一个页面,本进程就需要出去一个老的原创 2016-11-11 14:08:13 · 13918 阅读 · 2 评论 -
自定义文件系统下的磁盘访问次数计算
有一个文件系统如图所示:图中的方框表示目录,圆圈表示普通文件。根目录常驻内存,目录文件组织成链接文件,不设FCB,普通文件组织成索引文件。目录表指示下一级文件名及其磁盘地址(各占2B,共4B)。若下级文件是目录文件,指示其第一个磁盘块地址。若下级文件是普通文件,指示其FCB的磁盘块地址。每个目录的文件磁盘块的最后4B供拉链使用。下级目录文件在上级目录文件中的次序在图中是从左往右。每个磁盘块有512B原创 2016-10-20 15:07:19 · 11117 阅读 · 2 评论 -
FAT磁盘分配策略简说
FAT属于链接分配下的显示链接分配。即:将盘块号抽出来形成一个表(File Allocation Table),这个表创建时是在磁盘的,使用时可以调入内存,这是必然的,不然认为FAT在内存中,而内存是断电就丢失信息的存储,FAT表需要待在永久存储的地方–磁盘。查找记录在内存中进行,显著提高了检索速度以及减少了访问磁盘的次数。那么提一个关于FAT表项的计算问题,以形成一种FAT表结构的概念。假定磁盘大原创 2016-10-20 13:34:04 · 3925 阅读 · 4 评论 -
文件系统的层次结构的理解总结
文件系统的层次结构的理解总结通过前面的文章对文件系统的逻辑结构总结,到这里再来看文件系统的层次结构就非常自然。 首先还是注意辨明一些基础的名词概念: + 用户接口 + 文件目录系统 + 存取控制模块 + 逻辑文件系统与文件信息缓冲区 + 物理文件系统 + 辅助分配模块 + 设备管理模块怎样理解这一个层次结构呢?带着日常使用电脑查找文件的经验即可很快理解。用户接口:OS原创 2016-10-18 14:21:05 · 7210 阅读 · 0 评论 -
周转时间,平均周转时间,带权周转时间
周转时间,平均周转时间,带权周转时间@(OS)这三个概念需要特别理解清楚。周转时间=作业完成时间−作业提交时间周转时间 = 作业完成时间 - 作业提交时间特别注意作业提交时间不是作业进内存的时间,而是发出请求,提交就开始计时,如果无法安排进内存,那么就等待,等待的这部分时间也要计数。平均周转时间=作业1的周转时间+...+作业n的周转时间n平均周转时间 = \frac{作业1的周转时间+...+作业原创 2016-11-17 14:07:27 · 70738 阅读 · 3 评论 -
资源图与死锁定理的灵活运用
资源图与死锁定理的灵活运用@(OS)强调一下,死锁预防需要限制资源的请求顺序。死锁避免需要限制资源的分配顺序。越早下手处理死锁问题,对机器的性能影响越大。因此,Unix这种追求快的系统,这两种都不采用,而是用的死锁检测和解除。资源分配图通常分析描述死锁,可以用资源分配图。关于资源分配图,要仅仅抓住两点:请求边分配边关键在找:空闲资源。如果空闲资源可以满足某个进程,这个进程就可以解脱了,把它摘除原创 2016-11-23 14:48:54 · 14142 阅读 · 23 评论