• 操作系统(OS) 基础知识


    名词解释

    1、操作系统

    操作系统是控制和管理计算机硬件和软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口和环境的程序集合。

    2、分布式系统

    分布式系统是网络操作系统的更高级的形式,是一个统一的操作系统,资源进一步共享,对用户是透明的。处于分布式系统的多个主机处于平等地位,无主从关系。处理能力增强,速度更快,可靠性增强。

    3、嵌入式系统

    嵌入式系统是在各种设备、装置或系统中完成特定功能的软硬件系统。它们是一个设备、装置或系统的一部分,这个设备、装置或系统可以不是"计算机"。由于它们被嵌入在各种设备,装置或者系统中,因此被称为嵌入式系统。

    4、并发

    多个事件在同一时间间隔内发生。

    5、微内核

    微内核把操作系统分成若干分别完成一组特定功能的服务进程,等待用户提出请求。而系统内核只实现操作系统的基本功能,将更多操作系统功能放在核心之外,作为独自的服务进程运行。

    6、进程

    进程是程序的执行过程,是系统进行资源分配和调度的一个独立单位。

    7、线程

    轻量级进程,是进程中的⼀个运行实体,是 CPU 调度的基本单位。

    8、进程控制块

    PCB是进程实体的一部分,是进程存在的唯一标识,它保存系统管理和控制进程所需的必要的信息,是进程动态特性的集中表现。

    9、进程同步

    在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,引入了进程同步的概念。存在逻辑关系的进程之间相互等待产生的制约关系。

    10、进程互斥

    相互无逻辑关系的进程之间竞争使用相同的资源发送的制约关系。亦称间接制约关系。当⼀个进程进⼊临界区使用临界资源时,另⼀个进程必须等待,当占用临界资源的进程退出临界区后,另⼀进程才允许去访问此临界资源。

    11、直接消息传递、间接消息传递

    直接消息传递:指发送进程利用OS所提供的发送原语,直接把消息发送给目标进程。

    简介消息传递:指发送进程和接收进程通过共享中间实体(称为信箱)的方式进行消息的发送和接收,从而完成进程间的通信。

    12、用户级线程、内核支持线程

    内核支持线程:是指在内核支持下运行的线程,它们的创建、阻塞、撤销和切换等都需要在内核空间实现;

    用户级线程:用户级线程是在用户空间中实现的,对线程的创建、撤销、同步与通信功能都无需内核的支持。

    13、作业调度

    调度的对象是作业。根据某种算法,决定将外存上处于后备队列的哪几个作业调入内存,为它们创建进程,分配必要的资源,并将它们放入就绪队列中。

    14、进程调度

    调度的对象是进程。根据某种算法,决定就绪队列的哪一个进程应获得处理机,并由分派程序将处理机分配给选中的程序。

    15、优先级倒置

    高优先级进程(或线程)被低优先级进程(或线程)延迟或阻塞。

    16、死锁

    如果一组进程中的每个进程都在等待仅由该组进程中其他的进程才能引发的事件发生,那么该组进程是死锁的。

    17、物理地址

    内存单元看到的地址。

    18、逻辑地址

    CPU生成的地址。

    19、联想存储器(TLB)

    又称快表。为了提高地址变换速度,在地址变换机构中增设的具有并行查找能力的高速缓存寄存器,用以存放当前访问的页表项。

    20、重定位

    把在装入时对目标程序中指令和数据的逻辑地址变换为物理地址的过程。

    21、静态重定位

    如果地址转换是在进程装入时一次性完成的,以后不再改变,则称这种重定位方式为静态重定位。

    22、动态重定位

    地址变换过程是在程序执行期间,随着对每条指令或数据的访问自动进行的,故称动态重定位

    23、虚拟存储器

    指具有请求调入功能和置换系统,能从逻辑上对内存容量加以扩充的一种存储器系统。

    24、抖动或颠簸

    在虚拟存储器中,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃。这种现象称为颠簸或抖动。刚刚换出的页面马上又要换入内存,刚刚换入的页面马上又要换出内存。

    简答题

    1、操作系统的目标?它的主要作用?

    目标: 实现方便性、有效性、可扩充性、开放性

    主要作用:

    1、OS作为用户与计算机硬件系统之间的接口

    2、OS作为计算机系统资源的管理者

    3、OS实现了对计算机资源的抽象

    2、推动操作系统发展的动力展现在哪五个方面?

    1、不断提高计算机系统资源的利用率

    2、方便用户

    3、器件不断更新换代

    4、计算机体系架构不断发展

    5、不断提出新的应用需求

    3、简述操作系统与用户之间的接口有哪些?

    1、用户接口:脱机命令接口,联机命令接口,图形用户接口

    2、程序接口

    4、操作系统的基本特征?它们之间的关系?

    基本特征:

    (1)并发,多个事件在同一时间间隔内发生

    (2)共享,资源可供内存中多个并发执行的进程(线程)共同使用。

    (3)虚拟,通过某种技术把一个物理实体变为若干个逻辑上的对应物,主要目的在于提高资源的利用率虚拟存储器。

    (4)异步,也称不确定性,指进程的执行顺序和执行时间的不确定性。

    关系:

    1、并发和共享是相互依存的。

    2、资源共享以程序(进程)的并发执行为条件;对资源共享实施有效管理, 协调好诸进程对共享资源的访问,提高程序并发执行的程度。

    3、虚拟是实现独占资源共享的方式

    4、异步是并发执行的表现形式。

    5、微内核OS的优缺点

    优点:

    1、提高了系统的可扩展性

    2、增强了系统的可靠性

    3、增强了系统的可移植性

    4、提供了对分布式系统的支持

    5、融入了面向对象的技术

    缺点:

    微内核OS的运行效率有所降低

    6、进程的三种基本状态是什么?它们之间转换的典型事件有哪些?

    三种基本状态:就绪状态,执行状态,阻塞状态。

    典型事件:

    1、处于就绪态的进程在调度程序为之分配处理机,状态由就绪转为执行

    2、正在执行的进程,如果因分配给它的时间片用完或抢占式调度方式下,高优先级进程就绪时,会被剥夺处理机暂停执行,状态由执行转为就绪

    3、如果因发生某事件导致当前进程的执行受阻(如等待I/O),使之无法继续运行,则状态由执行转为阻塞。

    4、进程等待的事件到来(如I/O完成),中断处理程序将状态由阻塞转为就绪。

    7、进程和线程的关系

    (1)线程是进程的一个组成部分。

    (2)进程的多个线程都在进程的地址空间活动。

    (3)资源是分给进程的,而不是分给线程的,线程在执行中需要资源时,系统从进程的资源分配额中扣除并分配给它。

    (4)处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。

    (5)线程在执行过程中,需要同步。

    8、简述引入线程的好处

    (1)以线程作为系统调度的基本单位,减少了系统的时空开销。以进程为系统调度的基本单位的系统中,进程的切换是很频繁的。在切换中由于要保留当时的运行环境,还要设置新选中的进程的运行环境,这既花费了处理机的时间,又增加了主存的空间,从而也限制了系统进程的数量和进程的切换速度。

    (2)引进线程提高了系统的并行能力。线程作为进程内的一个可执行实体,减少了并行粒度。线程作为调度的基本单位而不是资源分配的基本单位,调度更为容易,而且采用线程提高系统的并行能力比采用进程更为有效。

    (3)同一进程的线程共享进程的用户地址空间,所以同一进程的线程间的通信更容易实现。

    9、进程之间存在哪几种制约关系?

    进程间存在着两种相互制约的关系:

    直接制约关系(即同步问题)和间接制约关系(即互斥问题)。同步问题是存在逻辑关系的进程之间相互等待产生的制约关系,互斥问题是相互无逻辑关系的进程间竞争使用相同的资源所发生的制约关系。

    10、比较说明进程和程序的区别有哪些?

    (1)每个进程实体中包含了程序段和数据段这两个部分,因此说进程是与程序是紧密相关的。但从结构上看,进程实体中除了程序段和数据段外,还必须包含一个数据结构,即进程控制块PCB。

    (2)进程是程序的一次执行过程,因此是动态的;动态性还表现在进程由创建而产生、由调度而执行、由撤消而消亡,即它具有一定的生命周期。而程序则只是一组指令的有序集合,并和永久地存放在某种介质上,其本身不具有运动的含义,因此是静态的。

    (3)多个进程实体可同时存放在内存中并发地执行,其实着正是引入进程的目的。而程序(在没有为它创建进程时)的并发执行具有不可再现性,因此程序不能正确地并发执行。

    (4)进程是一个能够独立运行、独立分配资源和独立接受调度的基本单位。而因程序不具有PCB,所以它是不可能在多道程序环境下独立运行的。

    (5)进程与程序不一一对应。同一个程序的多次运行,将形成多个不同的进程;同一个程序的一次执行也可以产生多个进程;而一个进程也可以执行多个程序。

    11、多线程模型有哪几种类型?各自的优缺点

    多对⼀模型

    优点:线程管理开销小,效率高;

    缺点:如果一个线程在访问内核时发生阻塞,则整个进程都会被阻塞;此外,在任一时刻,只有一个线程能够访问内核,多个线程不能同时在多处理机上运行。

    ⼀对⼀模型

    优点:当一个线程阻塞时,允许调度另一个线程运行,所以它提供了比多对一模型更好的并发性能;此外在多处理机系统中,它允许多个线程并行地运行在多个多处理机系统上

    缺点:每创建一个用户级线程就要相应创建一个内核支持线程,开销较大,因此需要限制整个系统的线程数。

    多对多模型

    优点:结合上面两种模型的优点。它可以使一个程序的多个线程并行地运行在多处理机系统上,也可以减少线程管理的开销,提高效率。

    12、高级调度和低级调度的主要任务是什么?为什么引入中级调度?

    主要任务:

    高级调度:根据JCB中的信息,检查系统中的资源能否满足作业的需求,以及按照一定的调度算法从外存的作业后备队列中选取某些作业进入内存,并为它们创建进程和分配必要的资源,然后将新创建的进程排在就绪队列上等待调度。

    低级调度:1)保存CPU现场信息 2)按某种算法,从就绪队列中选取进程 3)把CPU分配给进程

    引入中级调度的目的:提高内存利用率和系统吞吐量

    13、处理机调度算法的共同目标是什么?

    1、资源利用率。为提高资源利用率,应使得系统中的处理机和其它所有资源都处于忙碌状态。

    2、公平性。使得诸进程都获得合理的 CPU 时间,不会发生进程饥饿现象。

    3、平衡性。为使得系统中的 CPU 和各种外部设备都能经常处于忙碌状态,调度算法应尽可能保持系统资

    源使用的平衡性。

    4、策略强制执行。对所制定的策略其中包括安全策略,只要需要,就必须予以准确地执行,即使会造成某

    些工作的延迟也要执行。

    14、在剥夺调度中,有哪些剥夺原则?

    1、优先级原则,指允许优先级高的新到进程抢占当前进程的处理机;

    2、短进程优先原则,指允许新到的短进程可以抢占当前长进程的处理机;

    3、时间片原则,即各进程按时间片轮转运行时,当正在运行的进程时间片用完后,停止该进程的运行并重

    新调度

    15、引起进程调度的主要因素?

    1、一个进程运行完毕

    2、一个正在运行的进程被阻塞

    3、在抢占式调度中,一个高优先级进程被创建

    4、在抢占式调度中,一个高优先级进程被唤醒

    5、在轮转时调度中,正在运行的进程时间片用完。

    16、产生死锁的原因和必要条件是什么?比较三种解决死锁的方法

    原因:

    1、竞争不可抢占资源引起死锁

    2、竞争可消耗资源引起死锁

    3、进程推进顺序不当引起死锁

    必要条件:

    1、互斥条件;

    2、请求和保持条件;

    3、不可抢占条件;

    4、循环等待条件。

    解决死锁的方法:

    预防死锁。事先预防方法。通过设置某些限制条件,破坏产生死锁的必要条件进而进行预防。该方法容易实现,但系统资源利用率低。

    避免死锁。事先预防方法。无须事先进行限制,而是在资源动态分配中,用某种方法防止系统进入不安全状态,从而避免死锁。该方法实现起来比较困难,但是资源利用率较高。

    死锁的检测和解除。无须事先进行限制,允许死锁发生,但是定期通过检测机构能将及时其检测出来并通过适当措施解除。该方法最难实现,但是资源利用率最高。

    17、解决优先级倒置的方法?

    1、规定在进程进入临界区后,其所占用的处理机就不允许被抢占

    2、动态优先级继承:当高优先级进程P1要进入临界区去使用临界资源R时,如果已有一个低优先级进程P3正在使用该资源,则一方面P1会被阻塞,另一方面P3会继承P1的优先级,并一直保持到P3退出临界区。

    18、什么是动态链接?用何种内存分配方式可以实现这种连接?

    动态链接就是当程序运行到需要调用某一模块时,再去链接。对于未使用的模块就可以不必链接。

    装入时动态链接是指在装入内存时采用装入边链接的链接方式;

    运行时动态链接是指将对某些模块的装入推迟到程序执行时才进行

    分配方法

    应采用段式内存分配方法实现此种动态链接

    19、为什么静态重定位后的程序在内存中不能移动?为什么动态重定位的程序在内存中可以移动?

    程序在内存中移动,意味着它的物理位置要发生变化,必须对程序和数据的地址进行修改后才运行。

    静态重定位后的程序的代码发生了幻化,由原来的逻辑地址的程序转换为物理地址的程序,按物理地址的方式预习,地址转换在装入时⼀次完成,此后无法修改,因此不能移动;

    动态重定位是在程序运行时由硬件进行地址转换,变换的结果存放在内存地址寄存器中,程序代码没有发生变化。地址转换过程在真正执行时才会进行,只需重新设置重定位寄存器的值即可,因此可以移动。

    20、存储管理的任务

    1、内存空间的分配与回收。

    2、地址转换;

    3、内存空间的扩充;

    4、内存共享;

    5、存储保护。

    21、快表的引入为何能明显改进系统性能?

    1、存储器访问具有时间和空间的局部性,因此快表的命中率可以高达70%~90%

    2、在系统执行过程中,每时每刻都需要访问页表,因此,访问时间的微小缩短,其累计节约时间很大。

    3、在引入快表后,通过快表查询,可以直接得到逻辑页所对应的物理块号,由此拼接形成实际的物理地址,减

    少了一次内存访问,缩短了进程访问内存的有效时间。

    22、分页存储管理与分段管理的主要区别是什么?提出分页管理和分段管理的目的是什么?

    分页:页是信息的物理单位,对用户不可见;页的大小固定且由系统绝定;页的地址空间是⼀维的;

    分段:段是信息的逻辑单位,对用户可见,段号和偏移由用户提供;段的长度不固定;段的地址空间是二维的。

    主要目的

    分页:为了提高内存利用率,进而提高计算机性能

    分段:从用户和程序员角度出发,为了满足在编程和使用上的多方面要求(如方便编程、信息共享、信息保护、动态链接以及动态增长)

    23、在采用首次适应算法回收内存中,可能出现几种情况?该如何处理?

    1、回收区与插入点的前一个分区相邻接。此时可将回收区与插入点的前一分区合并,无再为回收分区分配新表项,只需修改前邻接分区的大小;

    2、回收区与插入点的后一个分区相邻接。此时可将两分区合并,形成新的空闲分区,但须将回收区的起始地址作为新空闲分区的起始地址,分区大小为两者之和;

    3、回收区同时与插入点的前后两个分区相邻接。此时可将三个分区合并,使用前邻接分区的表项和起始地址,大小为三者之和,取消后邻接分区的表项

    4、回收区没有邻接空闲分区。则应为回收区单独建立一个新表项,填写回收区的起始地址和大小,并根据起始地址插入到空闲分区链的合适位置。

    24、虚存管理和实存管理的根本区别是什么?

    虚拟存储器管理允许部分装入和部分对换而实存管理不允许这样做。

    实存管理要求必须一次将作业全部装⼊内存后才能运行,且在运行过程中不能被换入和换出;

    虚存管理允许作业被分成多次调入内存运行,并且能够在运行过程中换⼊和换出。

    25、分页存储管理与分段存储管理虚地址到物理地址的转换过程?

    分页存储管理

    1、当处理机执行某一作业的一条指令时,计算出有效地址

    2、根据有效地址划分出页号和页内地址

    3、根据页表寄存器,找页表的起始地址

    4、用页号查页表,得到对应的块号

    5、根据块号,形成物理地址

    分段存储管理

    1、当处理机执行某一作业的一条指令时,计算出有效地址

    2、根据有效地址划分出段号和段内地址

    3、根据段表寄存器,找段表的起始地址

    4、用段号查段表,得到对应的段长和起始地址

    5、根据段长和起始地址,形成物理地址

    26、影响缺页中断率的几个主要因素?

    1、页面大小。页面划分较大,则缺页率较低;反之,缺页率较高。

    2、进程所分配物理块的数目。所分配物理块数目越多,缺页率越低;反之则较高。

    3、页面置换算法。算法的优劣决定了缺页中断的次数。

    4、程序固有特性。程序编制的局部化程度越高,执行时的缺页程度越低

    27、怎样解决碎片问题?

    1、采用 “紧凑” 技术,通过移动内存中作业的位置,将原来多个分散的小分区拼接成⼀个大分区。

    2、采用离散分配方式

    28、“抖动”的原因?预防方法

    原因

    1、分配给每个进程的物理块数目太少;

    2、页面置换算法不当。

    预防方法

    1、采取局部置换策略。把抖动影响局限在单个进程内;

    2、把工作集算法融入到处理机调度中。调度前检查每个进程在内存中驻留页面是否足够多,如果够则调入新的作业,否则为缺页率高的进程增加物理块;

    3、利用 “L=S” 准则调节缺页率;

    4、选择暂停的进程。降低多道程序度

  • 相关阅读:
    什么专业越老越吃香?
    漏刻有时百度地图API实战开发(5)区域限制移动端鬼畜抖动的解决方案
    【MySQL系列教程】
    数据结构——栈的详细介绍
    ShowDoc后台文件上传漏洞复现 CVE-2021-41745&CNVD-2020-49480
    [附源码]Python计算机毕业设计Django高校后勤保障系统
    最大流与最小费用最大流简略版)
    前端js实现将数组对象组装成自己需要的属性,或者去掉对象中不必要的属性
    [附源码]java毕业设计家校通信息管理系统
    FAST-LIO(二):程序运行&代码注释
  • 原文地址:https://blog.csdn.net/qq_52358603/article/details/125488463