文章目录
- 1.下列关于线程的说法错误的是(B)
- 2.在下列进程的四个特征中,最基本的特征是(B)
- 3.什么是内存抖动(Thrashing)(A )
- 4.假设如下代码中,若t1线程在t2线程启动之前已经完成启动。代码的输出是(B)
- 5.以下哪句的说法是正确的(C)
1.下列关于线程的说法错误的是(B)
A 耗时的操作使用线程,提高程序响应
B 耗内存的操作使用线程,提高内存利用率
C 多CPU的系统使用线程,提高CPU利用率
D 并行操作使用线程,如c/s架构中服务端程序为每个客户端请求创建一个线程来响应
思路:耗时的操作使用线程就可以和其他的操作并发并行的执行,从而提高程序响应;线程使用的内存都是进程提供的内存,所以耗内存的操作占用的都是进程的内存;
2.在下列进程的四个特征中,最基本的特征是(B)
A 并发性
B 动态性
C 独立性
D 异步性
思路:并发性指多个进程实体同存于内存中,且在一段时间内同时运行。并发性是进程的重要特征,同时也成为操作系统的重要特征;动态性:进程的实质是进程实体的一次执行过程,因此,动态性是进程最基本的特征;独立性:进程实体是一个独立运行、独立分配资源和独立接受调度的基本单位;异步性:指进程按各自独立的、不可预知的速度向前推进,或者说实体按异步方式运行
3.什么是内存抖动(Thrashing)(A )
A 非常频繁的换页活动
B 非常高的CPU执行活动
C 一个极长的执行进程
D 一个极大的虚拟内存
思路:页面的频繁更换,导致整个系统效率急剧下降,这个现象称为内存抖动;抖动一般是内存分配算法不好,内存太小引或者程序的算法不佳引起的页面频繁从内存调入调出。
4.假设如下代码中,若t1线程在t2线程启动之前已经完成启动。代码的输出是(B)
public static void main(String[]args)throws Exception {final Object obj = new Object();Thread t1 = new Thread() {public void run() {synchronized (obj) {try {obj.wait();//释放对象锁,让当前线程等待(这里就是让t1线程等待)System.out.println("Thread 1 wake up.");} catch (InterruptedException e) {}}}};t1.start();Thread.sleep(1000);//We assume thread 1 must start up within 1 sec.Thread t2 = new Thread() {public void run() {synchronized (obj) {obj.notifyAll();//通知obj对象.wait()等待的线程System.out.println("Thread 2 sent notify.");}//走到这,释放锁,发起通知}};t2.start();
}
A Thread 1 wake up Thread 2 sent notify.
B Thread 2 sent notify. Thread 1 wake up
C A、B皆有可能
D 程序无输出卡死
思路:
5.以下哪句的说法是正确的(C)
A 在页式存储管理中,用户应将自己的程序划分为若干个相等的页
B 所有的进程都挂起时,系统将陷入死锁
C 执行系统调用可以被中断
D 进程优先数是进程调度的重要依据,必须根据进程运行情况动态改变
思路:页的划分是操作系统做的;系统进入死锁必须满足4个条件:互斥、循环并等待、不剥夺、请求与保持,所有的进程都挂起,并不表示这些进程间有资源调用和循环等待的关系,有些进程定时器结束后可能自动唤醒;静态优先级调度