操作系统习题

1、

操作系统习题_死锁

线程是进程内一个相对独立的执行单元,但并不能单独运行,只能在程序中运行

 

2、

操作系统习题_死锁_02


A.文件只是文件而已,并不能起到逻辑组织的作用


B.不太清楚,链接文件的最大好处是安全、


C.链接文件不适合随机存取。链式存储结构,又叫链接存储结构。在计算机中用一组任意的 ​​存储单元 ​​存储线性表的 ​​数据元素 ​​(这组存储单元可以是连续的 , 也可以是不连续的 ). 它不要求逻辑上相邻的元素在物理位置上也相邻 . 因此它没有 ​​顺序存储结构 ​​所具有的弱点, 但也同时失去了 ​​顺序表 ​​可 ​​随机存取 ​​的优点.


举个栗子: 数组在内存中是按顺序存放的,可以通过下标直接定位到某一个元素,这是随机存到


链表在内存中不是按顺序存放的,而是通过指针连在一起,为了访问某一元素,必须从链头开始顺着指针才能找到某一个元素,是顺序存取


D.对于软链接。链接文件其实是路径信息, 而不是索引节点。对于硬链接,链接文件应该也是文件,索引节点只不过指向这个文件而已。


 


3、


操作系统习题_微信_03

每块索引地址占4B,物理块大小为2KB,则一个索引物理块可存放512个物理块的索引,两级索引则可存放512*512个物理块的索引,每个物理块大小为2KB,则文件的最大尺寸为512*512*2KB=512MB。

 


 4、


操作系统习题_消息队列_04

  • 多次性,是指无需在作业运行时一次性地全部装入内存,而是允许被分成多次调入内存运行。
  • 对换性,是指无需在作业运行时一直常驻内存,而是允许在作业的运行过程中,进行换进和换出。
  • 虚拟性,是指从逻辑上扩充内存的容量,使用户所看到的内存容量,远大于实际的内存容量。


 


5、


 


 操作系统习题_死锁_05

这道题终于会做了。是这样的原理,磁盘会一直朝某个方向旋转,不会因为处理数据而停止。本题要求顺序处理R1到R10,起始位置在R1,一周是20ms,共10个记录,所以每个记录的读取时间为2ms。首先读R1并处理R1,读R1花2ms,读好后磁盘处于R1的末尾或R2的开头,此时处理R1,需要4ms,因为磁盘一直旋转,所以R1处理好了后磁盘已经转到R4的开始了,这时花的时间为2+4=6ms。这时候要处理R2,需要等待磁盘从R5一直转到R2的开始才行,磁盘转动不可反向,所以要经过8*2ms才能转到R1的末尾,读取R2需要2ms,再处理R2需要4ms,处理结束后磁盘已经转到R5的开头了,这时花的时间为2*8+2+4=22ms。等待磁盘再转到R3又要8*2ms,加上R3自身2ms的读取时间和4ms的处理时间,花的时间也为22ms,此时磁盘已经转到R6的开头了,写到这里,大家已经可以看到规律了,读取并处理后序记录都为22ms,所以总时间为6+22*9=204ms。


 


 6、


操作系统习题_信号量_06

用户级线程的管理由用户应用程序来完成,内核是不知道用户线程的。


不论什么进程(系统或用户),它们都是在操作系统内核的支持下完成的,与内核紧密相关,不能离开内核。


进程中可以包括内核支持线程和用户级线程。其中,


内核支持线程:它就是在内核的支持下运行的,离不开内核,系统在内核空间为每一个内核支持线程设置一个线程控制块,内核通过此块来感知线程存在,并加以控制它。


用户级线程   : 它仅存在于用户空间,对于这种线程的创建、撤消、线程之间的同步与通信等功能,都无须利用系同调用来实现(无须内核支持控制)。一般为一个应用进程创建较多的用户线程,线程之间的切换和调用比进程要快和简单,这些线程的任务控制块都存在用户空间,内核完全不知道用户级线程的存在。


 


7、


操作系统习题_死锁_07

Windows中进程间通信方式有:File, 管道(Pipe),命名管道(named pipe),信号(Signal),消息队列(Message queue),共享内存(shared memory),内存映射(memory –mapped file),信号量(semaphore),套接口(Socket),命名事件。临界区事实上应该算是由信号量来保证的。

临界区与事件是windows线程间通信的方式。管道,共享内存,消息队列,信号量,socket则是windows进程间通信的方式。


 


8、


操作系统习题_操作系统习题_08

对于A:进程被唤醒,并不代表该进程一定会上CPU执行


对于B:进程被唤醒,也就是说该进程从阻塞态转换为就绪态


对于C:优先权可能会改变,可能不改变,一般来说是不会改变的


对于D:好像OS没有做这项功能


 


 9、


操作系统习题_操作系统习题_09

进程间的通信形式有7种:


pipe,named pipe,semophore,message queue,signal,shared memory,socket


进程间通信: 1,管道(Pipe)及命名管道(Named pipe) 2,信号(Signal) 3,消息队列(Message queue) 4,共享内存(Shared memory) 5,套接字(Socket) 6,信号量(Semaphore)


 


10、


操作系统习题_操作系统习题_10

产生死锁的原因主要是:


(1) 因为系统资源不足。

(2) 进程运行推进的顺序不合适。

(3) 资源分配不当等。

如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则

就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。

产生死锁的四个必要条件:

(1) 互斥条件:一个资源每次只能被一个进程使用。

(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之


一不满足,就不会发生死锁。


D选项:共享型设备是指在一段时间内允许多个进程同时访问的设备


 


 11、


操作系统习题_消息队列_11

A,进程与程序不是一一对应的,一个程序可以启动多个进程 


B, 执行一个作业可能会运行多个进程


C,进程是动态的