快乐江湖
专注人工智能领域和优质计算机学习笔记创作
展开
-
【专栏必读】王道考研408操作系统+Linux系统编程万字笔记、题目题型总结、注意事项、目录导航和思维导图
王道408考研操作系统)第一章计算机系统概述-第一节1、2:操作系统概念、概念和特征1:理解fork的作用prinf("还没有执行fork函数的本进程为:%d\n" , getpid());//其返回值是pid类型的 sleep(1);if(ret > 0) //父进程返回的是子进程ID {printf("我是父进程,我的id是:%d,我的孩子id是%d\n" , getpid() , ret);sleep(1);} } else if(ret == 0) //子进程fork返回值是0 {.........原创 2021-10-27 23:08:22 · 31033 阅读 · 1 评论 -
(王道408考研操作系统)第一章计算机系统概述-第一节1、2:操作系统概念、概念和特征
裸机在最里面,其外面是操作系统,操作系统所提供的资源管理功能和方便用户的各种服务功能,将逻辑改造成功能更强、使用更方便的机器。如果直接用机器指令开发应用程序会相当困难,这意味着你直接在和二进制打交道,并且用户与计算机进行交互时也是很不友好的。,使原来仅允许在一段时间内由一个用户访问的设备也即临界资源,变为在一段时间内允许多个用户同时访问的共享设备。:类似的,可以采用虚拟存储器技术将一台机器的物理存储变为虚拟存储器,以便从。类比生活中的汽车,我们知道汽车的实现逻辑是十分复杂的。...原创 2021-10-15 14:25:32 · 6713 阅读 · 1 评论 -
(王道408考研操作系统)第二章进程管理-第二节2、3:进程调度的时机、切换与过程、方式、调度器和闲逛进程
这里首先要区分优先级和权限的关系:以食堂举例,你能去学生食堂而不能去职工食堂,这是因为你没有权限,你可以去食堂,但是你却排不上队,这是因为你的优先级不够(你跑的够不够快,排的是不是在前面)换到进程中,当进程太多时,进程就需要被合理的管理,总不能谁都抢着去占用CPU,所以CPU分配资源的先后顺序就是进程的优先级在计算机中肯定是进程数大于CPU的数量,也就是人数太多而资源太少,因此优先级的作用就显得至关重要,它可以让优先级高的进程有优先执行权利,让那些不重要,优先级低的进程等一等,或者按照到其他CPU。....原创 2022-08-18 09:45:36 · 1529 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第一节6、7:线程的实现方式和多线程模型
用户认为是有多个线程的,但是操作系统根本就不理会,他认为线程是不存在的。在Linux中,POSIX线程库便是用户级线程。从操作系统内核视角看能看到的线程”线程控制块(TCB)原创 2022-08-17 12:10:50 · 1375 阅读 · 0 评论 -
(王道408考研操作系统)第一章计算机系统概述-第五、六节:操作系统引导和虚拟机
此时虚拟机管理程序将会检查这条指令是由虚拟机操作系统执行的还是由用户程序执行的,若为前者则虚拟机管理程序将会安排这条指令功能的正确执行;否则虚拟机管理程序将会模拟真实硬件的行为。虚拟机上的每个操作系统都认为自己运行在内核态,扫描分区表,并加载硬盘活动分区。操作系统引导(开机过程)加载分区引导记录PBR。运行,不可以执行敏感指。主引导记录(MBR)加载主引导记录MBR。多台虚拟机器(VM)...原创 2022-08-13 16:35:37 · 1814 阅读 · 0 评论 -
(王道408考研操作系统)第一章计算机系统概述-第四节:操作系统体系结构
@[toc]# 一:操作系统的内核 **内核基本概念:在软件工程思想和结构程序设计方法影响下诞生的现代操作系统,几乎都是层次式的结构,操作系统的各项功能分别被设置在不同的层次上。一些与硬件关联紧密的模块,比如时钟管理、中断处理、设备驱动等处于最底层。其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。这两部分内容构成了操作系统...原创 2022-08-13 09:53:00 · 1404 阅读 · 0 评论 -
(王道408考研操作系统)第一章计算机系统概述-第二节:操作系统的发展历程
文章目录一:手工操作阶段(此阶段无操作系统)二:批处理阶段(操作系统开始出现)(1)单道批处理系统(2)多道批处理系统一:手工操作阶段(此阶段无操作系统)你在学习编写程序时,有没有想过,古老年代的计算机程序是如何写出来的呢?早些年代,会用一种古来的物理设备叫作打孔卡(Punched Card)。用这种设备写程序,可没法像今天这样,掏出键盘就能打字,而是要先在脑海里或者在纸上写出程序,然后在纸带或者卡片上打洞。这样,要写的程序、要处理的数据,就变成一条条纸带或者一张张卡片,之后再交给当时的计算机去处理原创 2021-10-17 14:53:38 · 1879 阅读 · 0 评论 -
(王道408考研操作系统)第一章计算机系统概述-第三节1:操作系统的运行机制与体系结构
特权指令:指的是具有特殊权限的指令,这类指令权限很大,使用不当将导致系统奔溃。经典的有清内存,修改页表,修改访问权限等等。如果所有程序都能使用这些指令,那么不要说别有用心的人会千方百计的利用这些漏洞,我们用户自己可能就先把系统搞坏了。因此为了保证系统安全,这类指令只能用于操作系统或其他软件,不直接提供给用户使用——特权指令必须在核心态执行非特权指令:为了防止用户程序中使用特权指令,用户态下只能使用非特权指令,核心态下可以使用全部指令。在用户态下使用特权指令时,将产生中断以阻止用户使用特权指令...原创 2021-10-19 14:07:03 · 2050 阅读 · 1 评论 -
(王道408考研操作系统)第一章计算机系统概述-第三节2:中断和异常
注意!!!本节内容和《计算机组成原理》中的中断有重合,如果需要详细了解的话可以点击链接跳转:(计算机组成原理)第七章输入和输出系统-第四节2:I/O方式之程序中断方式为了内容完整,部分内容会借用上述文章文章目录一:中断和异常的基本概念(1)中断和异常的定义一:中断和异常的基本概念在操作系统引入核心态和用户态这两种工作状态后,就需要考虑两种状态之间是如何切换的。操作系统内核工作在核心态,用户程序工作在用户态,系统不允许用户程序使用核心态的功能,但是用户程序为了完成某些操作又必须使用这些功能原创 2021-10-22 13:50:20 · 2840 阅读 · 1 评论 -
(王道408考研操作系统)第一章计算机系统概述-第三节3:系统调用
文章目录一:什么是系统调用二:系统调用分类三:系统调用和核心态用户态的关系四:系统调用与库函数的关系前面说过,操作系统接口分为命令接口和程序接口,其中命令接口允许用户直接使用,而程序接口允许用户通过程序间接使用,实际上是由一组系统调用组成一:什么是系统调用系统调用:是指用户在程序中调用操作系统所提供的一些子功能,系统调用可以视为特殊的公共子程序。系统中的各种共享资源都有操作系统统一掌控,因此在用户程序中,凡是与资源有关的操作(如存储分配,I/O传输等)都必须通过系统调用的方式向操作系统提出服务请求,原创 2021-10-22 14:37:55 · 1816 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第一节1:进程的概念、组成和特征
进程:引入程序段、数据段和PCB后,进程可以被定义为——进程是进程实体的运行过程,是系统进行资源分配和调度的独立单位。原创 2021-10-23 14:43:51 · 2595 阅读 · 2 评论 -
(王道408考研操作系统)第二章进程管理-第一节2:进程状态与转换
文章目录一:进程状态二:进程状态转换补充:Linux中的进程状态及其转换(1)几个重要的状态A:R(running)-运行状态B:S(sleeping)-睡眠状态C:D(Disk sleep)-磁盘休眠状态D:T(stopped)-停止(2)进程状态路线图(3)特殊的进程状态-僵尸进程A:僵尸进程是什么B:一个例子C:为什么要有僵尸进程(4)特殊的进程状态-孤儿进程一:进程状态进程在其生命周期内,由于系统中各进程之间的相互制约关系及系统的运行环境的变换,使进程的状态也在不断发生变化。通常进程会有以下五种原创 2021-10-24 16:01:04 · 1905 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第一节3:进程控制(配合Linux讲解)
文章目录一:如何实现进程控制二:进程控制原语(1)进程创建A:概述B:补充-Linux中的创建进程操作①:fork()②:fork()相关问题(2)进程终止A:概述B:补充-僵尸进程与孤儿进程①:僵尸进程②:孤儿进程(3)进程阻塞(Block)/等待(Wait)A:概述B:补充-Linux中的进程等待①:为什么进程需要被等待/阻塞②:进程阻塞式等待③:进程非阻塞式等待(4)进程唤醒(Wake)进程控制是指对系统中所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。可以简单理解为原创 2021-10-25 14:54:28 · 2877 阅读 · 2 评论 -
(王道408考研操作系统)第二章进程管理-第一节4:进程间通信(配合Linux讲解)
文章目录一:什么是进程通信二:如何实现进程间通信及其分类三:通信方式1-共享存储(共享内存)(1)课本基础内容(2)补充-Linux中的进程通信四:通信方式2-管道(1)管道是什么(2)匿名管道A:读端和写端B:建立匿名管道的函数C:最简单的进程间通信-演示D:管道四大特性E:管道的特点F:从内核角度理解管道G:管道总结(3)命名管道A:命名管道和匿名管道的区别B:如何创建命名管道C:演示-管道实现服务端和客户端的通信五:通信方式3-消息队列一:什么是进程通信“微信想要获取手机存储权限”这就是一个典型的原创 2021-10-26 22:44:47 · 2142 阅读 · 1 评论 -
(王道408考研操作系统)第二章进程管理-第一节5:线程的概念
文章目录一:引导二:区别“进程”、“线程”和“轻量级进程”(1)进程和线程的关系(2)Linux中没有真正意义上的线程(3)轻量级进程-LWP三:线程的优缺点(1)优点(2)缺点四:线程vs进程五:线程实现方式一:引导注意以下的task_struct是Linux中的PC可以观看下面的视频有一个大致的了解 【操作系统】进程和线程的区别 前面说过,创建一个进程通常会包含以下操作原创 2021-10-26 23:18:23 · 1638 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第二节1:调度的基本概念和层次
文章目录一:调度的基本概念二:调度层次(1)高级调度(作业调度)(2)中级调度(内存调度)(3)低级调度(进程调度)总结三:进程调度的时机(1)需要进行进程调度与切换的情况(2)不能进行进程调度与切换的情况一:调度的基本概念多道程序系统中,进程数量往往大于处理机的个数,因此进程争用处理机的情况也在所难免处理机调度的目的就是以满足系统目标(如响应时间、吞吐率、处理器效率)的方式通过一定算法(公平、高效),把进程分配到一个或多个处理机上执行,以实现进程并发执行二:调度层次(1)高级调度(作业调度)高原创 2021-10-29 23:01:30 · 1717 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第二节4:调度算法评价指标
不同的调度算法具有不同的特性,在选择调度算法时,必须考虑算法的特性。为了比较处理机调度算法的性能,人们提出了很多评价准则,下面介绍其中主要的几种:CPU利用率:指CPU处于忙碌状态的时间占比。因此CPU的利用率要尽可能的高系统吞吐量:表示单位时间内内CPU完成作业的数量。尽可能要用少的时间处理更多作业长时间需要消耗较长的处理机时间,因此会降低系统的吞吐量;对于短作业,他们所需要消耗的处理时间较短,因此能提高系统的吞吐量周转时间:是指作业提交到作业完成所经历的时间,是作业等待、在就绪队列中排原创 2021-10-30 23:13:24 · 1346 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第二节5:调度算法详解1(FCFS、SJF和HRRN)
;llp原创 2021-11-03 00:04:27 · 1931 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第二节6、7:调度算法详解2(RR、HPF和MFQ)
文章目录一:时间片轮转调度算法(RR)进程调度算法也称为CPU调度算法,操作系统内存在着多种调度算法,有的调度算法适用于作业调度,有的调度算法适用于进程调度,有的两者都适用。常见的调度算法有(本节介绍适合于分时系统的调度算法):时间片轮转调度算法最高优先级调度算法多级反馈队列调度算法一:时间片轮转调度算法(RR)算法思想:公平地、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以的得到响应。按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(Quantum),若进程未在一个时间片原创 2021-11-03 23:15:54 · 3913 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第三节1:进程同步与互斥的基本概念
文章目录一:进程同步的概念二:进程互斥一:进程同步的概念说到同步不难想到异步,因为异步是操作系统的四个特征之一:是指在多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程的执行不能做到一气呵成,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性而在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的制约关系,为了协调进程之间的相互制约的关系,引入了 进程同步 的概念。例如,操作系统在计算“1+2×3”时会产生了加法进程和乘法进程这两个进程,如果想要让最后的运算结果正确,那么原创 2021-11-05 23:07:45 · 1911 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第三节2:实现进程互斥的软件方法
每个进程进入临界区的权限只能被另一个进程所赋予。同一时刻最多只允许一个进程访问临界区。检查当前有没有别的进程想进入临界区。标记各进程是否想要进入临界区。空闲让进、忙则等待、有限等待。,因此一定会导致两个进程。先设置自己的标志后再设置。如果一直不访问临界区。原创 2021-11-08 23:04:10 · 1509 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第三节3:实现进程互斥的硬件方法
文章目录一:中断屏蔽方法二:TestAndSet指令(TSL)三:swap指令(exchange)一:中断屏蔽方法思想:当一个进程正在使用处理机执行它的临界区代码时,为了防止其他进程进入临界区进行访问的,直接“暴力的”禁止一切中断发生,或称之为屏蔽中断、关中断。因为CPU只在发生中断时引起进程切换优缺点优点: 简单、高效缺点: 不适用于多处理机,限制了处理机交替执行程序的能力,因此执行的效率会明显降低;且只适用于内核进程,不适用于用户进程(因为开关中断指令属于特权指令)二:TestAndS原创 2021-11-09 23:55:15 · 1379 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第三节4:信号量机制(整型、记录型信号量和P、V操作)
文章目录一:信号量是什么二:整型信号量三:记录型信号量可以看出,不管是进程互斥的软件实现方法还是硬件实现方法,他们都无法解决“让权等待”这个问题,也即处理会处于会处于忙等状态。而信号量则是一种功能较强的机制,可以有效的互斥与同步的问题一:信号量是什么信号量:本质就是一个变量(分为整形和记录型两种),表示系统中某种资源的数量。控制信号量有两种原子操作:P操作(wait(S)原语):这个操作会把信号量减去1,相减后如果信号量<0则表示资源已经被占用,进程需要阻塞;相减后如果信号量≥0\ge0≥原创 2021-11-11 00:11:24 · 2187 阅读 · 2 评论 -
(王道408考研操作系统)第二章进程管理-第三节5:用信号量实现进程互斥、同步和前驱关系
文章目录一:使用信号量实现进程互斥二:使用信号量实现进程同步三:使用信号量实现前驱关系一:使用信号量实现进程互斥思想:1:分析并发进程的关键活动,划定临界区2:设置互斥信号量mutex,初值13:在临界区之前执行P操作3:在临界区之后执行V操作具体描述:可用如下描述大致逻辑,有两个进程P1P_{1}P1和P2P_{2}P2semaphore mutex=1;//互斥信号量P1(){ //其他代码 P(mutex);//进入临界区前加锁 临界区代码 V(mutex);//原创 2021-11-11 23:33:19 · 1691 阅读 · 3 评论 -
(王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题
在现实生活中,当我们缺少某些生活用品时,就会到超市去购买。当你到超市时,你的身份就是消费者,那么这些商品又是哪里来的呢,自然是供应商,那么它们就是生产者,而超市在生产者与消费者之间,就充当了一个交易场所。正是这样的方式才使得人类的交易变得高效,生产者只需要向超市供应商品,消费者只需要去超市购买商品计算机是现实世界的抽象,因此像这种人类世界的模型,自然也被引入到了计算机当中。原创 2021-11-12 23:30:20 · 1556 阅读 · 3 评论 -
(王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题
注意:生产者与消费者问题Linux系统编程专栏有案例讲解Linux系统编程39:多线程之基于阻塞队列生产者与消费者模型Linux系统编程40:多线程之基于环形队列的生产者与消费者模型本文接:(王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题文章目录一:问题描述二:问题分析三:代码实现一:问题描述桌子上有一个盘子,每次只能向其中放入一个水果爸爸专门放入苹果,妈妈则专门放入橘子儿子只吃盘子中的橘子,女儿则只吃苹果只有盘子空时,爸爸或妈妈才可以放入水果;原创 2021-11-14 00:14:11 · 1562 阅读 · 1 评论 -
(王道408考研操作系统)第二章进程管理-第三节8:经典同步问题之吸烟者问题
对于生产者,其内部进行逻辑判断,利用取余的方式轮流放置组合一、二和三,放置完成之后如果消费者不执行V(finish),它将会在P(finish)处被阻塞。对于这三个消费者,他们各自在进入时首先会检查是否有自己的组合,如果没有将会被阻塞,如果有,执行完毕之后使用V(finish)通知生产者生产。,另外需要注意生产者向桌子上放得材料要理解为单位“1”,也可以说是一个组合。原创 2021-11-16 00:06:35 · 1350 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第三节9:经典同步问题之读者写者问题
(王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题((王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题(王道408考研操作系统)第二章进程管理-第三节8:经典同步问题之吸烟者问题文章目录一:问题描述二:问题分析三:代码实现一:问题描述读者和写者两组并发进程,共享一个文件,它们访问时有如下特点多个读进程访问共享数据时不会产生副作用如果某个写进程和其他进程(读进程或写进程)同时访问共享数据时,会导致数据不一致的错误.原创 2021-11-17 00:09:34 · 1348 阅读 · 8 评论 -
(王道408考研操作系统)第二章进程管理-第三节10:经典同步问题之哲学家进餐问题
本文接:(王道408考研操作系统)第二章进程管理-第三节6:经典同步问题之生产者与消费者问题((王道408考研操作系统)第二章进程管理-第三节7:经典同步问题之多生产者与多消费者问题(王道408考研操作系统)第二章进程管理-第三节8:经典同步问题之吸烟者问题一:问题描述一张圆桌上坐着5名哲学家,每两个哲学家之间的桌上摆一根筷子,桌子中间是一碗米饭哲学家只干两件事情:思考和进餐哲学家在思考时,不影响别人哲学饥饿时,才试图拿起左、右两根筷子(一根一根拿起),如果筷子已经在他人的手上,则需原创 2021-11-18 00:10:54 · 1307 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第三节11:管程(Monitor)及条件变量
文章目录一:管程的定义和基本特征二:条件变量三:补充-Linux中实现线程同步的条件变量函数四:Java中的管程机制通过前面经典同步问题的讲解,大家也可能体会到了这一点,信号量机制的确为我们提供了一种安全可靠的实现进程同步的办法,但是其对应的PV操作却在编写程序上带来了一定困难,哪怕顺序写错都有可能造成死锁等严重的问题,如果程序员的功力不深,很难驾驭这种操作于是正是基于此,产生了一种高级同步工具——管程,它保证了进程互斥、无需程序员自己实现互斥,从而降低了死锁发生的可能性,同时它也提供了条件变量,可以让原创 2021-11-19 23:57:46 · 1955 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第四节1:死锁相关概念
一:死锁的基本概念(1)死锁定义死锁:所谓死锁,是指多个进程因竞争资源而造成的一种互相等待的局面,若无外力作用,这些进程将无法向前推进生活中死锁的例子:1:我拿了你房间的钥匙,而我在自己的房间;你拿了我的房间的钥匙,而你又在自己的房间。如果我要从自己的房间走出去,必须要拿到你手中的钥匙,但是你要走出来又必须要拿到我手中的钥匙,于是形成了死锁2:王道视频课中的这个例子也比较好理解(2)死锁、饥饿和死循环的区别概念:死锁:各个进程互相等待对方手中的资源,导致各进程都阻塞,无法向前推进饥饿:原创 2021-11-20 23:57:29 · 1753 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第四节2:死锁处理策略之预防死锁
文章目录一:破坏互斥条件二:破坏不可剥夺条件三:破坏持有并等待条件四:破坏循环等待条件预防死锁:破坏死锁产生的四个必要条件中的一个或几个互斥条件持有并等待条件不可剥夺条件循环等待条件(注意发生死锁一定有循环等待,但是发生循环等待未必死锁)一:破坏互斥条件互斥条件是指只有对必须互斥使用的资源抢夺时才可能导致死锁。比如打印机设备就可能导致互斥,但是像内存、扬声器则不会破坏互斥条件:如果把只能互斥使用的资源改造为允许共享使用,则系统不会进入死锁状态。但并不是所有资源都可以改造为成共享使用的资原创 2021-11-21 23:47:06 · 1685 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第四节2:死锁处理策略之避免死锁(银行家算法)
一:安全状态、安全序列避免死锁:允许进程动态申请资源,但系统在进行资源分配的时候,应该先计算此次分配的安全性,如若此次分配不会导致系统进入不安全状态,则允许分配,否则等待安全状态和安全序列:是指系统能按照某种进程推进顺序(P1P_{1}P1,P2P_{2}P2,…,PnP_{n}Pn)为每个进程分配其所需要的资源,直到满足每个进程资源的最大需求,使每个进程都可以额顺序完成。其中(P1P_{1}P1,P2P_{2}P2,…,PnP_{n}Pn)称之为安全序列。只要能找出一个安全序列,系统就原创 2021-11-23 23:42:45 · 1527 阅读 · 0 评论 -
(王道408考研操作系统)第二章进程管理-第四节3:死锁处理策略之检测和解除
文章目录一:死锁检测算法(1)资源分配图(2)死锁定理二:死锁解除算法如果系统中既不采取预防死锁的措施,也不采取避免死锁的措施,系统就极有可能发生死锁,在这种情况下系统应当提供两个算法:死锁检测算法:用于检测系统状态,以确定系统中是否发生了死锁死锁解除算法:当认定系统中已经发生了死锁,利用该算法可将系统从死锁状态中解脱出来一:死锁检测算法为了能对系统是否已经发生了死锁进行检测,必须使用某种数据结构来保存资源的请求和分配信息-资源分配图提供一种算法,利用上述信息来检测系统是否进入了死锁状态原创 2021-11-24 23:26:23 · 1248 阅读 · 0 评论 -
(王道408考研操作系统)第三章内存管理-第一节1:内存基础知识、程序编译运行原理
注意:本节内容和《计算机组成原理》“存储器”那一部分内容相关性很强,组成原理是从硬件角度,操作系统是从软件角度。因此如果没有学习过这部分的同学,强烈建议先看这一部分王道计算机组成原理笔记本文主要会涉及以下必要的内存知识文章目录一:内存及其作用一:内存及其作用内存:内存又称之为主存。是一种硬件设备,作为CPU和硬盘的缓冲区,用于解决其速度不匹配的问题,提高整机性能。程序执行前需要放入内存才能运行...原创 2021-11-26 23:29:27 · 2127 阅读 · 1 评论 -
(王道408考研操作系统)第三章内存管理-第一节2:内存管理的基本概念
文章目录一:内存空间的分配与回收二:内存空间的扩展三:地址转换四:内存保护(1)进程地址空间(2)内存保护(3)实现内存保护的方法内存管理(Memory Management):是操作系统设计中最重要和最复杂的内容之一,操作系统必须对内存进行合理的管理。主要由以下功能内存空间的分配与回收内存空间扩展地址转换内存保护一:内存空间的分配与回收操作系统需要负责内存空间的分配与回收,例如如何标记哪些区域已经被划分出去了,哪些又还是空闲的?当进程运行结束之后,如何将进程占用的内存空间回收?进原创 2021-11-27 23:41:11 · 1565 阅读 · 1 评论 -
(王道408考研操作系统)第三章内存管理-第一节3:覆盖与交换
文章目录一:覆盖(1)基本思想(2)优缺点覆盖与交换技术是在多道程序环境下用来扩充内存的两种方法一:覆盖覆盖技术:主要用来解决程序大小超过物理内存总和的问题(1)基本思想思想:将程序分为多个段(多个模块)需要常驻内存的段放在固定区,调入后不再调出不常用的段放在覆盖区,需要用到时调入,用不到时调出具体描述如下有一段程序,其中A模块会依次调用B模块和C模块(也就是说A不会同时调用B和C),B模块会调用D模块,而C模块又会依次调用E模块和F模块。因此对于A模块来说,它要单独占用空间对原创 2021-11-28 23:40:27 · 1726 阅读 · 0 评论 -
(王道408考研操作系统)第三章内存管理-第一节4:连续分配管理方式(单一连续、固定分区和动态分区分配)
文章目录一:单一连续分配二:固定分区分配(1)分区大小相等与分区大小不等连续分配方式是指为一个用户程序分配一个连续的内存空间,主要有:单一连续分配固定分区分配动态分区分配一:单一连续分配单一连续分配:内存被分为系统区和用户区。系统区位于内存低地址处,用于存放操作系统相关数据;用户区位于内存高地址处,用于存放用户进程相关数据。并且内存中仅有一道用户程序,用户程序独占整个用户区空间优缺点优点:实现简单;无外部碎片;可以采用覆盖技术扩充内存;不一定需要采取内存保护缺点:只能用于单用户、单原创 2021-11-30 23:56:05 · 1805 阅读 · 0 评论 -
(王道408考研操作系统)第三章内存管理-第一节5:动态分区分配算法(首次适应、和邻近适应)
文章目录一:首次适应算法(First Fit)二:最佳适应算法(Best Fit)三:最坏适应算法(Worst Fit)四:邻近适应算法(Next Fit)总结动态分区分配算法:用于研究当很多个空闲分区都能满足需求时,应该选择哪个分区分配的问题。其实这个问题需要参照的动态分区分配算法,共有如下四种首次适应算法(First Fit)最佳适应算法(Best Fit)最坏适应算法(Worst Fit)邻近适应算法(Next Fit)一:首次适应算法(First Fit)算法思想:每次都从低地址原创 2021-12-02 00:24:01 · 2224 阅读 · 2 评论 -
(王道408考研操作系统)第三章内存管理-第一节6-1:非连续分配管理方式之基本分页存储管理
123原创 2021-12-03 19:16:32 · 2144 阅读 · 2 评论