HarmonyOS鸿蒙最新操作系统思维导图---(零基础---思维导图详细版本及知识点),2024年最新HarmonyOS鸿蒙工程师面试题及答案

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 第二章 进程与线程

在这里插入图片描述

1.进程的定义: 进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和运行调度的基本单位。

2.进程控制块的概念及其内容
一个进程创建后,需要有自己对应的程序和该程序运行时所需的数据,还需要数据结构来刻画进程的动态特征,描述进程状态,占有资源情况,调度信息等,通常使用一种称为进程控制块的数据结构来刻画。
一个进程要由3个部分组成:程序、数据集合以及进程控制块。由于进程的状态在不断发生变化,某时刻进程的内容及其状态集合称之为进程映像(Process Image),其包括进程控制块,进程程序段,进程核心栈和进程数据段4个要素。

3.(1)进程控制块是随着进程的创建而建立,随着进程的撤销而取消的。
(2)PCB是进程存在的唯一标志,是操作系统用来记录和刻画进程状态及有关信息的数据结构。
(3)进程控制块应常驻内存,其包括进程执行时的情况以及进程让出CPU之后所处的状态、断点等信息。

4.进程创建的原因
(1)用户登录。在一个交互式环境中,当一个新用户在终端键入登录命令后,若是合法用户,系统为该用户建立一个进程。
(2)提供服务。当运行中的用户程序提出某种请求后,系统将专门创建一个进程来提供用户所需要的服务。
(3)作业调度。在批处理系统中,当作业调度程序按一定的算法调度到某作业时,操作系统认为有资源可运行,便将该作业装入内存,为它分配必要的资源,并立即为它创建进程。
(4)应用请求。基于应用进程的需求,由它自己创建一个新进程,以便使新进程以并发运行的方式完成特定的任务。

5.三状态转换图
在这里插入图片描述
6.三状态模型
(1)执行态(running):进程占用处理器并执行的状态。在单处理器系统中,由于处理器的惟一性,至多只能有一个进程处于执行状态。
(2)就绪态(ready):进程具备执行条件,即已分配到除处理器以外的所有必要的资源,等待系统分配处理器以便其运行的状态。
(3)阻塞态(blocked):正在执行的进程由于发生某事件(如I/O请求,申请缓冲区失败)暂时无法继续执行时的状态,进程的执行受阻,此时引起进程调度,OS把处理机分配给另一个就绪进程,而让阻塞的进程处于暂停状态

7.引起进程状态转换的具体原因有以下几点。
(1)就绪态—执行态。进程调度程序根据调度算法把处理器分配给某个就绪进程,并把控制转到该进程,使它由就绪态变为执行态,进程投入运行。
(2)执行态—就绪态。执行中的进程因所分配给它的时间片用完而被暂停运行时,该进程便由执行态回到就绪态。
(3)执行态—阻塞态。因发生某事件而使进程的执行受阻(例如等待文件的输入),使得进程无法继续执行,该进程将由执行态变为阻塞态。
(4)阻塞态—就绪态。阻塞进程在所等待的事件完成后,并不能立即投入运行,需要通过进程调度程序统一调度才能获得处理器,此时将该进程的状态变为就绪态继续等待处理机。

8.五状态转换
在这里插入图片描述

9.(1)新建态(new)。进程刚建立,还没有被OS提交到可运行进程队列。
(2)终止态(exit)。进程已正常或异常结束,被OS从可运行进程队列中释放出来。
处于终止态的进程不再被调度执行,在与该任务相关的表格或其它信息抽取完毕以后,OS也不必再保存与进程有关的信息。

10.( 1)新建态—就绪态。对一个处于新建态的进程,在就绪队列能够接纳新进程时,将被系统接收并进入就绪队列,此时的进程状态就从新建态转为就绪态。
(2)执行态—终止态。对于一个处于执行状态的进程,当其正常执行结束,或者因为发生了某种事件而被异常结束

11.七状态模型

在这里插入图片描述

12.(1)挂起就绪态(ready suspend)。进程具备运行条件,但目前在辅助存储器中,只有当进程被兑换到主存时才能调度执行。
(2)挂起阻塞态(blocked suspend)。进程正在等待某一事件发生且进程在辅助存储器中。

13.线程(Thread)是现代操作系统中出现的一个重要技术,目前流行的操作系统几乎都采用了线程机制。线程的引入进一步提供了程序执行的并发性,提高了系统的效率。
在传统的操作系统中,进程是系统进行资源分配和调度的基本单位,以进程为单位分配存放其映像所需要的虚地址空间,执行所需要的主存空间,完成任务需要的其他各类外围设备资源和文件。

14.所谓线程,是进程内的一个相对独立的,可独立调度和指派的执行单元。是进程的组成部分。线程的组成部分有:
(1)线程的唯一标识符及线程状态信息,即线程控制块(TCB)。
(2)未运行时所保存的进程上下文,可把线程看成进程中一个独立的程序计数器。
(3)核心栈,在核心态工作时保存参数,在函数调用时返回地址,等等。
(4)用于存放线程局部变量和用户栈的私有存储区。

15.线程是个动态的概念,也有生命周期,在这一过程中它具有各种状态,虽然在不同的操作系统中,线程的状态不完全相同,但下述三个关键的状态是共有的。
(1)就绪状态:线程已具备执行条件,调度程序可以为其分配一个CPU执行。
(2)运行状态:线程正在某一个CPU内运行。
(3)阻塞状态:线程正在等待某个事件发生,则被阻塞。

16.线程具有以下一些特征。
(1)线程是进程中的一个相对可独立运行的单元。
(2)线程是操作系统中的基本调度单位,在线程中包含调度所需要的基本信息。
(3)在具备线程机制的操作系统中,进程不再是调度单位,一个进程中至少包含一个线程,以线程作为调度单位。
(4)线程自己并不拥有资源,它与同进程中的其它线程共享该进程所拥有的资源。由于线程之间涉及资源共享,所以需要同步机制来实现进程内多线程之间的通信。
(5)与进程类似,线程还可以创建其他线程,线程也有生命周期,也有状态的变化。

17.周转时间:从作业提交给系统到作业完成为止的这段时间间隔。
周转时间包括四部分:作业在外存后备队列上等待(作业)调度的时间+进程在就绪队列上等待进程调度的时间+进程在CPU上执行的时间+以及进程等待I/O操作完成的时间。
一个作业的周转时间等于作业的完成时间-到达时间,或者是执行时间+等待时间。

18.抢占式优先级调度方式规定首先把处理机分配给优先权最高的进程,使该进程占用CPU执行。但在其执行期间,如果系统中进入了一个优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理器分配给新到的优先级最高的进程。这种调度方式的优点是能更好地满足紧迫作业的要求,因此适用于要求比较严格的实时系统,以及对性能要求较高的批处理和分时系统。
在优先级调度算法中,进程的优先级一般由优先数决定。

19.静态优先数是指进程在创建时就获得一个整数数值,此数值在进程的整个运行过程中固定不变。优先数的大小反映进程优先级的高低。有的系统规定越大的优先数其优先级越高,当然也可以反过来规定。优先数的决定一般取决于进程类型,资源需求量,紧迫程度和用户需求等。

20.动态优先数是指进程的优先级随着进程的推进可以动态改变。现代操作系统中,采用优先级调度算法的系统大多使用的是动态优先数的策略。动态优先数的选择可以根据进程占有CPU的时间长短以及就绪进程等待CPU的时间长短来确定。

21.用户级线程调度和核心级线程调度的主要区别如下。
(1)用户级线程间切换只需少量机器指令,速度较快;而核心级线程间切换需要完整的进程上下文切换,修改内存映像,高速缓存失效,因而速度慢。系统开销大。
(2)用户级线程可使用专为某用户态程序定制的线程调度程序,应用定制的线程调度程序能够比内核更好地满足用户态程序需要。核心级线程在内核中完成线程调度,内核不了解每个线程的作用,不能做到这一点。


  • 第三章 进程并发控制

在这里插入图片描述

1.把并发进程中与共享变量有关的程序段称为“临界区”

2.共享变量所代表的资源称为“临界资源”

3.多个并发进程中涉及相同共享变量的那些程序段称为“相关临界区”

4.若干进程共享某一资源(变量)的相关临界区的管理应满足如下三个要求:
(1)一次最多让一个进程在临界区执行,当有进程在临界区执行时,其他想进入临界区执行的进程必须等待。

(2)任何一个进入临界区执行的进程必须在有限的时间内退出临界区,即任何一个进程都不应该无限地逗留在自己的临界区中。

(3)不能强迫一个进程无限地等待进入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区。

5.进程的互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其他要使用该资源的进程必须等待,直到占用资源者释放该资源。

6.信号量:在操作系统中,信号量S是一个整数。当S大于等于零时,代表可供并发进程使用的资源实体数;当S小于零时,则|S|表示正在等待使用资源实体的进程数。建立一个信号量必须说明此信号量所代表的意义并且赋初值。除赋初值外,信号量仅能通过PV操作来访问。

7.信号量按其用途可分为两种:
(1)公用信号量,联系一组并发进程,相关的进程均可在此信号量上进行P操作和V操作,初值常常为1,用于实现进程互斥,也称为互斥信号量。
(2)私有信号量,联系一组并发进程,仅允许拥有此信号量的进程执行P操作,而其他相关进程可在其上施行V操作。初值常常为0或正整数,多用于实现进程同步,也称为资源信号量。

8.我们把不可被中断的过程称为“原语”,于是P操作和V操作实际上是“P操作原语”和“V操作原语”。P、V操作也分别称为Wait()和Signal()操作。

9.用PV操作可实现并发进程的互斥,其步骤为:
(1)设立一个互斥信号量S表示临界区,其取值范围为1,0, -1,…,其中S =1表示无并发进程进入S临界区;S=0表示已有一个并发进程进入S临界区;S等于负数表示已有一个并发进程进入S临界区,且有|S|个进程等待进入S临界区。S的初值为1。
(2)用PV操作表示对S临界区的申请和释放,在进入临界区之前,通过P操作进行申请,在退出临界区之后,通过V操作释放。

10.程是由一个或多个过程、一个初始化序列和局部数据组成的软件模块,其主要特点如下:
( 1)局部数据变量只能被管程的过程访问,任何外部过程都不能访问。
(2)一个进程通过调用管程的一个过程进入管程。
(3)在任何时候,只能有一个进程在管程中执行,调用管程的任何其他进程都被阻塞,以等待管程可用。

11.高级通信机制可归结为三大类:
共享存储器系统
消息传递系统
管道通信系统

12.消息传递系统的通信方式属于高级通信方式。根据实现方式的不同可分为直接传递方式和间接传递方式。

13.管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称为pipe文件。

向管道(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入管道;而接受管道输出的接收进程(即读进程),可从管道中接收数据。由于发送进程的接收进程是利用管道进行通信的,故又称为管道通信。

14.管道通信机制必须提供以下三方面的协调能力:
( 1)互斥。当一个进程正对pipe进行读/写操作时,另一个进程必须等待。
(2)同步。当写(输入)进程把一定数量数据写满pipe时,应睡眠等待,直到读(输出)进程取走数据后,再把它唤醒。当读进程读一空pipe时,也应睡眠等待,直至写进程将数据写入管道后,才将它唤醒。
(3)判断对方是否存在。只有确定对方已存在时,方能进行通信。

15.直接传递是指发送进程利用操作系统所提供的发送命令直接把消息发送给接收进程,而接收进程则利用接收命令直接从发送进程接收消息。
在直接通信方式下,企图发送或接收消息的每个进程必须指出信件发给谁或从谁那里接收消息

16.send (P,消息):把一个消息发送给进程P。
receive (Q,消息):从进程Q 接收一个消息。
进程P和Q通过执行这两个操作而自动建立了一种联系,并且这种联系仅仅发生在这一对进程之间。

17.在利用信箱通信时,在发送进程和接收进程之间存在着下述的四种关系:
1)一对一关系。即可以为发送进程和接收进程建立一条专用的通信链路。使它们之间的交互不受其他进程的影响。
2)多对一关系。允许提供服务的进程与多个用户进程之间进行交互,也称为客户/服务器交互。
3)一对多关系。允许一个发送进程与多个接收进程进行交互,使发送进程可用广播形式,向接收者发送消息。
4)多对多关系。允许建立一个公用信箱,让多个进程都能向信箱中投递消息,也可从信箱中取走属于自己的消息。


  • 第四章 死锁

在这里插入图片描述
1.为了解决死锁问题,可使用下面几种对策。
(1) 死锁的预防:破坏产生死锁的四个必要条件中的一个或多个,使系统不会进入死锁状态。
(2)死锁的避免:在资源动态分配过程中使用某种算法防止系统进入不安全状态,从而避免死锁的发生。
(3)死锁的检测:通过系统所设置的检测机构,及时地检测出死锁的发生,并精确地确定与死锁有关的进程和资源,然后,采取适当措施,从系统中将已发生的死锁清除掉。
(4)死锁的解除:撤销或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞态的进程,使之转为就绪态,以继续运行。

2.死锁检测算法
(1)如果能在资源分配图中找出一个既不阻塞又非独立的进程,它在有限的时间内有可能获得所需资源类中的资源继续执行,直到运行结束,再释放其占有的全部资源。
(2)可使资源分配图中另一个进程获得前面进程释放的资源继续执行,直到完成父释放出它所占用的所有资源,相当于又消去了图中若干请求边和分配边。
(3)如此下去,经过一系列简化后,若能消去图中所有边,使所有进程成为孤立节点,则该图是可完全简化的。

3.从死锁中恢复
(1) 撤销进程
解除死锁最直接的方法是终止一个或若干个进程,系统会回收分配给被终止进程的所有资源。在极端情况下,这种方法可能造成除一个死锁进程外,其余的死锁进程全部被撤销。
(2)剥夺资源 
利用剥夺资源的方法处理死锁,需要考虑以下几点:
1)选择剥夺哪些进程的哪些资源。与撤销进程相同,必须确定剥夺顺序确保代价最小化。
2)对被剥夺资源的进程的安排。显然被剥夺资源的进程缺少所需要的资源,不能正常执行。建立检查点,必须将进程回到某个安全状态,以便从该状态重启进程。
3)保证资源不会总是从同一个进程中被剥夺。这就需要确保一个进程只能有限次的剥夺资源,最常用的方法是在代价因素中加上回滚次数。

4.银行家算法
把矩阵A11ocation和Need矩阵中的每一行当中一个向量,针对进程Pi已分配和还需要的向量分别写成A11ocationi和Needi。
设Requesti为进程Pi的请求向量,如果Requesti[j]=k,那么进程Pi申请k个Rj类资源。银行家算法如下。
(1)申请量超过最大需求量时出错,否则转步骤(2)。
(2)当申请量超过当前系统所拥有的可分配量时,挂起进程,该进程处于阻塞态,否则转步骤(3)。
(3)系统对进程Pi请求的资源进行试探性分配,执行
Allocation[i,* ]= Allocation[i, * ]+Requesti[ * ]
Available[ * ]=Available[*]-Requesti[ * ]
Need[i, * ]=Need[i, * ]-Requesti[ * ]

5.死锁产生的根本原因有两个:一是系统中的资源数目不能满足多个并发进程的全部资源需求,各进程竞争资源,如系统对资源分配不合理就会产生死锁,简记为资源竞争:二是并发执行进程间的推进顺序不合理也可能产生死锁,简记为推进顺序非法。

6.系统产生死锁有四个必要条件:互斥条件、占有且等待条件、不抢占条件和环路等待条件。解决死锁的方法有:死锁检测和恢复、避免死锁、预防死锁。死锁的检测和恢复表示对资源的申请和分配不施加任何限制,但必须建立检测机制,周期性地检测是否发生死锁,如果检测发现死锁则采取措施恢复死锁。

7.活锁和饥饿是同死锁非常相似的问题,但在技术上不同,活锁包含的是实际并没有被锁住的进程,而饥饿可以通过先来先服务的分配策略来避免。

8.死锁的避免采用动态分析和检测新的资源请求和资源的分配情况,以确保系统始终处于安全状态,其中最著名的算法是银行家算法。死锁的预防包括一切都是用假脱机技术(破坏互斥条件),资源一次性分配(破坏占有且等待条件);抢占资源(破坏不抢占条件);资源有序分配法(破坏环路等待条件)。


  • 第五章 内存管理

在这里插入图片描述

1.虚拟内存:中心思想是将物理主存扩大到便宜、大容量的磁盘上,即将磁盘空间看做主存空间的一部分。
用户程序存放在磁盘上就相当于存放在主存内。用户程序既可以完全存放在主存,也可以完全存放在磁盘上,当然也可以部分存放在主存、部分存放在磁盘。而在程序执行时,程序发出的地址到底是在主存还是在磁盘则由操作系统的内存管理模块负责判断,并到相应的地方进行读写操作。

2.固定地址的内存管理其缺点也很明显:
(1)整个程序要加载到内存空间中去。这样将导致比物理内存大的程序无法运行。
(2)只运行一个程序造成资源浪费。如果一个程序很小,虽然所用内存空间小,但剩下的内存空间也无法使用。
(3)可能无法在不同的操作系统下运行,因为不同操作系统占用的内存空间大小可能不一样,使得用户程序的起始地址可能不一样。这样在一个系统环境下编译出来的程序很可能无法在另一个系统环境下执行。

3.固定分区的管理就是将内存分为固定的几个区域,每个区域的大小固定。最下面的分区为操作系统占用,其他分区由用户程序使用。这些分区大小可以一样,也可以不一样。考虑到程序大小不一的实际情况,分区的大小通常也各不相同。当需要加载程序时,选择一个当前闲置且容量够大的分区进行加载

4.地址翻译:物理地址=虚拟地址+程序所在区域的起始地址

5.位图表示和链表表示的比较:
位图表示和链表表示各有优缺点。

(1)如果程序数量很少,那么链表比较好,因为链表的表项数量少。位图表示法的空间成本是固定的,它不依赖于内存中程序的数量。因此,从空间成本上分析,到底使用哪种表示法得看链表表示后的空间成本是大于位图表示还是小于位图表示而定。

(2)从可靠性上看,位图表示法没有容错能力。如果一个分配单元为1,你并不能肯定它应该为1,还是因为错误变成1的,因为链表有被占空间和闲置空间的表项,可以相互验证,具有一定的容错能力。

(3)从时间成本上,位图表示法在修改分配单元状态时,操作很简单,直接修改其位图值即可,而链表表示法则需要对前后空间进行检查以便做出相应的合并。例如,在图4-18所示的情况下,如果程序中间的那个程序(占用位置从11开始,长度为4)终止,则链表将如图4-19所示。如果是最前面的程序终止,则链表将如图4-20所示。

6.分区分配算法
(1)首次适应算法FF。 空闲分区按地址递增顺序排列,
找符合要求的第一分区。
(2) 循环首次适应算法,该算法是由首次适应算法演变而成的。
(3)最佳适应算法。空闲分区按大小递增顺序排列,
找符合要求的第一分区。
(4)最坏适应算法。空闲分区按大小递减顺序排列,
找符合要求的第一分区。
(5) 快速适应算法(quick fit)
该算法又称为分类搜索法,是将空闲分区根据其容量大小进行分类,对于每一类具有相同容量的所有空闲分区,单独设立一个空闲分区链表,这样,系统中存在多个空闲分区链表,同时在内存中设立一张管理索引表,该表的每一个表项对应了一种空闲分区类型,并记录了该类型空闲分区链表表头的指针。

7.存储管理的基本功能有:主存空间的分配与回收、地址转换、主存空间的共享与保护、主存空间的扩充。

8.在多道程序设计系统中,为了方便程序编制,用户程序中使用的地址是逻辑地址,而CPU则是按物理地址访问主存、读取指令和数据。为了保证程序的正确执行,需要进行地址转换。地址转换又称为重定位,有静态重定位和动态重定位。采用动态重定位的系统支持程序的浮动。

9.现代操作系统支持多道程序设计,满足多道程序设计最简单的存储管理技术是分区管理,有固定分区管理和可变分区管理。分区管理中,当主存空间不足时,交换技术和覆盖技术可以达到扩充主存的目的。


  • 第六章 页式和段式内存管理

在这里插入图片描述

1.在分页内存管理系统中,允许将进程的各页离散地装入内存的任何空闲物理块中,这样就出现了进程页号连续,而物理块号不连续的情况。为了找到每个页面在内存中对应的物理块,系统为每个进程建立了一张页面映射表,简称页表。

2.进程的所有页面依次在页表中有一个页表项,记载着相应页面在内存中对应的物理块号。当进程执行时,按照逻辑地址中的页号在页表中查找对应的页表项,找到该页号在内存中对应的物理块号。

3.页表的作用就是实现页号到物理块号的地址映射,即逻辑地址到物理地址的映射。

4.采用分页内存管理技术不会产生外部碎片,但是可能产生内部碎片。由于分页内存管理系统的内存分配是以物理块为单位进行的,如果进程要求的内存不是页大小的整数倍,那么,最后一个物理块就用不完,从而导致页内碎片的出现。

5.分页系统的另一个优点是可以共享共同的代码,这一点对分时系统特别重要。

6.快表:为了提高从逻辑地址向物理地址转换过程中地址的变换速度,可在地址变换机构中增设一个具有并行查询能力的特殊高速缓冲存储器,又称为“联想寄存器”(Associative Memory)或称为“快表”。在IBM系统中称为TLB(Translation Lookaside Buffer),存放当前访问的那些页表项。

7.具有快表的地址变换步骤如下:
(1)在CPU给出有效地址后,地址变换机构自动将页号P送入高速缓冲寄存器中,并将此页号与高速缓存中的所有页号进行比较。
(2)如果其中有与此页号匹配的,便表示所要访问的页表项在快表中。
(3)直接从快表中读出该页号所对应的物理块号,并送到物理地址寄存器中。
(4)如果在快表中未找到相同的页表号,则必须再访问内存中的页表,从页表中找到该页号所对应的页表项后,把从页表项中读出的物理块号送入地址寄存器。
(5)同时,将此页号所对应的页表项存入快表中,即重新修改快表。

8.内存抖动
抖动产生的原因:
当主存空间已经装满,而又需要转入新的页面时,必须按照一定的算法把已经在内存中的一些页面调出,这个工作称为页面替换。因此,页面更新算法就是用来确定应该淘汰哪些页面的算法,也称为淘汰算法。

9.防止抖动的方法
防止抖动发生或者限制抖动影响有多种方法。由于抖动产生的原因,这些方法都是基于调节多道程序的度。
(1)采用局部置换策略。
(2)挂起某些进程。
当出现CPU利用率很低而磁盘I/O非常频繁的情况时,可能因为多道程序度太高而造成抖动。为此,可以挂起一个或几个进程,腾出内存空间供抖动进程使用,从而消除抖动现象。被挂起进程的选择策略有多种,如选择优先权最低的进程、缺页进程、最近激活的进程、驻留集最小的进程、最大的进程。
(3)采用缺页频度法。
抖动发生时,缺页率必然很高,因此可以通过控制缺页率来预防抖动。如果缺页率太高,表明进程需要更多的内存物理块;如果缺页率很低,表明进程可能占用了太多的内存物理块。这里规定一个缺页率,依次设置相应的上限和下限。如果实际缺页率超出上限值,就为该进程分配另外的内存物理块;如果实际缺页率低于下限值,就从该进程的驻留集中取走一个内存物理块。通过直接测量和控制缺页率,可以避免抖动。

10.段式内存管理的基本思想是:把程序按内容或过程(函数)关系分成段,每个段都有自己的名称。一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机制把段式虚拟地址转换成实际的内存物理地址。

11.分段内存管理系统中以段为单位分配内存,每段分配一个连续的内存区。由于各段长度不等,所以这些存储区大小不等。此外,同一进程包含的各段之间不要求连续。分段内存管理的内存分配与释放在作业或进程的执行过程中动态进行。首先,分段内存管理程序为一个进入内存准备执行的进程或作业分配部分内存,以作为该进程的工作区和放置即将执行的程序段。随着进程的执行,进程根据需要随时申请调入新段和释放旧段。

12.分页与分段管理的主要区别
(1)页是信息的物理单位,段是信息的逻辑单位。
(2)页的大小是由系统确定的,而段的长度是由用户程序确定的。
(3)分页的进程地址空间是一维的,即单一的线性空间;而分段的进程地址空间是二维的,由段号和段内地址两部分组成。

14.在段页式内存管理系统中,要对内存中的指令或数据进行一次存取,至少需要三次以上访问内存:
第一次访问内存:由段表地址寄存器得到段表的起始地址,从而访问段表,由此取出对应段的页表起始地址;
第二次访问内存:根据页表的起始地址访问页表,得到所要访问的物理地址;
第三次访问内存:根据得到的物理地址,访问内存中真正的物理单元。

15.虚拟内存
(1)常规存储器管理方式的特征
①一次性:作业全部装入内存后才能开始运行。
②驻留性:作业装入内存后,便一直驻留在内存中,直至作业运行结束。
(2)局部性原理
程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域。

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**


[外链图片转存中…(img-xBShWVRs-1715887049101)]
[外链图片转存中…(img-b2aDSo2F-1715887049101)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值