1. c语言为什么还这么流行?c语言的应用场景在哪里?

     附上链接: https://www.tomorrow.wiki/archives/1893 ,这篇文章真心不错。

     首先,c语言的快是无法比拟的优势(但是个人觉得好用的话,还是java比较好用)。因此,C语言在快反应的需求上有很大的优势。并且,linux等有大量的c代码库,它们是基本无法重写的(代价太高昂)。应用场景:高实时系统、微机和嵌入式系统。

     易用且安全,与,高速,是比较难调和的两端。


2. c语言的宏定义需要注意什么?

     这个比较简单,以后再说。


3. 内核态和用户态的区别是什么?是否进行过内核态的开发?

    内核的概念

    如图,内核是狭义的操作系统,负责管理硬件资源,并为上层用户提供访问的接口——系统调用。

   阿里云基础面试

    内核态和用户态

    由于内核资源有限,所以linux设置了相应的权限来限制对内核资源的访问,相应的权限对应了两种状态——用户态和内核态,用户态能够访问的资源要收到很大的限制。

    用户态和内核态的切换

     (1) 用户态通过系统调用如sbrk,read等进入系统调用。

     (2) 对异常的处理,会陷入内核态。

     (3) 对中断的处理,也会陷入内核态。


4. 如果linux变得很卡了,你该怎么办? 

     首先, 使用 free -h 查看内存和交换区的使用情况。

     第二步, 使用top查看资源使用情况,按M键按照内存排序, 按住P键,按照cpu使用情况排序。

     当然, 还有更加高级的操作

     ps -aux | sort -nk4r | head -10

     ps -aux 输出所有进程。 sort -nk4r, -n是按照数值排序, -k4指的是选定第四列作为排序依据, -r指的是逆序。 head -10显示前10行。其中, 使用k4还是k5, k6, 可以先使用ps -aux, 看情况使用。 


5. linux如何查看网络端口情况

    方法一: netstat -natp, -n 是ip化,否则会显示域名信息, -a 是所有, -t是tcp链接(-u是udp链接), -p 显示进程pid。

                  这种方法的好处在于可以清楚地查看每一个建立起来的链接. 比如我打开一个sslocal, 本地的其他应用是否链接到了这个端口, 就可以用netstat 去查看. 从而排除其他应用没有连上sslocal的情况.

    方法二: lsof -i tcp:<端口号> 或者 lsof -i:<端口号> 查看端口号对应的链接.

可以通过kill -9 pid关闭链接(比较粗暴).但是这种做法会带来很严重的后果,就是服务端请求关闭连接,而客户端进程由于直接被杀死,一直没有相应。而客户端在原来的连接没有关闭的情况下是无法建立新的连接的,因此会出现一时半会连不上的现象。综上,还是换种方法正常关掉tcp连接比较好。

    阿里云基础面试

   感谢黄神提供修改意见。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-25
  • 2021-05-02
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-27
  • 2021-09-21
  • 2021-12-29
  • 2022-01-17
  • 2022-12-23
  • 2021-09-19
相关资源
相似解决方案