1、top命令 ---显示的结果详解
top - 09:52:46 up 系统当前时间
1:21, 系统启动后到现在已经运行的时间
2 users, 连接到系统的终端数
load average: 0.02, 0.04, 0.05 1分钟,5分钟,15分钟时系统进程的平均数,如果超过cpu数,则表示负载很重
Tasks: 227 total, 当前系统进程总数
2 running, 正在运行的进程
225 sleeping, 未运行的进程
0 stopped, 被停止的进程
0 zombie 被恢复的进程
%Cpu(s): 0.3 us, cpu 0.3正在使用
0.3 sy, cpu中有0.3是用于系统
0.0 ni, 0.0用于用于
99.3 id, 99.3用于硬件检测
0.0 wa, 0.0用于硬件支配
0.0 hi, 0.0超编
0.0 si, 缓存
0.0 st 外溢
KiB Mem : 1877668 total, 内存总量
860932 free, 空闲内存量
691304 used, 已使用内存量
325432 buff/cache 缓冲使用中的内存量
KiB Swap: 2097148 total, 交换分区内存总量
2097148 free, 交换分区空闲内存量
0 used. 交换分区已使用内存量
1006060 avail Mem 交换分区当前可用内存量
2、进程中有很多rcuob,都是内核线程,父进程都是PID为2的kthreadd(内核线程,管理调度其他的线程),作用是从相应的CPU卸载RCU回调(callback)
3、父进程和子进程:子进程是由父进程产生的,kill了父进程之后,子进程为了避免成为僵尸进程,系统会自动给它找一个父进程,或者交给init托管,一般来说最后会被清除
4、php中程序执行函数:
exec:执行一个外部程序。如exec("top -n -1 -b",$arr,$r),如果不加第二个参数,那么默认返回结果的最后一行,返回的结果需要变量去接收它或者做一个打印的动作才可以 输出;加了第二个参数之后会把结果返回到$arr中,然后打印$arr即可看到结果;加了第二个参数才可以加第三个参数
system:执行一个外部程序,并且显示输出。如$arr = system(""top -n -1 -b",$r),返回结果的最后一行给接收的变量$arr,成功/失败的状态会赋给$r
passthru:执行一个外部程序并且显示原始输出。如passthru("top -n -1 -b",$r),是没有返回值的,直接将结果输出到页面上,同时将成功/失败的状态赋给$r
5、post、get
post:不能被缓存;请求不会保存在浏览器浏览记录中;传送的数据没有大小的限制(服务器端对数据的处理能力有一定的限制,所以会规定post的数据的大小,但是post本身是没有限制的);数据不会显示在地址栏中,会放在http的请求包中,适合传输一些比较重要的信息;是向服务器端发送数据(post是将数据和表单内容一起放在http请求头中发送到表单的action地址中,然后在服务器端接收)
get::可以被缓存;请求会保存在浏览器记录中;传送的数据有大小限制(因为浏览器对url的长度有限制);数据直接显示在地址栏中,适合传输一些保密度较低的信息;是从服务器端获取数据(get是将数据放在表单的action地址中,然后在服务器端获得)
7、同步和异步(ajax)
jquery的一个属性:async true表示异步,false表示同步
比如下图中$.ajax结束之后还有一个alert的动作
同步:同步的意思就是,ajax在发送请求之后----得到响应之前的这段时间,程序不会往下继续走,而是会等待数据返回了之后再往下走
异步:异步的意思即使,ajax在发送请求之后----得到响应之前的这段时间,程序不会等待数据的返回,而是一个线程去等待返回,一个线程在这段时间内继续往下执行下面的代码块,不会停留
下面来做一个同步异步的验证:
首先设置了一个ajax传输数据的模块:
现在是异步状态,也就是说程序不会等待状态,看下面的结果:
从上图可以看到,输入系统命令的时候,alert的内容先出来,然后点确定了之后,下面的查询结果才出来:
当把async设置成false的时候,表示同步,即会等待数据返回了之后才会继续执行下面的语句:
上图中两个语句是同时显示在页面上的,但是其实是下面查询的数据返回了之后,上面的alert窗口才弹出的,中间有时差,但是时差比较小,比较难分辨而已
8、物理内存、交换区内存:
物理内存:物理内存就是计算机真实的内存,比如内存条什么的,cpu在处理进程的时候会将一些进程需要的数据放在物理内存中,用完了再释放
交换区内存:交换区内存实际上是从硬盘中拿出一部分空间当做虚拟的内存,在物理内存不够用的情况下,会将物理内存中一些不常用的数据放到交换区内存中,并且在物理内存中做一个从物理内存到交换区内存的一个映射,之后进程调用这些数据的时候可以通过物理内存中的映射在交换区内存中找到相应的数据
9、jquery的一些点
jquery中连接字符串用的是"+",而不是".";
ajax中如果设置数据是以html/text格式传输的话,返回的数据格式是字符串,而不是一个数组
11、bash:bash就是shell,就是用户和操作系统进行交互的一个界面,用户输入命令,bash将命令发送给操作系统,返回结果给用户。每多一个终端就会开启一个bash进程,但是bash不是终端,它只是那一个提供交互的界面
shell编程:shell不仅支持很多与操作系统交互的命令,也是一种编程设计语言,有其自己的语法等。
12、进程挂起:进程有很多种状态,有运行、可中断睡眠、不可中断睡眠、挂起、僵死这五种状态,其中挂起是指当内存阻塞或者父进程/系统的调度需要修改进程时会将进程从就绪态变为静止状态,是主动的行为
13、在编程的过程中要注意程序的封装性和扩展性。比如说有一些功能可以封装成函数,以后相同或者类似的数据需要处理直接调用这个函数就可以;编写代码的时候如果遇到那种需要手动修改并且一改要改几个地方的程序,可以将它写在配置文件或者别的文件中,然后以后每次使用的时候去哪那个文件调用即可,方便修改,并且提高效率,代码整洁度也有提升