20160614乐视实习生笔试

将笔试过程中遇到的小而杂乱的知识点记录如下:

  • 系统级线程和用户级线程都需要内核支持?
  • 系统级线程是由操作系统提供支持的,每次切换都会进行“用户态–内核态”的切换,效率较低。但优点是可以发挥多核处理器的效能,因为内核会将同一个进程中的多个线程同时分配给处理器的某个核心。当一个线程阻塞时,其他线程不受影响。
  • 用户级线程是由应用程序来提供的,内核感知不到它的存在。所以不会由内核进行调度(linux中pthread就是这种)。需要由应用程序实现所需要的各种同步条件。但也因为操作系统感知不到多线程的存在,所以不能很好地利用多核处理器,每次只将一个核心分配给当前进程,而进程中也只有一个线程在运行。所以当该线程阻塞时,会导致进程被阻塞。但他的优点是不需要进行“用户态–内核态”的切换,故效率较高。
  • FTP和SMTP各使用哪个端口?
  • FTP一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据,而21用于传输控制流,并且是命令通向FTP服务器的进口。
  • SMTP默认运行在25端口上。 <!--more-->

<table> <thead> <tr> <th align="center">服务</th> <th align="center">端口</th> </tr> </thead> <tbody><tr> <td align="center">ECHO</td> <td align="center">7</td> </tr> <tr> <td align="center">NETSTAT</td> <td align="center">15</td> </tr> <tr> <td align="center">SSH</td> <td align="center">22</td> </tr> <tr> <td align="center">TELNET</td> <td align="center">23</td> </tr> <tr> <td align="center">DNS</td> <td align="center">53</td> </tr> <tr> <td align="center">MTP(邮件传输协议)</td> <td align="center">57</td> </tr> <tr> <td align="center">TFTP</td> <td align="center">69</td> </tr> <tr> <td align="center">HTTP</td> <td align="center">80</td> </tr> </tbody></table>

  • HTTP/1.0和HTTP/1.1都支持keep alive?
  • 在 HTTP 1.0 中, 没有官方的 keep-alive 的操作。通常是在现有协议上添加一个指数Connection; Keep-Alive
  • 在 HTTP 1.1 中 所有的连接默认都是持续连接,除非特殊声明不支持。
  • crontab文件6个域的正确排列方式:
  • M,H,D,m,d,cmd M:MIN H:HOUR D:DAY m:mouth d:day of week cmd:command
  • Linux下执行ls会调用哪些系统调用?(可用strace -o ls.txt ls查看) A.fork B.execve C.read D.nmap
  • 答案选A,B,C。注意D是nmap而不是mmap。而在上述命令的结果中并没有发现fork,是因为Linux下用clone(2)代替了fork(2)。这里
  • 硬链接和符号链接
  • 硬链接即一个名称,这个名称指向元文件的iNode,同时该iNode的引用数加1.软连接相当于window下的快捷方式,会创建一个新的iNode。
  • 不可以对目录/文件夹简历硬链接。
  • mysql实现主从复制的日志是哪个?
  • MySQL5.6开始主从复制有两种方式:基于日志(binlog);基于GTID(全局事务标示符)。
  • mysql主(称master)从(称slave)复制的原理: (1).master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events) (2).slave将master的binary log events拷贝到它的中继日志(relay log) (3).slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)
  • HTTP可通过206返回码实现断点续传。
  • get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
  • map插入时不会引起迭代器失效;unorder_map插入时一般情况下不会引起迭代器失效,只有当容器增长到需要rehash时,原来的所有迭代器失效。
  • 构造函数可以抛出异常, 并且构造函数抛出异常时唯一表明构造失败的方法。但为了异常安全性,析构函数不要抛出异常。
  • 非关系型数据库:Redis,MongoDB,HBase 关系型数据库:PostGRESQL
  • mysql开启一个事务:START TRANSACTION 或 BEGIN