下面的程序执行输出几个hello?
#include
#include
int main( ) {
fork( );
fork( );
fork( );
printf(“hello\n”);
return 0;
}
A、3
B、4
C、6
D、8
运行到第一个fork的时候,我们的父进程会创建一个子进程,算上父进程,一共两个进程,运行到第二个fork的时候,这两个进程又会创建出两个进程,一共四个进程,执行到第三个fork的时候,这四个进程每一个都会再产生一个进程,一共8个进程。
D
有一个程序中有A,B,C三个线程同时对一个文件进行读写操作,其中的A,B是写进程只负责往里面写数据,C是读线程,同时把读取的数据从文件中删除,A线程单独写满文件需要10个小时,B单独写程序需要6小时,C线程需要15小时才能读取完整个文件,不考虑三个线程之间的相互影响的情况下现在 小时才能写满文件
A、5
B、6
C、5.5
D、4.5
E、4.8
F、5.3
假设总任务的单位是1,A的工作效率是1/10,B写的工作效率是1/6,C的读工作效率是1/15,那么总工作效率就是1/10+1/6-1/15,结果就是1/5
所以需要5个小时
A
下列进程调度算法中,()可能会出现进程长期得不到调度的情况。
A、非强占式静态优先权法
B、强占式静态优先权法
C、时间片轮转调度算法
D、非强占式动态优先权法
1.强占式:
现行进程在运行过程中,如果有重要或紧迫的进;
进程将被迫放弃处理机,系统将处理机立刻分配给新到达的进程
2.静态优先权:在创建进程时确定的,优先权在进程的整个运行期间保持不变
3.动态优先权:在创建讲程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能,该优先权会随着等待的时间增长而增长。
非强占式静态优先权法一优先权不会变,假如有一个最低优先权的线程在等待,那么等优先级高的进程执行完就可以轮到该进程执行了。
强占式静态优先权法 一强占式,说明高优先权的可以抢夺CPU的执行权。假如一个低优先权的执行当一个高优先权的在就绪状态,那么CPU就会执行高优先权的那个进程,低优先权的就会处于等待假如一直有高优先权的进程在就绪,那么就会一直等待。
时间片轮转调度算法一执行的时间片完毕后,被执行的进程会放到等待队列的队尾,一次循环,既然是循环的话,那就有机会轮到。
非强占式动态优先权法一 虽然是非强占式的,但是如果一个进程一直在等待,那么他的优先权就会动态增长,就可以得到CPU的执行权
B
如果信号量的当前值为-4,则表示系统中在该信号量上有()个进程等待。
A、4
B、3
C、5
D、0
信号量=资源计数器+PCB等待队列
1.count值大于0,表示这个信号量是空闲的(或者理解为资源还可以被使用),进程(线程)可以使用这个信号量
2.count值等于0,表示信号量被其他进程使用,现在不可以使用这个信号量,但PCB等待队列也没有进程在等待
3.count值小于0,count的绝对值表示有多少个进程(线程)在等待
A
设两个进程共用一个临界资源的互斥信号量mutex=1,当mutex=-1时表示()
A、一个进程进入了临界区,另一个进程等待
B、没有一个进程进入临界区
C、两个进程都进入临界区
D、两个进程都在等待
互斥信号量,初始值为1,取值范围为-1,0,1
当信号量为1时,表示两个进程皆未进入需要互斥的临界区
当信号量为0时,表示有一个进程进入临界区运行,另一个必须等待
当信号量为-1时,表示有一个进程正在临界区运行,另一个进程因等待而阻塞在信号量队列中,需要当前已在临界区运行的进程退出时唤醒。
A
若系统中只有用户级线程,则处理机调度单位是()
A、线程
B、进程
C、程序
D、作业
如果只有用户态线程,则线程对操作系统是不可兼得,操作系统只能调度进程。
如果操作系统中有内核态线程,则操作系统可以按线程进行调度
作业可以包括多个进程,完成某一个功能,和题意不符
B
一个在线服务器通常需要读取存储着海量数据的数据库。为了提高服务器处理速度,通常需要加cache(缓存),以下场景中不适合使用cache的是()
A、数据库中每条数据被访问的概率近似相等,且独立
B、使用了多线程机制的服务
C、单条线程尺寸太小的数据
D、有着大量访问的服务
缓存本质上是将在磁盘的数据提前缓存到内存当中,从而减少程序访问获取数据时的IO操作次数,缓存一般会将高频访问的数据,提前读到内存当中缓存起来
A:访问的概率相等,且独立,就失去了缓存的意义,因为无法区分到底缓存了什么数据,能够提高程序的运行效率。除非全部缓存,对标的概念就是内存数据库
B:多线程程序为了减少线程IO的时间,可以把线程使用的数据提前缓存起来,提高程序的运行效率
C:尺寸较小的数据可以被放到换从当中,因为比较小,不会吃掉缓存的空间。同时缓存之后,也能提高程序的运行效率
D:大量的访问的服务想要访问的数据可以缓存下来,减少IO次数,提高程序的运行效率
A