腾讯后台开发面试题解答

上传人:cl****1 文档编号:504887429 上传时间:2022-08-06 格式:DOCX 页数:15 大小:36.44KB
返回 下载 相关 举报
腾讯后台开发面试题解答_第1页
第1页 / 共15页
腾讯后台开发面试题解答_第2页
第2页 / 共15页
腾讯后台开发面试题解答_第3页
第3页 / 共15页
腾讯后台开发面试题解答_第4页
第4页 / 共15页
腾讯后台开发面试题解答_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《腾讯后台开发面试题解答》由会员分享,可在线阅读,更多相关《腾讯后台开发面试题解答(15页珍藏版)》请在金锄头文库上搜索。

1、-linu*和os:netstat :显示网络状态tcpdump:主要是截获通过本机网络接口的数据,用以分析。能够截获当前所有通过本机网卡的数据包。它拥有灵活的过滤机制,可以确保得到想要的数据。ipcs:检查系统上共享存的分配ipcrm:手动解除系统上共享存的分配如果这四个命令没听说过或者不能熟练使用,根本上可以回家,通过的概率较小 _ ,这四个命令的熟练掌握程度根本上能表达面试者实际开发和调试程序的经历)cpu 存硬盘等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看各进程状态抓包相关等相关命令必须熟练掌握awk sed需掌握共享存的使用实现原理必考必问,然后共享存段

2、被映射进进程空间之后,存在于进程空间的什么位置.共享存段最大限制是多少.共享存定义:共享存是最快的可用IPC进程间通信形式。它允许多个不相关的进程去同一局部逻辑存。共享存是由IPC为一个进程创立的一个特殊的地址围,它将出现在进程的地址空间中。其他进程可以把同一段共享存段“连接到它们自己的地址空间里去。所有进程都可以共享存中的地址。如果一个进程向这段共享存写了数据,所做的改动会立刻被有同一段共享存的其他进程看到。因此共享存对于数据的传输是非常高效的。共享存的原理:共享存是最有用的进程间通信方式之一,也是最快的IPC形式。两个不同进程A、B共享存的意思是,同一块物理存被映射到进程A、B各自的进程地

3、址空间。进程A可以即时看到进程B对共享存中数据的更新,反之亦然。c+进程存空间分布注意各局部的存地址谁高谁低,注意栈从高到低分配,堆从低到高分配ELF是什么.其大小与程序中全局变量的是否初始化有什么关系注意未初始化的数据放在bss段可执行文件:包含了代码和数据。具有可执行的程序。可重定位文件:包含了代码和数据这些数据是和其他重定位文件和共享的object文件一起连接时使用的共享object文件又可叫做共享库:包含了代码和数据这些数据是在连接时候被连接器ld和运行时动态连接器使用的。使创立共享库容易,使动态装载和共享库的结合更加容易。在ELF下,在C+ 中,全局的构造函数和析构函数在共享库和静态

4、库中用同样方法处理。使用过哪些进程间通讯机制,并详细说明重点makefile编写,虽然比较根底,但是会被问到mkdir mfcd mfvim makefilehello.o:hello.c hello.hgcc c hello.o -Lmmake./hellogdb调试相关的经历,会被问到如何定位存泄露.存泄漏是指堆存的泄漏。堆存是指程序从堆中分配的、大小任意的存块的大小可以在程序运行期决定、使用完后必须显示释放的存。应用程序一般使用malloc、realloc、new等函数从堆中分配到一块存,使用完后,程序必须负责相应的调用free或delete释放该存块。否则,这块存就不能被再次使用,我们

5、就说这块存泄漏了。C+程序缺乏相应的手段来检测存信息,只能使用top指令观察进程的动态存总额。而且程序退出时,我们无法获知任何存泄漏信息使用Linu*命令回收存,可以使用ps、kill两个命令检测存使用情况和进展回收。在使用超级用户权限时使用命令“ps,它会列出所有正在运行的程序名称和对应的进程号PID。kill命令的工作原理是向Linu*操作系统的核送出一个系统操作信号和程序的进程号PID动态和静态的区别动态是指在生成可执行文件时不将所有程序用到的函数到一个文件,因为有许多函数在操作系统带的dll文件中,当程序运行时直接从操作系统中找。而静态就是把所有用到的函数全部到e*e文件中。动态是只建

6、立一个引用的接口,而真正的代码和数据存放在另外的可执行模块中,在运行时再装入;而静态是把所有的代码和数据都复制到本模块中,运行时就不再需要库了。32位系统一个进程最多有多少堆存多线程和多进程的区别重点面试官最最关心的一个问题,必须从cpu调度,上下文切换,数据共享,多核cup利用率,资源占用,等等各方面答复,然后有一个问题必须会被问到:哪些东西是一个线程私有的.答案中必须包含存放器,否则悲催写一个c程序区分系统是16位or32位法一:int k=0;if(unsigned int)k 63356) coutat least 32 bitsendl;else cout16 bitsendl;法二

7、:/32为系统int i=65536;coutiendl;int j=65535;coutj5. 改变当前工作目录进程活动时,其工作目录所在的文件系统不能卸下。一般需要将工作目录改变到根目录。对于需要转储核心,写运行日志的进程将工作目录改变到特定目录如 /tmpchdir(/)6. 重设文件创立掩模进程从创立它的父进程那里继承了文件创立掩模。它可能修改守护进程所创立的文件的存取位。为防止这一点,将文件创立掩模去除:umask(0);7. 处理SIGCHLD信号处理SIGCHLD信号并不是必须的。但对于*些进程,特别是效劳器进程往往在请求到来时生成子进程处理请求。如果父进程不等待子进程完毕,子进

8、程将成为僵尸进程zombie从而占用系统资源。如果父进程等待子进程完毕,将增加父进程的负担,影响效劳器进程的并发性能。在Linu*下可以简单地将 SIGCHLD信号的操作设为SIG_IGN。signal(SIGCHLD,SIG_IGN);这样,核在子进程完毕时不会产生僵尸进程。这一点与BSD4不同,BSD4下必须显式等待子进程完毕才能释放僵尸进程。三守护进程实例守护进程实例包括两局部:主程序test.c和初始化程序init.c。主程序每隔一分钟向/tmp目录中的日志test.log报告运行状态。初始化程序中的init_daemon函数负责生成守护进程。读者可以利用init_daemon函数生成自己的守护进程。linu*的存管理机制是什么.Linu*虚拟存的实现需要6种机制的支持:地址映射机制、存分配回收机制、缓存和刷

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号