牛客网刷题-操作系统1

  • Windows 操作系统具有较强的存储管理功能,当主存容量不够时系统可以自动地扩充,为应用程序提供一个容量比实际物理主存大得多的存储空间。这种存储管理技术称为**虚拟缓存器技术**

    • 详细解释

      • 缓冲区技术,是为了协调吞吐速度相差很大的设置之间数据传送而采用的技术;

      • 虚拟存储器技术,是为应用程序提供一个容量比实际物理主存大得多的存储空间,使当主存容量不够时系统可以自动地扩充的技术;

      • SPOOLing技术,是低速输入输出设备与主机交换的一种技术,也称为“假脱机真联机”技术

      • 进程调度技术,是负责决定哪个进程投入运行,何时运行以及运行多长时间的技术

  • 一个多道批处理系统中仅有 P1 和 P2 两个作业, P2 比 P1 晚 5ms 到达,它们的计算和 I/O 操作顺序如下:

    P1 :计算 60ms , I/O 80ms ,计算 20ms

    P2 :计算 120ms , I/O 40ms ,计算 40ms

    若不考虑调度和切换时间,则完成两个作业需要的时间最少是 。**(260ms)**

  • ​ 在下列文件的物理结构中,不便于增删文件内容的是 连续文件

    • 详细解释

      • 连续文件类似于数组,顺序访问速度快,但是增删数据时要移动其他数据块,所以速度很慢;

      • 链接文件类似于链表,随机访问速度慢,增删数据很快,不需要移动数据块,只需要改变指针指向即可;

      • 索引文件糅合了连续文件和链接文件,但更适合大文件;

      • Windows使用显式链接文件

  • 为提高操作系统自身的可适应性和可扩展性,现代操作系统通过引入和实现( 逻辑设备) 的概念而实现了设备独立性。

  • 在操作系统中,用户程序申请使用 I/O 设备时,通常采用( )。

现代操作系统为了提高系统的可适应性和可扩展性,都实现了设备独立性或设备无关性。基本含义是**应用程序独立于具体使用的物理设备,应用程序以逻辑设备名请求使用某类设备**。实现了设备独立性功能可带来两方面的好处:

(1)设备分配时的灵活性;

(2)易于实现I/O 重定向。为了实现设备的独立性,应引入逻辑设备和物理设备概念。在应用程序中,使用逻辑设备名请求使用某类设备;系统执行时是使用物理设备名。鉴于驱动程序是与硬件或设备紧密相关的软件,必须在驱动程序之上设置一层设备独立性软件,执行所有设备的公有操作、完成逻辑设备名到物理设备名的转换(为此应设置一张逻辑设备表)并向用户层(或文件层)软件提供统一接口,从而实现设备的独立性。

虚拟设备名

通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个进程同时使用的设备的名字。

虚拟设备技术的作用是提高慢速独占设备的利用率,采用了假脱机技术后—个程序对慢速独占设备的占用时间短了(因为连续了)。

独占设备名

独占设备:进程应互斥地访问这类设备,即系统一旦把这类设备分配给了某进程后,便由该进程独占,直到用完释放。典型的独占设备有打印机、磁带机等。系统在分配时,还应考虑到安全性

  • 现代OS具有并发性和共享性,是由(**多道程序**)的引入而导致的。

  • 下面的叙述中,( 节省系统内存)不是设备管理中引入缓冲机制的主要原因。

  • 若有 4 个进程共享同一程序段,而且每次最多允许 3 个进程进入该程序段,则信号量的变化范围是?

最多允许3个进程进入,所以信号量初值为3,当程序段进入了三个进程后信号量变为0,第四个进程进入时,信号量减为-1。

  • 下列选项中,不属于进程关键要素的是________。

一般来说Linux系统中的进程都具备下列诸要素:

(1)有一段程序供其执行。(程序)

(2)有进程专用的系统堆栈空间。(数据和栈)

(3)在内核有task_struct数据结构。(进程控制块)

(4)有独立的存储空间,拥有专有的用户空间。

如果只具备前面三条而缺第四条,那就称为“线程”。如果完全没有用户空间,就称为“内核线程”;而如果共享用户空间则就称为“用户线程”。

  • 临界区是()

临界区:每个进程中访问临界资源的那段程序叫做临界区。进程对临界区的访问必须互斥,每次只允许一个进程进去临界区,其他进程等待

  • 在一单处理机系统中,若有4 个用户进程,在某一时刻,处于阻塞状态的用户进程最多有

处于死锁的情况下。

  • 关于多线程和多线程编程,以下哪些说法正确的()

  • 计算机操作系统出现死锁的原因是什么?

  • 同一文件系统中不允许文件同名 , 否则会引起混乱,这种说法正确吗?[错误]
1
2
文件目录结构一般有一级目录结构、二级目录结构和多级目录结构。 一级目录结构的优点是简单,缺点是文件不能重名,限制了用户对文件的命名。 二级目录结构实现了文件从名字空间到外存地址空间的映射:用户名—>文件名à文件内容。其优点是有利于文件的管理、共享和保护;适用于  多用户系统;不同的用户可以命名相同文件名的文件,不会产生混淆,解决了命名冲突问题。缺点是不能对文件分类;当用文件较多时查找速度慢。
多级目录结构的优点是便于文件分类,可为每类文件建立一个子目录;查找速度快,因为每个目录下的文件数目较少;可以实现文件共享;缺点是比较复杂。
  • 死锁与安全状态的的关系是

并非所有的不安全状态都是死锁状态,但当系统进入不安全状态后,便可能进入死锁状态;反之,只要系统处于安全状态,系统便可以避免进入死锁状态。

  • 一般用户更喜欢使用的系统是()

批处理系统

处理系统,又名批处理操作系统。批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行。这种采用批量处理作业技术的操作系统称为批处理操作系统。批处理操作系统分为单道批处理系统和多道批处理系统**。批处理操作系统不具有交互性**,它是为了提高CPU的利用率而提出的一种操作系统。

1
2
3
所谓批处理(batch processing )就是将作业按照它们的性质分组(或分批),然后再成组(或成批)地提交给计算机系统,由计算机自动完成后再输出结果,从而减少作业建立和结束过程中的时间浪费。根据在内存中允许存放的作业数,批处理系统又分为单道批处理系统和多道批处理系统。早期的批处理系统属于单道批处理系统,其目的是减少作业间转换时的人工操作,从而减少CPU的等待时间。它的特征是内存中只允许存放一个作业,即当前正在运行的作业才能驻留内存,作业的执行顺序是先进先出,即按顺序执行。
由于在单道批处理系统中,一个作业单独进入内存并独占系统资源,直到运行结束后下一个作业才能进入内存,当作业进行I/O操作时,CPU只能处于等待状态,因此,CPU利用率较低,尤其是对于I/O操作时间较长的作业。为了提高CPU的利用率,在单道批处理系统的基础上引入了多道程序设计(multiprogramming)技术,这就形成了多道批处理系统,即在内存中可同时存在若干道作业,作业执行的次序与进入内存的次序无严格的对应关系,因为这些作业是通过一定的作业调度算法来使用CPU的,一个作业在等待I/O处理时,CPU调度另外一个作业运行,因此CPU的利用率显著地提高了。
批处理系统主要指多道批处理系统,它通常用在以科学计算为主的大中型计算机上,由于多道程序能交替使用CPU,提高了CPU及其他系统资源的利用率,同时也提高了系统的效率。多道批处理系统的缺点是延长了作业的周转时间,用户不能进行直接干预,缺少交互性,不利于程序的开发与调试。

操作系统的分类

  • 我们熟知的Windows XP、Linux、Mac OS X等都是多用户多任务分时操作系统,可见这个概念一直延续到了今天。它们最显著的特点就是可以让多个人使用同一台电脑而且不能互相窥探对方的秘密。当你使用电脑的时候可以边听音乐边看新闻,同时还能跟朋友聊天。只要你觉得你的大脑还能处理得过来,你还能让这台电脑同时干更多的事情。其实这类操作系统我们完全可以只用“分时”二字简要概述下来。因为“分时”就像它最初的定义那样:将电脑的时间资源适当分配给所有使用者身上,让所有使用者有独占机器的感觉。但是如果把“使者”进行抽象,就不仅可以代表人,还可以将任务也理解为电脑时间资源的使用者,那么“分时”就是多用户和多任务的基础和前提。所以,既然是“分时”的,一般都会支持多用户和多任务
  • 能实现紧凑技术的存储管理( )

—- 动态重定位分区分配算法与动态分区分配算法基本上相同,差别仅在于:在这种分配算法中,添加了紧凑功能

—- 通常,在找不到足够大的空闲分区来满足用户需求时进行紧凑。

存储器管理的对象是主存,也称内存。它的主要功能包括分配和回收主存空间、提高主存利用率、扩充主存、对主存信息实现有效保护。

存储管理方案的主要目的是解决多个用户使用主存的问题,其存储管理方案主要包括分区存储管理分页存储管理分段存储管理段页式存储管理以及虚拟存储管理

分区存储管理又有三种不同的方式:静态分区、可变分区、可重定位分区

  • 为实现设备分配,应为每一类设备配置一张 。

逻辑设备表(LUT)功能是完成逻辑名到物理设备名的映射。

设备分配表(DCT)是,系统为每一个设备配置了一张设备控制表,记录设备的特性以及与设备控制器的连接情况,其中有字段“设备状态”用来表示设备是忙还是闲,“COCT指针”指向与该设备相连接的设备控制器。

  • 当计算机系统没有用户执行时,处理机完全处于空闲状态。[]

系统本身也会有很多状态要维护,会一直处于监听状态。

  • 下列关于总线的说法中正确的是( )

  • A:总线是用于连接CPU、内存、外存和各种I/O设备并在它们之间传输信息的一组共享的传输线及其控制电路。如果不特别指出,总线一般指代内总线。
    B:内部总线位于CPU内部,连接各个寄存器和运算器。
    C:I/O总线是用于连接主机和I/O设备的总线。
    D:计算机总线中包含内部总线、系统总线(前端总线)、I/O总线。

  • 一个进程执行过程中不可能对应()。

PCB: Process Control Block 进程控制块

了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。

进程(Process)和作业(Job)是一个意思,不同书中表述不同,JCB就相当于是PCB。一个进程一个PCB,所以不会对应到多个PCB

  • 进程申请不到CPU 时,其状态将变为阻塞状态,这样的说法正确吗 【**错误**

也可能是就绪,其他都准备好了,只差CPU

  • “进程一次性申请全部所需资源”通过防止( )条件的出现实现死锁预防

image-20220217164051506

  • 在分时系统中,若当前运行的进程连续获得了两个时间片,原因可能是( )

1
2
就绪队列为空 
无其他进程需要使用CUP,所以连续分配时间片
  • 在 段页式存储管理中 ,每个进程拥有多个段表,但只有一张页表。[错误]

  • 需要周期刷新的存储器是()

    考察的是不同存储器的功能特点。

    • A选项为静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。
    • B选项为动态随机存取存储器(Dynamic Random Access Memory,DRAM)最为常见的系统内存。DRAM的存储位元是基于电容器的电荷量存储,这个电荷量会随着时间和温度而减少,因此必须定期的刷新,以保持它们原来记忆的正确信息。对DRAM的所有存储单元恢复一次原状态的时间间隔,叫做刷新周期。
    • C选项只读存储器(Read-Only Memory,ROM)所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。
    • D选项属于静态存储器的原理,即靠双稳态触发器的两个稳定状态保存信息
  • 实现虚拟存储的目的是()

  • 解决死锁问题通常意味着牺牲资源的效率 【**正确**

解决死锁通常是释放部分进程资源,故牺牲了资源的效率

1
破坏死锁的方法包括: 1. 破坏互斥条件,如果系统资源都能共享,则不会死锁--但由于打印机等资源显然不能被共享,该方法不好。 2. 破坏请求并保持条件,预先分配全部资源,运行时才投入使用,并一直独享,系统资源被浪费。 3. 破坏不可剥夺条件,保持不可剥夺资源的进程,在请求新资源未被满足时,必须先释放保持的资源,需要时重新申请,反复申请和释放增加了开销。 4. 破坏循环等待条件,采用顺序资源分配,用编号分配资源,按次序操作会造成浪费。
  • 存放在磁盘上的文件

    即可随机访问,又可顺序访问

  • 位示图可用于()

操作系统管理空闲存储空间的方法:位示图法【**0表示空闲,1表示已经分配**】、空闲区表法、空闲链表法以及成组链接法

  • 在 Word 中,执行打开文件 C:\a.doc 操作,是将 ____

C盘是硬盘,A盘和B盘都是软盘;我们现在说的内存一般都是RAM,而ROM也可以做内存,只不过是Read Only的(只能写一次),通常用来存储BIOS程序,断电后内容还在。

  • 单道程序系统中程序的执行也需要同步和互斥 【**错**

    • 详细解释

      • 1. 资源独占性

        任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争

        2. 执行的顺序性

        内存中只有一个程序,各个程序是按次序执行的。在做完一个程序的过程中,不可能夹杂进另一个程序执行

        3. 结果的可再现性

        只要执行环境和初始条件相同,重复执行一个程序,获得的结果总是一样的

        4. 运行结果的无关性

        程序的运行结果与程序执行的速度无关。系统中的作业以串行的方式被处理,无法提高CPU、内存的利用率

        本来就是有序的,故不需要同步互斥

  • 目录在linux文件系统中是以怎样的形式存在的?

  • 使用下面那些存储管理方法可以实现虚拟存储?【**BCD**

虚拟存储器的实现方法:
1、分页请求系统
2、分段请求系统
3、两种方式的结合

而分区分配是指为如何用户程序分配内存空间的策略

分区是为用户程序分配内存的策略,不是虚拟存储的实现方法。

  • 假设某系统共有10台磁带机,有三个进程P1,P2,P3对磁带机的需求量分别是8,6,4台。设在T0时刻P1,P2,P3已分别获得3,4,1台,于是在T0时刻后存在的安全序列为( **?**)。

  • ```
    (P1,P2,P3)

    1
    2
    3

    - ```
    (P3,P2,P1)
  • ```
    (P2,P3,P1)

    1
    2
    3

    - ```
    (P2,P1,P3)
  • (P1,P3,P2)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16







    - 关于进程和线程,下列说法正确的是____

    {%asset_image image36.png%}

    ```txt
    A:进程是资源分配和拥有的单位
    C:线程是处理机调度和分配的单位
    B:进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
    E:每个线程拥有自己的堆栈,和自己的寄存器上下文
  • 两个线程并发执行以下代码,假设a是全局变量,初始值是1,那么以下输出中()是可能的。

void foo ( )
{
++a; printf(“%d”``,a);
}

假设线程x和y同时执行,x和y可随时被抢占,a的初始值为1

A:3, 2
y先执行++a,a为2;
y再执行printf,a入栈,在打印到终端之前切换到x
x执行++a,a为3;
x执行printf,输出3;再切换到y
y执行打印,输出2

B:2 3
x先执行++a,a为2;
x再执行printf,输出2;切换到y
y执行++a,a为3;
y执行printf,输出3;

C:3 3
x先执行++a,a为2;切换到y
y执行++a,a为3;
y执行printf,输出3;切换到x
x执行printf,输出3

D:2 2
类似C, 执行++a操作但没有写回到内存

这里关键有两点:
(1)两个线程可*随时被抢占***
(2)++a和printf不是原子指令,可随时被打断;特别注意函数printf,a作为参数压栈后,*
a再变化则不会影响输出*(printf实际打印的是压栈的参数,是值**拷贝的栈变量)

  • 以下关于Linux操作系统内存的描述中,正确的有()

    • A.点击访问 32位下windows大概2g,而Linux3G,其余的都是给了内核【**注意题中说是用户态地址空间**

    • B. [ ? ]

      进程A和B都有自己的虚拟地址,程序在运行的时候在一个特定的时候并不会把所有需要的数据都加载到内存中,当前不使用的数据会被置换到硬盘上,只有在使用的时候才会被置换到内存中。因此,两个进程所占的物理存储之和完全有可能大于2GB。例如当进程A和B同时运行的时候,都只有部分数据被加载到内存中,假设在某一时刻A和B进程占用内存之和为2GB,如果此时A所需的数据不在内存中,此时系统采用特定的算法把进程A与B当前可能不使用的数据置换到硬盘上。因此,选项B正确。

    • 申请了1GB的内存,不一定会全部占用

  • 下列软件中,属于系统软件的是()。

软件系统主要包括系统软件和应用软件。办公自动化软件、管理信息系统、指挥信息系统都是属于应用软件, Windows XP 属于系统软件,因此答案选择 B 。

  • 进程A、B共享变量x,需要互斥执行;进程B、C共享变量y,B、C也需要互斥执行,因此进程A、C必须互斥执行 【错】

    1
    在操作系统中,互斥没有传递性。在题目中,AC不存在资源竞争,以为着不需要互斥
  • ( ) 被称为文本文件或 ACSII 文件。

exe 可执行文件 软件一般有这样的应用程序

txt 文本文件

doc word 文本格式

com 可执行文件的内存映像

  • 从执行状态挂起的进程解除挂起时进入()状态。

  • 采用动态重定位方式装入作业,在执行中允许()将其移走

动态重定位装入方式

其运行环境:多道程序环境;

程序在运行过程中在内存的位置可能变动,装入程序把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正执行时才进行。说白了,动态重定位装入方式,是在程序执行时由CPU硬件进行地址重定位。

特点:程序在内存中可以浮动,不要求整个应用程序占用连续控件;为使地址转换不影响指令的执行速度,需要一个重定位寄存器的支持。

动态重定位分区分配是 内存为程序分配空间的一种分配方式。 可以将内存块进行搬移,将小块拼成大块,将小空闲“紧凑”成大空闲,腾出较大的内存以容纳新的程序进程。可以减少“碎片”,当然这种条件是**系统完成的,并不是用户**

可重定位装入方式

运行环境:多道程序环境

程序目标模块的起始地址通常是从0开始的,程序中的其他地址也都是相对于起始地址计算的;根据内存的当前情况,将装入模块装入到内幕才能的适当位子;地址变换通常是装入时一次完成的,以后不再改变,所以是静态重定位。

特点:无需硬件支持;程序不能在内存中移动;要求程序的存储空间是连续的,不能把程序放在若干不连续区域

绝对装入方式

环境:使用单批道程序环境

绝对装入需要实现知道程序驻留在内存的位置,程序按照装入模块中的地址,将程序和数据装入内存。所以程序中的逻辑地址与实际地址完全相同,当操作系统把程序装入内存时,不需要对程序和数据进行地址修改;

特点:是CPU执行目标代码块,由于内存大小的限制,能装入内存并发执行的进程数大大减少。

  • 在请求式分页系统中,缺页的中断率与程序结构无关。最短 CPU 执行期优先算法一定是剥夺式的。 【 false

第一个问题:false

请求式分页也称虚拟页式存储管理,在进程开始运行之前不是装入全部页面,而是装入一个或零个页面之后根据进程运行的需要动态装入其他页面。

查页表时,当状态位指示该页不在主存时,则引起一个缺页中断发生,相应的中断程序把控制转向缺页中断子程序。————–缺页的中断率与程序结构有关

缺页中断率的因素有

①分配给作业的主存块数多则缺页率低,反之缺页中断率就高。
②页面大,缺页中断率低;页面小缺页中断率高。
③程序编制方法。以数组运算为例,如果每一行元素存放在一页中,则按行处理各元素缺页中断率低;反之,按列处理各元素,则缺页中断率高。
④页面调度算法对缺页中断率影响很大,但不可能找到一种最佳算法。

第二个问题:false

短作业优先(SJF)–即最短CPU执行期优先算法有两种调度方式

  • 非抢占式(非剥夺式)调度:一旦进程拥有了CPU,只有当该CPU脉冲时间结束才会让出CPU的控制权。
  • 抢占式(剥夺式)调度:当有比当前进程剩余时间片更短的进程到来时,新来的进程抢占当前进程获得CPU运行。这种方式也被称为最短剩余时间优先调度(SRTF)。
谢谢你的支持哦,继续加油.