Java刷题day25

1. 若一个用户进程通过read 系统调用读取一个磁盘文件中的数据,则下列关于此过程的叙述中,正确的是( )。

Ⅰ. 若该文件的数据不在内存中,则该进程进入睡眠等待状态
Ⅱ. 请求 read 系统调用会导致 CPU 从用户态切换到核心态
Ⅲ. read 系统调用的参数应包含文件的名称
A 仅Ⅰ、 Ⅱ
B 仅Ⅰ、 Ⅲ
C 仅Ⅱ、 Ⅲ
D Ⅰ、 Ⅱ和Ⅲ
答案:A
解析:
若文件的数据不在内存中,则进程进入睡眠模式的目的是等待内存对磁盘上文件的映射,因为磁盘的读取比较慢,所以进入睡眠模式。
read是系统调用,所以CPU从用户态切换到核心态。
open系统调用应该包含文件的名称,read只是包含输入流。

2. Linux文件权限一共10位长度,分成四段,第三段表示的内容是()?

A 文件类型
B 文件所有者的权限
C 文件所有者所在组的权限
D 其他用户的权限
答案:C
解析:在这里插入图片描述

3. 关于读写锁的描述,以下正确的是()

A 在任何时刻,获得锁权限的线程只有一个
B 读写锁可以同时存在读者和写者
C 读写锁在写加锁状态时,其他进行写操作线程不会阻塞,一直循环查询读写锁是否可用
D 读写锁在读加锁的状态下,可用进行读共享
答案:D
解析:

  • 写锁也称 X锁和 排他锁,在加锁期间不允许其他的进行读取和修改
  • 读锁也称 S锁或 共享锁,可以读但不能修改
  • 读写锁在写加锁状态时,其他进行写操作线程会阻塞. 写锁就是防止其他进程读或写.

4. 进程阻塞的原因不包括()

A 时间片切换
B 等待I/O
C 进程sleep
D 等待解锁
答案:A
解析:
进程有3个状态:就绪态。执行态、阻塞态。三种状态的转换包含有:

就绪->执行,执行->就绪,执行->阻塞,阻塞->就绪

等待I/O、进程sleep、等待解锁等原因都会导致进程暂停。

关于"时间片切换",当进程已经获得了除cpu外所有的资源,这时的状态就是就绪态,当分配到了时间片就成了执行态,当时间片用完之前一直未进入阻塞态的话,此后便继续进入就绪态。所以进程的就绪与阻塞是完全不同的。

5. 在缺页处理过程中,操作系统执行的操作可能是()

Ⅰ.修改页表 Ⅱ.磁盘 I/O Ⅲ.分配页框
A 仅Ⅰ、 Ⅱ
B 仅Ⅱ
C 仅Ⅲ
D Ⅰ、 Ⅱ和Ⅲ
答案:D
解析:缺页中断调入新页面,肯定要修改页表项和分配页框,所以Ⅰ、Ⅲ可能发生,同时内存没有页面,需要从外存读入,会发生磁盘I/O。

6. 下面选项中,满足短任务优先且不会发生饥饿现象的调度算法是()

A 先来先服务
B 高响应比优先
C 时间片轮转
D 非抢占式短任务优先
答案:D
解析:

  • 饥饿现象:是指系统不能保证某个进程的等待时间上界,从而使该进程长时间等待,当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿。
  • A、C选项,不满足短作业优先;B选项,由于响应比=(作业执行时间十作业等待时间)/作业执行时间。高响应比调度算法在等待时间相同的情况下,作业执行时间越短响应比越高,满足短任务优先。随着等待时间增加,响应比也会变大,执行机会就增大,所以不会产生饥饿现象。

7.下列选项中,降低进程优先级的合理时机是()

A 进程的时间片用完
B 进程刚完成I/O,进入就绪列队
C 进程持久处于就绪列队
D 进程从就绪状态转为运行态
答案:A
解析:
B 他已经进入就绪状态了。
C 原因 长期在就绪也就是等待,再不升高优先级就要饿死了 。
D 人家刚运行,你就降低,有可能会被抢断。

8.在使用锁保证线程安全时,可能会出现活跃度失败的情况,活跃度失败主要包括()

A 死锁
B 饥饿
C 活锁
D 以上全部
答案:D
解析:
活跃度问题有关死锁、饥饿和活锁:

  1. 死锁是由于资源紧张造成的,多个线程由于请求资源而形成一个环路,谁也不退让,导致谁也不能执行;
  2. 饥饿主要是由于线程优先级造成的,当大量线程并发执行时,优先级较小的线程总是得不到执行,引起线程饥饿;
  3. 活锁是由于线程在资源请求中遇到冲突时的重试策略不正确造成的。引入一定的随机性可避免活锁。

9.选择排队作业中等待时间最长的作业优先调度,该调度算法是()。

A 先来先服务调度算法
B 高响应比优先调度算法
C 优先权调度算法
D 短作业优先调度算法
答案:A
解析:
对进程调度算法中,排队等待时间最长的作业即是最先进入等待队列的作业;
短作业优先算法是根据作业运行时间长短来衡量的;
优先级调度算法分为静态优先权和动态优先权;
响应比高优先算法其实也是一种优先级调度,其优先权权值相当于响应比,响应比等于作业响应时间除以作业要求服务的时间。

10.对进程和线程的描述,以下正确的是()

A 父进程里的所有线程共享相同的地址空间,父进程的所有子进程共享相同的地址空间
B 改变进程里面主线程的状态会影响到其他线程的行为,改变父进程的状态不会影响到其他子进程
C 多线程会引起死锁,而多进程不会
D 以上选项都不正确
答案:D
解析:
父进程和子进程都有自己独立的地址空间;
父进程结束,所有子进程都结束,进程结束,所有线程都结束;
如果多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,那么就会导致死锁的发生,也就是进程不能实现同步。
多线程和多进程都会引起死锁,一般说的死锁指的是进程间的死锁。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值