【第一题】
选择【B】
【第二题】
选择【A】
【第三题】
选择【A】等待I/O、进程sleep、等待解锁等原因都会导致进程暂停。
关于"时间片切换",当进程已经获得了除cpu外所有的资源,这时的状态就是就绪态,当分配到了时间片就成了执行态,当时间片用完之前一直未进入阻塞态的话,此后便继续进入就绪态。
【第四题】
选择【A】读写锁在写加锁状态时,其他进行写操作线程会阻塞. 写锁就是防止其他进程读或写. 读锁就是防止在读的时候有写进程进入
【第五题】
选择【A】缺页中断调入新页面,肯定要修改页表项和分配页框,所以Ⅰ、Ⅲ可能发生,同时内存没有页面,需要从外存读入,会发生磁盘I/O;置换空闲页框的时候,如果选择的页框“脏”了,也就是被修改过了,则要写入磁盘进行更新。
【第六题】
选择【A】在使用锁保证现场安全时可能会出现 活跃度 失败的情况主要包括 饥饿、丢失信号、和活锁、死锁 等
1. 死锁是由于资源紧张造成的,多个线程由于请求资源而形成一个环路,谁也不退让,导致谁也不能执行;
2. 饥饿主要是由于线程优先级造成的,当大量线程并发执行时,优先级较小的线程总是得不到执行,引起线程饥饿;
3. 活锁是由于线程在资源请求中遇到冲突时的重试策略不正确造成的。引入一定的随机性可避免活锁。
【第七题】
选择【C】由于响应比=(作业执行时间十作业等待时间)/作业执行时间。高响应比调度算法在等待时间相同的情况下,作业执行时间越短响应比越高,满足短任务优先。随着等待时间增加,响应比也会变大,执行机会就增大,所以不会产生饥饿现象。
优先级调度既有抢占式调度又有非抢占式调度。
【第八题】
选择【B】
【第九题】
选择【D】
- 父进程和子进程都有自己独立的地址空间;
- 父进程结束,所有子进程都结束,进程结束,所有线程都结束;
- 如果多个进程同时占有对方需要的资源而同时请求对方的资源,而它们在得到请求之前不会释放所占有的资源,那么就会导致死锁的发生,也就是进程不能实现同步。
- 多线程和多进程都会引起死锁,一般说的死锁指的是进程间的死锁。
【第十题】
选择【B】
read是系统调用,所以CPU从用户态切换到核心态。
open系统调用应该包含文件的名称,read只是包含输入流。
若文件的数据不在内存中,则进程进入睡眠模式的目的是等待内存对磁盘上文件的映射,因为磁盘的读取比较慢,所以事进入睡眠模式。