大家好,霖霖来为大家解答以上问题。操作系统软件,操作系统面试题很多人还不知道,现在让我们一起来看看吧!
5. IPC几种通信方式。
管道(pipe):管道包括三种:1)普通管道PIPE, 通常有种限制,一是半双工,只能单向传输;二是只能在父子进程间使用. 2)流管道s_pipe: 去除了第一种限制,可以双向传输. 3)命名管道:name_pipe, 去除了第二种限制,可以在许多并不相关的进程之间进行通讯.
信号量(semophore):信号量是一种计数器,可以控制进程间多个线程或者多个进程对资源的同步访问,它常实现为一种锁机制。实质上,信号量是一个被保护的变量,并且只能通过初始化和两个标准的原子操作(P/V)来访问。(P,V操作也常称为wait(s),signal(s))
信号(Signal):信号是Unix系统中使用的最古老的进程间通信的方法之一。操作系统通过信号来通知某一进程发生了某一种预定好的事件;接收到信号的进程可以选择不同的方式处理该信号,一是可以采用默认处理机制-进程中断或退出,一是忽略该信号,还有就是自定义该信号的处理函数,执行相应的动作。内核为进程生产信号,来响应不同的事件,这些事件就是信号源。信号源可以是:异常,其他进程,终端的中断(Ctrl-C,Ctrl+\等),作业的控制(前台,后台进程的管理等),分配额问题(cpu超时或文件过大等),内核通知(例如I/O就绪等),报警(计时器)。
消息队列(Message Queue):消息队列就是消息的一个链表,它允许一个或者多个进程向它写消息,一个或多个进程向它读消息。Linux维护了一个消息队列向量表:msgque,来表示系统中所有的消息队列。消息队列克服了信号传递信息少,管道只能支持无格式字节流和缓冲区受限的缺点。
共享内存(shared memory):共享内存映射为一段可以被其他进程访问的内存。该共享内存由一个进程所创建,然后其他进程可以挂载到该共享内存中。共享内存是最快的IPC机制,但由于linux本身不能实现对其同步控制,需要用户程序进行并发访问控制,因此它一般结合了其他通信机制实现了进程间的通信,例如信号量。
套接字(socket):socket也是一种进程间的通信机制,不过它与其他通信方式主要的区别是:它可以实现不同主机间的进程通信。一个套接口可以看做是进程间通信的端点(endpoint),每个套接口的名字是唯一的;其他进程可以访问,连接和进行数据通信。
6. 什么是虚拟内存。
虚拟内存:逻辑上不分内外存,实现了逻辑上的“扩存”。
虚拟存储器具有请求调入、 置换功能,当所需要的页面不再内存中时,就要执行页面的请求调入算法。
7. 虚拟地址、逻辑地址、线性地址、物理地址的区别。
逻辑地址(虚拟地址):由程序产生的与段相关的偏移地址部分
线性地址:段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。
物理地址:在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址
本文到此结束,希望对大家有所帮助。
标签: 操作系统面试题
免责声明:本文由用户上传,如有侵权请联系删除!