操作系统---基础题目汇总十

1、并发是并行的不同表述,其原理相同。
正确答案: A

A、错
B、对
并发是同时执行不过微观上是串行的,并行是同时执行,但是是不同的处理器执行,网上有个例子是说并发是一个馒头喂两个人,并行是两个馒头喂两个人
并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。
并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率
并行性指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。

2、引入多道程序的目的在于()。
正确答案: A

A、充分利用CPU,减少CPU等待时间
B、提高实时响应速度
C、有利于代码共享,减少主、辅存信息交换量
D、充分利用存储器
多道程序设计,是在内存中同时存放几道相互独立的程序,无论何时都有程序在执行,充分利用CPU。

3、与计算机硬件关系最密切的软件是().
正确答案: D

A、编译程序
B、数据库管理程序
C、游戏程序
D、OS

4、文件的存储方法依赖于()。
正确答案: C

A、文件的物理结构
B、存放文件的存储设备的特性
C、A和B
D、文件的逻辑结构

5、()对多道批处理系统最重要。
正确答案: D

A、实时性
B、交互性
C、共享性
D、运行效率

多道批处理主要的特点:

1.系统的吞吐量大
2.资源的利用率高

但由于多道批处理是整批的作业在运行,因此有时候要等很长时间才能运行完,所以效率很重要。
这里需要注意的是:多道批处理还不具有交互性

6、页式虚拟存储管理的主要特点是()。
正确答案: B

A、不要求将作业装入到主存的连续区域
B、不要求将作业同时全部装入到主存的连续区域
C、不要求进行缺页中断处理
D、不要求进行页面置换

7、解决碎片问题,以及使程序可浮动的最好的办法是采用()技术。
正确答案: D

A、静态重定位
B、动态重定位
C、内存静态分配
D、内存动态分配

(1)静态重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变。

(2)动态重定位:即在程序运行过程中要访问数据时再进行逻辑地址与物理地址的变换(即在逐条指令执行时完成地址映射)。

(3)动态内存分配是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不象数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。

(4)内存的静态分配和动态分配的区别主要是两个:
一是时间不同。静态分配发生在程序编译和连接的时候。动态分配则发生在程序调入和执行的时候。
二是空间不同。堆都是动态分配的,没有静态分配的堆。

8、有一个变量int a=0;两个线程同时进行+1操作,每个线程加100次,不加锁,最后a的值是()?
正确答案: B

A、200
B、<=200
C、>=200
D、都有可能

方法一:

i++在两个线程里边分别执行100次,能得到的最大值和最小值分别是多少?

i++只需要执行一条指令,并不能保证多个线程i++,操作同一个i,可以得到正确的结果。因为
还有寄存器的因素,多个cpu对应多个寄存器。每次要先把i从内存复制到寄存器,然后++,然
后再把i复制到内存中,这需要至少3步。从这个意义上讲,说i++是原子的并不对。

如此,假设两个线程的执行步骤如下: 
 1. 线程A执行第一次i++,取出内存中的i,值为0,存放到寄存器后执行加1,此时CPU1的寄
 存器中值为1,内存中为02. 线程B执行第一次i++,取出内存中的i,值为0,存放到寄存器后执行加1,此时CPU2的寄存器中值为1,内存中为03. 线程A继续执行完成第99i++,并把值放回内存,此时CPU1中寄存器的值为99,内存中
 为994. 线程B继续执行第一次i++,将其值放回内存,此时CPU2中的寄存器值为1,内存中为15. 线程A执行第100i++,将内存中的值取回CPU1的寄存器,并执行加1,此时CPU1的寄存
 器中的值为2,内存中为16. 线程B执行完所有操作,并将其放回内存,此时CPU2的寄存器值为100,内存中为1007. 线程A执行100次操作的最后一部分,将CPU1中的寄存器值放回内存,内存中值为28. 结束!
所以该题目便可以得出最终结果,最小值为2,最大值为200

方法二:

最小值100  最大值200

两个线程分别记为线程1和线程2i++相当于取出i的值,加1,再放回去
第一种极端情况:每次线程一取出i的值后CPU时间切换到线程二,线程二也取出i的值,取到的
值和线程一相等,线程二给i加一后放回去,线程一也将i加一后放回去,放回去的值也相等,相
当于两个线程都执行一次i++操作,i的值只增加1,这样操作100i的值为100

第二种极端情况:线程一和线程二间隔操作,即线程一对i++操作完成,把已经加一的数据放回
去之后线程二再操作,轮流进行,最后每个线程都对i加了100次,i的值为200

多核cpu,最小值2,最大值200,参http://zhan.renren.com/h5/entry/3602888498047361672
单核cpu,最小值100,最大值200

9、某操作系统采用分页存储管理方式,下图给出了进程A的页表结构。如果物理页的大小为512字节,那么进程A逻辑地址为0x0457(十六 进制)的变量存放在__号物理内存页中。

进程A页表:

逻辑页    物理页
0            9
1            2
2            4
3            6
4            5
5            8

正确答案: C
A、9
B、2
C、4
D、6
E、8
F、5
逻辑地址是按字节分的,512=2^9,也就是0x0457的后9位是页内地址,前7位为0000 010,也就是在第2页,对应物理页是4

你可能感兴趣的:(操作系统---基础题目汇总十)