美团云计算方面面试题

1、Linux进程间的通信方式?两个进程是如何来共享内存的?两个进程如何通过信号量通信?

  • Linux下进程间通信的方式有:管道(有名/无名) 、消息、信号、信号量、共享内存、邮箱、socket。
  • Linux下共享内存是进程间通信的方式之一,共享内存允许两个或多个进程访问同一块内存,比如像 malloc函数向不同的进程返回执行同一块物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其他拥有这块物理内存指针的进程也会察觉到这个更改。在进程间的通信方式中,共享内存是通信效率最高的,访问共享内存区域和访问进程独有的内存区域一样快,并不需要通过系统调用或者其他通过内核的过程来完成,同时也避免了各种不必要的复制。对共享内存的操作涉及到多个进程间的同步问题,数据应该先写,在读,通常采用用信号量来协调这个过程。

2.进程与线程的区别?

线程是进程中的一个逻辑执行单元,也是进程中可调度的实体;一个进程中可以包含多个线程,但是一个线程只能隶属于一个进程。

与进程的区别:

  • CPU调度方面:CPU调度是以线程为基本单位进行的;
  • 拥有资源方面:进程是拥有资源的基本单位,线程不拥有系统的资源,但是可以使用隶属于进程的资源;
  • 并发方面:线程和进程都支持并发;
  • 系统开销方面:创建进程的时候需要为进程分配资源,销毁进程时需要回收资源,所以使用进程的开销要大于使用线程的开销。

3、进程控制块?

操作系统通过进程控制块来对进程控制和管理的。PCB通常在系统内存中占用一块连续的分区,它存放着操作系统用于描述进程情况以及控制进程运行情况所需的全部信息。

4、为什么要CPU调度?

CPU调度的目标是在任何时候都有某些进程在运行,是CPU使用率最大化。 同一时刻只有一个进程占有CPU资源,但一个进程在等待IO时等等一些阻塞进程的动作时,CPU就回空闲出来,这时候,我们应该让这个阻塞的进程让出CPU资源,让其他已经处于就绪状态的进程执行。这样就可以使CPU使用率最大化。

5、为什么要死锁?

在多道程序环境下,多个进程可能竞争一定数量的资源,某个进程申请资源,如果这时这个资源不可用,那么这个进程就进入等待状态。如果所申请的资源被其他等待进程占有,那么该等待进程可能再也无法改变其状态,一直等待下去,这种情况称之为死锁。

6、cache的作用?

cache是处于 CPU寄存器和内存之间的一层缓存,用来加快CPU的取指速率,使用时: CPU需要数据时,首先会查找cache中有没有需要的数据,如果有,则取走,如果没有,则查询内存,并将数据更新到缓存中,以供下次取指。

7、DNS (Domain name system)域名系统,简单描述其工作原理。

DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名指定的类别。它是基于UDP的服务,端口是53,该应用一般不直接为用户使用,而是为其他应用服务如 HTTP、SMTP等在其中需要完成主机名到IP地址转换。

END

作者:小招 光明顶小招 来源:https://mp.weixin.qq.com/s/a0bun4sXUVYhRgG1SYuOBA 本文版权归原作者所有。转载文章仅为传播更多信息之目的,如有侵权请与我们联系,我们将及时处理。

原文发布于微信公众号 - java工会(javagonghui)

原文发表时间:2018-06-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

MySQL中的事务和锁简单测试(r10笔记第46天)

一直以来,对于MySQL中的事务和锁的内容是浅尝辄止,没有花时间了解过,在一次看同事排查的故障中有个问题引起了我的兴趣,虽然过去了很久,但是现在简单总结一下还是...

3297
来自专栏鬼谷君

监控mysql各种选项

1001
来自专栏Hadoop实操

由Impala-3316导致的并发查询缓慢问题

912
来自专栏数据库

Oracle常用经典SQL查询(一)

注:本文的查询测试以oracle11.2.0.4.0企业版作为查询测试,截图只是为了证明SQL的可用性及正确性,查询结果因测试环境不同各有差异。 1、查看表空间...

1676
来自专栏后台全栈之路

在 C/C++ 异步 I/O 中使用 MariaDB 的非阻塞接口

对 C/C++,MySQL 提供的库传统上都是阻塞操作,因此适合多线程 / 进程服务器架构编程。但是如果用 C/C++ 编写服务器,往往对性能会有极致要求,此时...

4202
来自专栏晓晨的专栏

.NET Core 获取操作系统各种信息

1603
来自专栏我的博客

TP入门第十一天

1、数据库视图 视图通常是指数据库的视图,视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储...

3416
来自专栏大数据学习笔记

HDFS ZKFC实现NameNode自动切换原理

官方文档: https://issues.apache.org/jira/secure/attachment/12521279/zkfc-design.pd...

33310
来自专栏技术沉淀

Python: 操作MySQL数据库

1294
来自专栏ASP.NETCore

讨论.NET Core 配置对GC 工作模式与内存的影响

https://mp.weixin.qq.com/s/PqhUzvFpzopU7rVRgdy7eg

813

扫码关注云+社区