软件测试-Linux

错题集:

(1)链接:https://www.nowcoder.com/questionTerminal/4211aa8c7e3d47a2abb1004e57cc3b6d
来源:牛客网

用户空间和系统空间的内存区间不一样,对于这两种区间,CPU的运行状态也不一样。在用户空间,CPU处于用户态,在系统空间,CPU处于系统态系统调用通过中断完成,这一过程中系统由用户态变为系统态。 在系统态下,系统可以无限制的访问内核资源。系统调用是在系统权限下执行的,系统权限即系统态,也叫管态。

(2)Linux中

sort命令用来排序,默认忽略大小写,以”文字“类型来排序(sort -n:使用“纯数字”排序;sort -r:反向排序),

uniq对排序完成后的重复的数据仅列出一个显示(uniq -c:计数)

(3)分区定义:

主分区与扩展分区最多可以有4个(硬盘的限制)

扩展分区最多只能有一个(操作系统的限制)

逻辑分区是由扩展分区持续分出来的分区

能够被格式化后作为数据访问的分区为主要分区和逻辑分区,扩展分区无法格式化(每种操作系统设置的文件权限和属性不同,为了存放这些文件所需的数据,需要将分区进行格式化,以成为操作系统可以利用的文件系统格式)

逻辑分区的数量依据操作系统而不同,linux系统中IDE硬盘最多有59个逻辑分区,SATA硬盘有11个逻辑分区

(4)inode:文件权限和相关属性,同时记录此文件数据所在的block号码

super block:记录文件的整体信息,包括inode/block总量、使用量、剩余量,以及文件系统的格式与相关信息

block:实际记录文件的内容,包括文件名、文件名占用的inode号码。

文件名只与目录有关,文件内容与inode有关

(5)ln 命令:硬链接,软连接

由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:

  • 文件有相同的 inode 及 data block;
  • 只能对已存在的文件进行创建;
  • 不能交叉文件系统进行硬链接的创建;
  • 不能对目录进行创建,只可对文件创建;
  • 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

  

软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。因此软链接的创建与使用没有类似硬链接的诸多限制:

  • 软链接有自己的文件属性及权限等;
  • 可对不存在的文件或目录创建软链接;
  • 软链接可交叉文件系统;
  • 软链接可对文件或目录创建;
  • 创建软链接时,链接计数 i_nlink 不会增加;
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

(6)fork():一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。

详见:https://www.cnblogs.com/dongguolei/p/8086346.html

(7)$#:后接参数的个数

$@:代表每个独立的变量,如“$1” "$2"

$*:代表“$1c$2c$3c$4”,c为分隔字符,默认为空格键

(8)Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。

  • 系统调用: 系统调用发生在内核态,面向底层文件访问。
  • 库函数调用: 即通常所说的应用编程接口API ,发生在用户态,面向应用。

常见系统函数

fcntl 文件控制
open 打开文件
creat 创建新文件
close 关闭文件描述字
read 读文件
write 写文件
readv 从文件读入数据到缓冲数组中
writev 将缓冲数组里的数据写入文件
pread 对文件随机读
pwrite 对文件随机写
lseek 移动文件指针
_llseek 在64位地址空间里移动文件指针
dup 复制已打开的文件描述字
dup2 按指定条件复制文件描述字
flock 文件加/解锁
poll I/O多路转换
truncate 截断文件
ftruncate 参见truncate
umask 设置文件权限掩码
fsync 把文件在内存中的部分写回磁盘

(9)

select

  • select能监控的描述符个数由内核中的FD_SETSIZE限制,仅为1024,这也是select最大的缺点,因为现在的服务器并发量远远不止1024。即使能重新编译内核改变FD_SETSIZE的值,但这并不能提高select的性能。
  • 每次调用select都会线性扫描所有描述符的状态,在select结束后,用户也要线性扫描fd_set数组才知道哪些描述符准备就绪,等于说每次调用复杂度都是O(n)的,在并发量大的情况下,每次扫描都是相当耗时的,很有可能有未处理的连接等待超时。
  • 每次调用select都要在用户空间和内核空间里进行内存复制fd描述符等信息。

poll

  • poll使用pollfd结构来存储fd,突破了select中描述符数目的限制。
  • 与select的后两点类似,poll仍然需要将pollfd数组拷贝到内核空间,之后依次扫描fd的状态,整体复杂度依然是O(n)的,在并发量大的情况下服务器性能会快速下降。

epoll

  • epoll维护的描述符数目不受到限制,而且性能不会随着描述符数目的增加而下降
  • 服务器的特点是经常维护着大量连接,但其中某一时刻读写的操作符数量却不多。epoll先通过epoll_ctl注册一个描述符到内核中,并一直维护着而不像poll每次操作都将所有要监控的描述符传递给内核;在描述符读写就绪时,通过回掉函数将自己加入就绪队列中,之后epoll_wait返回该就绪队列。也就是说,epoll基本不做无用的操作,时间复杂度仅与活跃的客户端数有关,而不会随着描述符数目的增加而下降。
  • epoll在传递内核与用户空间的消息时使用了内存共享,而不是内存拷贝,这也使得epoll的效率比poll和select更高。

(10)系统测试的16个测试策略:

功能测试、性能测试、压力测试、容量测试、安全性测试、GUI测试、可用性测试、安装测试、配置测试、异常测试,备份测试、健壮性测试、文档测试、在线帮助测试、网络测试、稳定性测试。

(11)握手需要三次通信,分手需要四次通信。

(12)内零头是指进程在向 操作系统 请求内存分配时,系统满足了进程所需要的内存需求后,还额外多分了一些内存给该进程;外零头是指内存中存在着一些空闲的内存区域, 

页式和请求页式会产生内零头。段式和请求段式外零头。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值