操作系统
文章平均质量分 77
flykis
这个作者很懒,什么都没留下…
展开
-
文件管理概述
https。原创 2022-07-28 23:07:09 · 558 阅读 · 0 评论 -
页面分配策略
https。原创 2022-07-26 09:45:25 · 1171 阅读 · 0 评论 -
页面置换算法
https。原创 2022-07-26 08:52:50 · 356 阅读 · 0 评论 -
请求分页管理
https。原创 2022-07-25 10:20:27 · 1789 阅读 · 0 评论 -
虚拟内存基本概念
https。原创 2022-07-25 09:40:59 · 3071 阅读 · 0 评论 -
段页式管理
https。原创 2022-07-24 09:56:54 · 1988 阅读 · 1 评论 -
基本分段存储
https。原创 2022-07-24 09:36:31 · 1086 阅读 · 0 评论 -
两级页表概述
https。原创 2022-07-23 22:05:00 · 6483 阅读 · 0 评论 -
具有快表的地址变换机构
https。原创 2022-07-23 10:17:16 · 899 阅读 · 0 评论 -
基本地址变换机构
在分页存储管理(页式管理)的系统中,只要确定了每个页面的大小,逻辑地址结构就确定了。因此,页式管理中地址是一维的。即,只要给出一个逻辑地址,系统就可以自动地算出页号、页内偏移量两个部分,并不需要显式地告诉系统这个逻辑地址中,页内偏移量占多少位。https。...原创 2022-07-21 21:39:51 · 1716 阅读 · 0 评论 -
基本分页存储管理
https。原创 2022-07-21 17:21:07 · 4083 阅读 · 2 评论 -
动态分区分配算法
https。原创 2022-07-21 16:06:20 · 287 阅读 · 0 评论 -
连续分配管理方式
https。原创 2022-07-18 11:03:22 · 166 阅读 · 0 评论 -
覆盖与交换
在程序的内存大小大于实际(物理)内存的大小时,就需要覆盖技术来解决这个问题覆盖技术的思想:将程序分为多个段(多个模块)。常用的段常驻内存,不常用的段在需要时调入内存。内存中分为一个“固定区”和若干个“覆盖区”。需要常驻内存的段放在“固定区”中,调入后就不再调出(除非运行结束)不常用的段放在“覆盖区”,需要用到时调入内存,用不到时调出内存 对上面这个程序:物理内存:程序x的固定区A(8K)程序x的覆盖区0(10K)程序x的覆盖区1(12K)按照自身逻辑结构,让那些不可能同时被访问的程序段共享同一个覆盖区必须由原创 2022-07-08 13:04:41 · 346 阅读 · 0 评论 -
内存管理的概念
操作系统负责内存空间的分配与回收操作系统需要提供某种技术-从逻辑上对内存空间进行扩充为了使编程更方便,程序员写程序时应该只需要关注指令、数据的逻辑地址。而逻辑地址到物理地址的转换(这个过程称为地址重定位)应该由操作系统负责,这样就保证了程序员写程序时不需要关注物理内存的实际情况。地址重定位:三种方法1.绝对装入:编译时产生绝对地址——单道程序阶段-此时还没有操作系统2.可重定位装入:装入内存时将逻辑地址转换成物理地址——多道批处理操作系统3.动态运行时装入:运行时将逻辑地址转换为物理地址,需要设置重定位寄存原创 2022-07-07 22:50:49 · 242 阅读 · 0 评论 -
内存的基础知识
内存是用于存放数据的硬件。程序在执行的时候需要先放到内存中才能被CPU处理思考:在多道程序环境下,系统中会有多个程序并发执行,也就是说会有多个程序的数据需要同时放到内存中。那么,如何区分各个程序的数据是放在什么地方的呢?给内存的存储单元编地址,内存地址从0开始,每一个地址对应一个存储单元。·如果计算机是“按字节编制”,则每个存储单元大小为1字节。1B即8个二进制位·如果计算机是“按字编制”,一个字长16的计算机,则每个存储单元大小为1个字。每个字的大小为16个二进制位1K=2^10;1M=2^20;1G=2原创 2022-07-07 11:51:24 · 1864 阅读 · 0 评论 -
死锁的处理-死锁的检测与解除
如果系统中既不采取预防死锁的措施,也不采取避免死锁的措施,系统就很可能发生死锁。在这种情况下,系统应当提供两个算法:1.死锁检测算法:用于检测系统状态,以确定系统中是否发生了死锁。 2.死锁解除算法:当认定系统中已经发生了死锁,利用该算法可将系统从死锁状态中解脱出来。一、死锁的检测为了能对系统是否已发生了死锁进行检测,必须:1.用某种数据结构来保存资源的请求和分配信息;2.提供一种算法,利用上述信息来检测系统是否已进入死锁状态。1.数据结构资源分配图:1.两种结点..原创 2022-05-29 11:04:56 · 6064 阅读 · 0 评论 -
死锁的处理-避免死锁
静态策略:预防死锁动态策略:避免死锁一、安全序列,不安全状态,死锁的联系1.安全序列就是指如果系统按照这种序列分配资源,则每个进程都能顺利完成。只要能找出一个安全序列,系统就是安全状态。当然,安全序列可能有多个。2.不安全状态如果分配了资源之后,系统中找不出任何一个安全序列,系统就进入了不安全状态。这就意味着之后可能所有进程都无法顺利的执行下去。当然,如果有进程提前归还了一些资源,那系统也有可能重新回到安全状态,不过我们在分配资源之前总是要考虑到最坏的情况。如果系统处..原创 2022-05-28 22:32:19 · 1216 阅读 · 0 评论 -
死锁的处理-预防死锁
不允许死锁的发生:死锁的产生必须满足四个必要条件,只要其中一个不满足,死锁就不会发生静态策略:预防死锁1.破坏互斥条件2.破坏不剥夺条件3.破坏请求和保持条件4.破坏循环等待条件动态策略:避免死锁允许死锁的发生:死锁的检测和解除一、破坏互斥条件1.互斥条件:只有对必须互斥使用的资源的争抢才会导致死锁。2.解决方案如果把只能互斥使用的资源改造为允许共享使用,则系统不会进入死锁状态。比如: SPOOLing技术。操作系统可以采用SPooLi..原创 2022-05-26 10:52:25 · 715 阅读 · 1 评论 -
死锁的概念
一、进程死锁、饥饿、死循环的区别1.死锁:各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象。2.饥饿:由于长期得不到想要的资源,某进程无法向前推进的现象。比如:在短进程优先(SPF)算法中,若有源源不断的短进程到来,则长进程将一直得不到处理机,从而发生长进程“饥饿”3.死循环:某进程执行过程中一直跳不出某个循环的现象。有时是因为程序逻辑bug导致的,有时是程序员故意设计的。4.三者的共同点:都是进程无法顺利向前推进的现象(故意设计的死循环除外..原创 2022-05-25 10:56:02 · 1108 阅读 · 0 评论 -
管程的概念
一、为什么要引入管程信号量机制存在的问题:编写程序困难、易出错能不能设计一种机制,让程序员写程序时不需要再关注复杂的PV操作,让写代码更轻松呢?1973年,Brinch Hansen首次在程序设计语言(Pascal) 中引入了“管程”成分――一种高级同步机制二、管程的定义和基本特征1.定义管程是一种特殊的软件模块,有这些部分组成:1.局部于管程的共享数据结构说明;2.对该数据结构进行操作的一组过程;3.对局部于管程的共享数据设置初始值的语句;4.管程有一个名字..原创 2022-05-24 23:56:58 · 10994 阅读 · 2 评论 -
哲学家进餐问题
一、问题描述一张圆桌上坐着5名哲学家,每两个哲学家之间的桌上摆一根筷子,桌子的中间是一碗米饭。哲学家们倾注毕生的精力用于思考和进餐,哲学家在思考时,并不影响他人。只有当哲学家饥饿时,才试图拿起左、右两根筷子(一根一根地拿起)。如果筷子已在他人手上,则需等待。饥饿的哲学家只有同时拿起两根筷子才可以开始进餐,当进餐完毕后,放下筷子继续思考。1.关系分析。系统中有5个哲学家进程,5位哲学家与左右邻居对其中间筷子的访问是互斥关系。2.整理思路。这个问题中只有互斥关系,但与之前遇到的问题不同的事,每个..原创 2022-05-24 18:45:03 · 579 阅读 · 0 评论 -
读者-写者
一、问题描述有读者和写者两组并发进程,共享一个文件。当两个或两个以上的读进程同时访问共享数据时不会产生副作用但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。因此要求:1.允许多个读者可以同时对文件执行读操作;2.同一时间只允许一个写者往文件中写信息;3.任一写者在完成写操作之前不允许其他读者或写者工作;4.写者执行写操作前,应让已有的读者和写者全部退出。与消费者进程不同,读者进程在读数据后并不会将数据清空,并不会改变数据。因..原创 2022-05-24 16:07:07 · 234 阅读 · 0 评论 -
吸烟者问题
一、问题描述假设一个系统有三个抽烟者进程和一个供应者进程。每个抽烟者不停地卷烟并抽掉它,但是要卷起并抽掉一支烟,抽烟者需要有三种材料:烟草、纸和胶水。三个抽烟者中,第一个拥有烟草、第二个拥有纸、第三个拥有胶水。供应者进程无限地提供三种材料,供应者每次将两种材料放桌子上,拥有剩下那种材料的抽烟者卷一根烟并抽掉它,并给供应者进程一个信号告诉完成了,供应者就会放另外两种材料再桌上,这个过程一直重复(让三个抽烟者轮流地抽烟)本质上这题也属于“生产者-消费者”问题,更详细的说应该是“可生产..原创 2022-05-24 15:44:43 · 124 阅读 · 0 评论 -
多生产者-多消费者
一、问题描述桌子上有一只盘子,每次只能向其中放入一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,儿子专等着吃盘子中的橘子,女儿专等着吃盘子中的苹果。只有盘子空时,爸爸或妈妈才可向盘子中放一个水果。仅当盘子中有自己需要的水果时,儿子或女儿可以从盘子中取出水果。用PV操作实现上述过程。互斥关系: ( mutex = 1) 对缓冲区(盘子)的访问要互斥地进行同步关系:(一前一后) 1.父亲将苹果放入盘子后,女儿才能取苹果2.母亲将橘子放入盘子后,儿子才能取橘子3.只有盘子...原创 2022-05-24 13:32:21 · 340 阅读 · 0 评论 -
生产者消费者问题
一、问题描述系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用。(注:这里的“产品”理解为某种数据)特点:生产者、消费者共享一个初始为空、大小为n的缓冲区。只有缓冲区没满时,生产者才能把产品放入缓冲区,否则必须等待。只有缓冲区不空时,消费者才能从中取出产品,否则必须等待。缓冲区是临界资源,各进程必须互斥地访问。缓冲区满时,生产者必须等待,缓冲区空时,消费者必须等待分析同步互斥关系:缓冲区...原创 2022-05-22 20:24:56 · 602 阅读 · 0 评论 -
信号量-实现进程互斥,同步
一、实现进程互斥1.分析并发进程的关键活动,划定临界区(如:对临界资源打印机的访问就应放在临界区)2.设置互斥信号量mutex,初值为13.在临界区之前执行P(mutex)4.在临界区之后执行V(mutex)注意:对不同的临界资源需要设置不同的互斥信号量。P、V操作必须成对出现。缺少P(mutex)就不能保证临界资源的互斥访问。缺少V(mutex)会导致资源永不被释放,等待进程永不被唤醒。二、实现进程同步因为进程并发,所以进程的执行顺序是不确定的进...原创 2022-05-20 23:49:31 · 3961 阅读 · 0 评论 -
信号量机制
实现进程互斥,同步的方法整型信号量记录型信号量一、概念用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。1.信号量信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),可以用一个信号量来表示系统中某种资源的数量,比如:系统中只有一台打印机,就可以设置一个初值为1的信号量。2.原语原语是一种特殊的程序段,其执行只能一气呵成,不可被中断。原语是由关中断/开中断指令实现的。软件解决方案的主要问..原创 2022-05-20 20:45:11 · 595 阅读 · 0 评论 -
进程互斥的硬件实现方法
一、中断屏蔽方法利用“开/关中断指令”实现(与原语的实现思想相同,即在某进程开始访问临界区到结束访问为止都不允许被中断,也就不能发生进程切换,因此也不可能发生两个同时访问临界区的情况)关中断后即不允许当前进程被中断,也必然不会发生进程切换直到当前进程访问完临界区,再执行开中断指令,才有可能有别的进程上处理机并访问临界区优点:简单、高效缺点:不适用于多处理机;只适用于操作系统内核进程,不适用于用户进程(因为开/关中断指令只能运行在内核态,这组指令如果能让用户随意使用会很...原创 2022-05-20 12:44:48 · 1282 阅读 · 1 评论 -
进程互斥的软件实现方法
重点理解:各个算法在进入区,退出区都做了什么分析各个算法存在的缺陷一、单标志法算法思想:两个进程在访问完临界区后会把使用临界区的权限转交给另一个进程。也就是说每个进程进入临界区的权限只能被另一个进程赋予int turn=0;//表示当前允许进入临界区的进程号//对于P0进程while(true!=0); 1 //进入区critical section; 2 //临界区turn=1; 3 //退出区remainder...原创 2022-05-19 11:36:26 · 287 阅读 · 0 评论 -
进程的同步和互斥
一、进程同步进程具有异步性的特征。异步性:是指各并发执行的进程以各自独立的、不可预知的速度向前推进。如果要并发执行进程,控制进程执行的顺序,就需要提供操作系统要提供“进程同步机制”来实现上述需求。1.为什么需要进程同步再看另一个例子:进程通信――管道通信读进程和写进程并发地运行,由于并发必然导致异步性,因此“写数据”和“读数据”两个操作执行的先后顺序是不确定的。而实际应用中,又必须按照“写数据→读数据”的顺序来执行的。如何解决这种异步问题,就是“进程同步”所讨论的内容。...原创 2022-05-19 00:00:35 · 3667 阅读 · 0 评论 -
调度算法2
各种调度算法的学习思路1.算法思想2.算法规则3.这种调度算法是用于作业调度还是进程调度?4.抢占式?非抢占式?5.优点和缺点6.是否会导致饥饿一、时间片轮转调度算法RR-Ronud Robin1.算法思想公平地、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应2.算法规则按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(如100ms)。若进程未在一个时间片内执行完则剥夺处理机,将进程重新放到就绪队列队尾重新排队。3.用于作..原创 2022-05-18 23:41:02 · 333 阅读 · 0 评论 -
调度算法概念
一、先来先服务FCFS-first come first serve1.算法思想主要从“公平”的角度考虑(类似于我们生活中排队买东西的例子)2.算法规则按照作业/进程到达的先后顺序进行服务3.用于作业/进程调度用于作业调度时,考虑的是哪个作业先到达后备队列;用于进程调度时,考虑的是哪个进程先到达就绪队列4.是否可抢占?非抢占式的算法5.优缺点优点:公平、算法实现简单缺点:排在长作业(进程)后面的短作业需要等待很长时间,带权周转时间很大,对短作业来说用户体验..原创 2022-05-17 13:37:41 · 2385 阅读 · 0 评论 -
调度算法的评价指标
一、CPU利用率CPU造价极其昂贵,应该让CPU尽可能多地工作CPU利用率:指CPU“忙碌”的时间占总时间的比例。利用率=忙碌的时间 / 总时间Eg:某计算机只支持单道程序,某个作业刚开始需要在CPu上运行5秒,再用打印机打印输出5秒,之后再执行5秒,才能结束。在此过程中,CPU利用率、打印机利用率分别是多少?CPU利用率 = 10/15 = 66.66%打印机利用率 = 5/15 = 33.33%二、系统吞吐量对于计算机来说,希望能用尽可能少的时间处理完...原创 2022-05-16 17:49:28 · 1416 阅读 · 0 评论 -
进程调度相关
一、时机进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。1.需要进行进程调度与切换的情况当前运行的进程主动放弃处理机进程正常终止运行过程中发生异常而终止进程主动请求阻塞(如等待I/O)当前运行的进程被动放弃处理机分给进程的时间片用完有更紧急的事需要处理(如I/O中断)有更高优先级的进程进入就绪队列2.不需要进行进程调度与切换的情况1.在处理中断的过程中。中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行...原创 2022-05-16 13:13:30 · 772 阅读 · 0 评论 -
处理机调度
一、基本概念当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题。在多道程序系统中,进程的数量往往是多于处理机的个数的,这样不可能同时并行地处理各个进程。处理机调度,就是从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程的并发执行。二、三个层次1.高级调度-作业调度由于内存空间有限,有时无法将用户提交的作业全部放入内存,因此就需要确定某种规则来决定将作业调入内存的顺序。高级调..原创 2022-05-16 12:15:38 · 579 阅读 · 0 评论 -
线程概念与多线程模型
一、什么是线程,为什么要引进线程?1.为什么要引进线程还没引入进程之前,系统中各个程序只能串行执行。引入了进程之后,各个程序可以并发执行有的进程可能需要“同时”做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了“线程”,来增加并发度。传统的进程是程序执行流的最小单位,引入线程后,线程成为了程序执行流的最小单位2.什么是线程可以把线程理解为“轻量级进程”。线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进..原创 2022-05-14 20:47:19 · 139 阅读 · 0 评论 -
进程通讯的方式
什么是进程通讯?顾名思义,进程通信就是指进程之间的信息交换。进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。为了保证安全,一个进程不能直接访问另一个进程的地址空间。但是进程之间的信息交换又是必须实现的。为了保证进程间的安全通信,操作系统提供了一些方法。一、共享存储概念两个进程对共享空间的访问必须是互斥的(互斥访问通过操作系统提供的工具实现)。操作系统只负责提供共享空间和同步互斥工具(如P、V操作)特点1、共享内存能实现大量数..原创 2022-05-14 20:46:24 · 262 阅读 · 0 评论 -
进程的控制
一、基本概念1).什么是进程控制?进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。简化理解:进程控制就是要实现进程状态转换2).如何实现进程控制创建进程:需要初始化PCB,分配系统资源运行态——>终止态:需要回收进程拥有的资源,撤销PCB运行态——>就绪态:(进程切换)需要保存进程运行环境,修改PCB内容,和相应队列运行态——>阻塞态:需要保存进程运行环境,修改PCB内容,和相应队列阻..原创 2022-05-13 22:36:16 · 2424 阅读 · 0 评论 -
进程的状态与切换
一、进程的状态进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时又需要等待CPU服务,可见,进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。进程的三种基本状态:运行态,就绪态,阻塞态1.运行状态-Running占用CPU,并在CPU上运行注意:单核处理机环境下,每一时刻最多只有一个进程处于运行态。(双核环境下可以同时有两个进程处于运行态)2.就绪状态-Ready已经具备运行条件,但由于没有空闲CPU,而暂时不..原创 2022-05-13 21:52:22 · 2157 阅读 · 0 评论