计算机基础高频题分析哪家强?
来找Ray聊
受够了从厚重的专业书里低效率翻面试题答案?
受够了排版凌乱错误连篇的低质量博客文?
从今天开始Ray将会每周给大家分享无论什么技术岗都会碰到的一些计算机基础高频题的详解。内容详细、参考权威书籍、排版清晰。
从此以后计算机基础题就再也难不倒你了。
往下看!
Q: 介绍一下进程和线程的区别和它们各自的使用场景
1. 关于进程
进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。
2. 关于线程
3. 区别
Q:介绍一下进程间通信的不同方法和它们的使用场景
1. 什么是进程间通信
因为每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走操作系统面试题,内核提供的这种机制称为进程间通信(IPC, )
2. 进程间通信的方法
半双工,即数据只能单向流动操作系统面试题,两个进程间通信时需要建立两个管道
由于匿名,只能在有亲缘关系(有公共祖先)的进程间使用,如父子进程、兄弟进程
数据读写操作:一个进程从管道尾部写入数据,另一个进程从管道头部读出数据
半双工
克服了匿名管道没有名字的限制,因此可以通过路径名在无亲缘关系的进程间通信
即数据块的链表,允许一个或多个进程向它写入数据,允许一个或多个进程从它读出数据
消息队列克服了管道缓冲区大小受限的缺点,避免了管道的同步和阻塞问题,但是每个数据块依旧有一个最大长度的限制
因为操作系统分配给每个进程的内存地址并不是实际的物理地址,而是虚拟地址,所以将两个进程各拿出一块虚拟地址映射到相同的物理地址,那么两个进程就可以直接读写内存而不用进行数据的拷贝
和其他IPC方法直接将数据从一个进程传递到另一个进程不同,信号量是一种控制多个进程对共享资源的访问,一种锁机制 。
其本质是一个计数器,比如信号量初始值为0,当进程1来访问内存a时,信号量将被置为1,这是当另一个进程2要来访问相同的内存a时,由于发现信号量为1,就知道已经有进程在访问内存a,因此会被互斥。所以某种意义上来说,信号量也是IPC的一种。
信号用来通知进程发生了异步事件。有两种发送信号的方式可以通知进程一系列预定好的事件:
i. 进程间互相通过系统调用发送信号
ii. 内核由于没写内部事件向进程发送信号
接收到信号的进程可以根据不同的方式处理信号,比如:
iii. 类似中断的处理程序,对于需要处理的信号,进程可以指定相应的处理函数
iv. 忽略某个信号,对该信号不做任何处理
v. 对该信号的处理采取系统默认措施(大部分信号的默认处理是终止进程)
举个常见的例子,比如当我们在中按下CTRL+C时,就将产生信号,前台进程组中所有的进程都会收到信号然后退出。
这是一种通信机制,不同于前几种方式只能进行本机进程通信,套接字可用于不同机器之间的进程通信。
套接字是我们熟知的TCP/IP的网络通信的基本操作单元,也可以把它理解成不同主机之间的进程进行双向通信的端点。
— End —
撰文:Ray
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh