以下复习资料仅供参考,并非面试真题。
用过的 linux 指令
netstat : 显示网络状态 (-a 所有选项,-t 仅显示 tcp,-u 仅显示 udp,-r 路由表)
tcpdump : 截获当前所有通过本机网卡的数据包。
-i 指定网卡 tcpdump tcp port 23 and host XXX 获取从主机 XXX 接收或发出的 telnet 包
top:任务管理器、ping、ps:查看进程状态、kill 发信号、man 帮助文档、chmod 修改权 限、scp:远程文件复制、cat:查看文件内容
ipcs :检查系统上共享内存的分配,报告进程间通信设施状态。
ipcrm :手动解除系统上共享内存的分配,删除消息队列、信号集、或者共享内存标识。文件操作函数
a. Linux API: create:创建,umask:去掉一些权限,open:打开;write,read:读写;lseek: 定位;close:关闭
b. C 库(FILE ): fopen:创建打开;fclose:关闭;fileno:FILE转 fd;fgets;fprintf,fread共享内存可以通过 mmap()映射普通文件(特殊情况下还可以采用匿名映射)机制实现, 也可以通过 System V 共享内存机制实现。
mmap 的机制:在磁盘上建立一个文件,每个进程存储器里面,单独开辟一个空间来进 行映射。mmap 保存到实际硬盘。优点:储存量可以很大(多于主存);缺点:进程间读 取和写入速度要比主存的要慢。。
shm 的机制:每个进程的共享内存都直接映射到实际物理存储器里面。shm 保存到物理存储器(主存),实际的储存量直接反映到主存上。优点,进程间访问速度(读写)比磁 盘要快;缺点,储存量不能非常大(多于主存) 。
使用上看:如果分配的存储量不大,那么使用 shm;如果存储量大,那么使用 mmap。进程 VS 线程
进程:资源管理和分配的基本单位,每个进程都有自己的地址空间。进程由程序代码、代码 相关的数据集和进程控制块(PCB)3 部分组成。
线程:CPU 调度和分派的基本单位,线程是属于进程的,它运行在进程空间内,同一进程所产生的线程共享同一内存空间。每个线程有独立的栈和线程控制块(TCB,包含寄存器的值、 程序计数器、优先级等)。
并发度:两者都可提高并发度
开销:线程执行开销小,但不利于资源管理和保护,进程创建和销毁系统都要分配和回 收资源,开销大。
速度:线程的产生、通信、切换都比较快&