文章目录
- 第一题(缺页中断)
- 第二题(多线程)
- 第三题(系统死锁的原因)
- 第四题(大小端在内存中的存储方式)
- 第五题(处理器运行时间计算)
- 第六题(计算机的访存的快慢)
- 第七题(现代计算机结构)
- 第八题(子进程和父进程)
- 第九题(进程和线程)
- 第十题(进程调度的状态变化)
第一题(缺页中断)
一进程刚获得三个主存块的使用权,若该进程访问页面的次序是{1321215123},采用LRU算法时,缺页数是()次。
A、3
B、4
C、5
D、6
缺页中断
缺页中断就是要访问的页不再主存,需要操作系统将其调入主存之后再进行访问
LRU算法(最近最久未使用和最少使用)
当要调入一页而必须淘汰旧页的时候,将最近最少使用的置换出去
缺页数
即缺页中断次数,就等于进程的物理块数+页面置换次数
1进入->1
3进入->3 1(刚使用的放在前面,未使用的依次后移)
2进入->2 3 1
1进入->1 2 3
2进入->2 1 3
1进入->1 2 3
5进入->5 1 2(5不存在,进行页面置换,淘汰旧页2)
1 进入->1 5 2
2进入->2 1 5
3进入->3 2 1 (3不存在,进行页面置换,淘汰旧页5)
总共进行了两次页面置换,然后进程的物理块数是3,3+2也就是5次缺页
C
第二题(多线程)
以下关于多线程的叙述中错误的是()
A、线程同步的方法包括使用临界区,互斥量,信号量等
B、两个线程同时对简单类型全局变量进行写操作也需要互斥
C、实现可重入函数时,对自动变量也要用互斥量加以保护
D、可重入函数不可以调用不可重入函数
临界区
指的是一个访问共用资源(同一个全局变量,同一个类对象等等)的程序片断)
互斥量
互斥锁的底层就是互斥量,使用互斥锁可以限制多个执行流对临界资源的访问时,只有一个执行流可以访问资源,其他执行流需要等待,从而保证了程序结果没有二义性
信号量
信号量可以藐视并且管理一个资源的数量,提供wait/post的接口来保证程序不会产生二义性的结果,同时信号量也可以保证线程同步,信号量的底层有一个资源计数器+PCB等待队列
可重入函数&不可重入函数
可重入函数:多线程的程序当中,如果一个函数可能同一时刻被多个线程访问,没有导致程序的结果产生二义性,则该函数被称之为可重入函数。
不可重入函数:在对县城的程序当中,如果一个函数可能同一时刻被多个线程访问,从而导致程序的结果产生二义性,则该函数被称之为不可重入函数,
C:可重入函数可被认为是可以被中断的函数,自动变量定义的时候才被创建,函数返回时,系统回收空间,他是局部作用域变量,不需要互斥量,可重入函数对全局变量才需要互斥保护
C
第三题(系统死锁的原因)
系统死锁的可能的原因是()
A、进程死循环
B、资源循环等待
C、程序内存访问越界
D、进程释放资源
死锁的四个必要条件
互斥条件:一个资源每次只能被一个进程使用
请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不妨(程序员可以破坏)
不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺
循环等待条件:若干进程之间形成一种头尾详解的循环等待资源的关系:(程序员可以破坏)
A选项while(1)死循环,并不能导致程序死锁
B选项:思索的必要条件之一
C选项:内存越界访问,可能导致程序崩溃
D选项:内存资源释放是一个正常的操作
B
第四题(大小端在内存中的存储方式)
整数0x12345678,在采用bigendian中内存的排序序列是( )
A、12 34 56 78
B、78 56 34 12
C、87 65 43 21
D、21 43 65 87
大端存储模式
低位存在高地址
小端存储模式
低位存在低地址
整数0x12345678,其中12是高位,78是低位
A
第五题(处理器运行时间计算)
使用C语言将一个1G字节的字符数组从头到尾全部设置为字’A’,在一台典型的当代PC上,需要花费的 CPU时间的数量级最接近()
A、0.001秒
B、1秒
C、100秒
D、2小时
电脑的主频(GHZ):这个参数代表了CPU在1秒的时间内,可以执行的简单指令的条数是xxG条。
例如:3.2GHZ,就可以认为CPU执行简单的指令在1秒内可以完成3.2G条
CPU执行一条语句大约时间
执行1条语句约1ns,即10^(-9)s
取值赋值操作的指令只有一条:char tmp=‘A’
1G=102410241024byte,每一赋值1byte就执行一次赋值语句,大概就是一秒
B
第六题(计算机的访存的快慢)
对于普通的计算机,对以下事件的平均耗时从小到大排序为 :
A.读取1KB内存数据
B.从硬盘连续读取1KB数据
C.读取一次L2缓存
D.一次磁盘寻道
A、C,A,D,B
B、C,D,A,B
C、D,C,A,B
D、D,A,C,B
计算机缓存的概念
硬盘->内存->三级高速缓存->二级高速缓存->一级高速缓存
磁盘读取响应时间
寻道时间:磁头从开始移动到数据所在的磁道所需要的时间,寻道时间越短,I/O操作越快,目前磁盘的平均需到时间一般在3-15ms,一般都在10ms左右
旋转延迟
盘片旋转将请求数据所在的扇区移至度企鹅磁头下放所需要的时间,旋转延迟取决于磁盘转速,普通磁盘一般都是7200rpm,满的400rpm
数据传输时间
完成传输所请求的数据所需要的时间
从CPU到主存大概60-80ns
从CPU到L3 cache 约15ns
从CPU到L2 cache 约3ns
从CPU到L1cache 约1ns
L1缓存<L2缓存<L3缓存<内存<一次磁盘寻道<磁盘读取数据
A
第七题(现代计算机结构)
现代计算机普遍采用总线结构,包括数据总线、地址总线、控制总线,通常与数据总线位数对应相同的部件是( )
A、CPU
B、存储器
C、地址总线
D、控制总线
地址总线(0X00000000-0XFFFFFFFF)
决定内存数据操作的地址
1、CPU是通过地址总线来指定存储单元的。
2、地址总线决定了CPU能访问的最大内存空间的大小
3、地址总线是地址线数量之和
数据总线
决定传输的数据值(字长大小)
1、决定一次数据传输可决定的数据大小
2、数据总线的宽度决定了CPU和外界的数据传送速度
3、每条传输线只能传递1位二进制数据
4、数据总线是数据线条数之和
控制总线
1、CPU通过控制总线对外部器件进行控制
2、控制总线的宽度决定了CPU对外器件的控制能力
3、控制总线是控制线数量之和
地址总线当中每一根地址线都可以模拟0/1信号,所以,32位操作系统又32根地址线,64位操作系统又64根地址线。
A
第八题(子进程和父进程)
关于子进程和父进程的说法,下面哪一个是正确的()
A、一个父进程可以创建若干个子进程,一个子进程可以从属于若干个
B、父进程父进程被撤销时,其所有子进程也被相应撤消
C、子进程被撤销时,其从属的父进程也被撤销
D、一个进程可以没有父进程或子进程
A:一个子进程从属于一个父进程
B:父进程终止时,子进程还会运行
C:子进程被撤销了,父进程海魂运行
D:系统云溪一个进程创建新的进程,新进程即为子进程,子进程还可以创建新的子进程,形成进程树结构模型。整个Linux系统的所有进程也是一个树形结构。树根是系统自动构建的。即在内核状态下执行0号进程。由0号进程创建1号进程(内核态),1号进程负责执行内核的初始化工作以及进程系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程。随后,1号进程调用execve()运行可执行程序init,并演变成用户态1号进程,即init进程
(0号进程没有父进程)
D
第九题(进程和线程)
关于线程和进程,下面说法正确的是()
A、终止一个进程比终止一个线程花费的时间少
B、进程切换比同一进程内部的线程切换花费的时间少线程提高了不C、同执行程序间的通信效率
D、进程和线程都是资源分配和调度的基本单位
A:终止进程比终止线程花费的时间多,因为线程只是一个执行流,不会将进程的资源释放掉
B:线程切换花费的时间少
C:可以让进程的某一个线程执行通信任务,其他的线程做其他事情,提高程序运行的效率
D:进程是操作系统分配资源的基本单位,线程是操作系统调度的基本单位
C
第十题(进程调度的状态变化)
进程调度时,下列进程状态的变化过程哪一项是不可能发生的() A、阻塞挂起->阻塞
B、就绪挂起->就绪
C、就绪挂起->阻塞挂起
D、阻塞挂起->就绪挂起
A:激活
B:激活
C:不可逆的,只能从阻塞挂起到就绪挂起
D:事件发生
C