第五周作业
Hub集线器,它工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。
hub集线器的特点:所有端口都是共享一条带宽,在同一时刻只能有二个端口传送数据,其他端口只能等待,所以只能工作在半双工模式下,传输效率低。可以理解为如果是个8口的HUB,那么每个端口得到的带宽就只有1/8的总带宽了。
以太网桥
简称网桥,是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。网桥的工作原理
网桥的优点:
1、扩大了物理范围,也增加了整个局域网上的工作站的最大数目。
2、分割了网络冲突域,使网络冲突被限制在最小的范围内。
3、交换机作为更加智能的交换设备,能够提供更多用户所要求的功能:优先级、虚拟网、远程检测等。
4、过滤通信量。网桥可以使用局域网的一个网段上各工作站之间的信息量局限在本网段的范围内,而不会经过网桥溜到其他网段去。
网桥的工作原理:
路由器
路由器,(英文是:Router,又称路径器)是一种电讯网络设备,提供路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。路由工作在OSI模型的第三层——即网络层,例如网际协议(IP)。
为了实现路由,路由器需要做下列事情:
- 分隔广播域
- 选择路由表中到达目标最好的路径
- 维护和检查路由信息
- 连接广域网
而提到广播域,就不得不提到VLAN。VLAN的中文是虚拟局域网或者虚拟区域,英文是Virtual Local Area Network或简写VLAN, V-LAN。 是一种建构于局域网交换技术(LAN Switch)的网络管理的技术,网管人员可以借此透过控制交换机有效分派出入局域网的报文到正确的出入端口,达到对不同实体局域网中的设备进行逻辑分群管理,并降低局域网内大量数据流通时,因无用报文过多导致壅塞的问题,以及提升局域网的信息安全保障。 VLAN可以为网络提供以下作用: - 广播控制
- 带宽利用
- 降低延迟
- 灵活管理和安全性
进程
进程(英语:process),是指计算机中已运行的程序。进程为曾经是分时系统的基本运作单位。在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,进程是程序的基本执行实体;在面向线程设计的系统(如当代多数操作系统、Linux 2.6及更新的版本)中,进程本身不是基本运行单位,而是线程的容器。程序本身只是指令、数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例。
用户下达运行程序的命令后,就会产生进程。同一程序可产生多个进程(一对多关系),以允许同时有多位用户运行同一程序,却不会相冲突。进程需要一些资源才能完成工作,如CPU使用时间、存储器、文件以及I/O设备,且为依序逐一进行,也就是每个CPU核心任何时间内仅能运行一项进程。进程都是存在生命周期的。
内核把进程存放在叫做任务队列(task list)的双向循环链表中, 链表中的每一项都是类型为task_struct,称为进程控制块(Processing Control Block),PCB中包含一个具体进程的所有信息,包括:
- 行程状态:可以是new、ready、running、waiting或 blocked等。
- 程序计数器:接着要运行的指令地址。
- CPU寄存器:如累加器、变址寄存器、堆栈指针以及一般用途寄存器、状况代码等,主要用途在于中断时暂时存储数据,以便稍后继续利用;其数量及类别因计算机体系结构有所差异。
- 进程id、用户id和组id
- 描述虚拟地址空间的信息
- 描述控制终端的信息
- 当前工作目录
- 文件描述符表,包含很多指向file结构体的指针
- 进程可以使用的资源上限(ulimit –a命令可以查看)
- 输入输出状态:配置进程使用I/O设备,如磁带机。
总言之,PCB如其名,内容不脱离各行程相关信息。
Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息。它定义在include/linux/sched.h文件中。
物理页面通常被称作Page Frames,而虚拟地址空间的页面通常被称为pages.Linux以page为单位管理内存。
MMU:Memory Management Unit 负责转换线性和物理地址.程序在访问一个内存地址指向的内存时,CPU不是直接把这个地址送到内存总线 上,而是被送到MMU(Memory Management Unit),然后把这个内存地址映射 到实际的物理内存地址上.程序操作的地址称为虚拟内存地址。
进程,线程和协程
图解:
进程的基本状态和转换
创建状态:进程在创建时需要申请一个空白PCB(process control block进程控 制块),向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完 成,比如资源无法满足,就无法被调度运行,把此时进程所处状态称为创建状态。就绪状态:进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行。
执行状态:进程处于就绪状态被调度后,进程进入执行状态。
** 阻塞状态**:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用。
终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行。
状态之间转换六种情况:
- 运行——>就绪:1,主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;2,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要运行时,该进程就被迫让出CPU,该进程便由执行状态转变为就绪状态。
- 就绪——>运行:运行的进程的时间片用完,调度就转到就绪队列中选择合适的进程分配CPU。
- 运行——>阻塞:正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求。
- 阻塞——>就绪:进程所等待的事件已经发生,就进入就绪队列。
以下两种状态是不可能发生的:
- 阻塞——>运行:即使给阻塞进程分配CPU,也无法执行,操作系统在进行调 度时不会从阻塞队列进行挑选,而是从就绪队列中选取。
- 就绪——>阻塞:就绪态根本就没有执行,谈不上进入阻塞态。
进程优先级
进程优先级:
系统优先级:数字越小,优先级越高
0-139:各有140个运行队列和过期队列
实时优先级: 99-0 值最大优先级最高
nice值:-20到19,对应系统优先级100-139
Big O:时间复杂度,用时和规模的关系
O(1), O(logn), O(n)线性, O(n^2)抛物线, O(2^n)
进程状态
进程类型:
- 守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程
- 前台进程:跟终端相关,通过终端启动的进程
注意:两者可相互转化
进程状态: - 运行态:running
- 就绪态:ready
- 睡眠态:
- 可中断:interruptable
- 不可中断:uninterruptable
- 停止态:stopped,暂停于内存,但不会被调度,除非手动启动
- 僵死态:zombie,结束进程,父进程结束前,子进程不关闭
查看进程进程ps
支持三种选项:
- UNIX选项 如-A -e
- BSD选项 如a
- GNU选项 如--help
选项:默认显示当前终端中的进程
• a 选项包括所有终端中的进程
• x 选项包括不链接终端的进程
• u 选项显示进程所有者的信息
• f 选项显示进程树,相当于 --forest
• k|--sort 属性 对属性排序,属性前加- 表示倒序
• o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem
• L 显示支持的属性列表
-C cmdlist 指定命令,多个命令用,分隔 - -L 显示线程
- -e 显示所有进程,相当于-A
- -f 显示完整格式程序信息
- -F 显示更完整格式的进程信息
- -H 以进程层级格式显示进程相关信息
- -u userlist 指定有效的用户ID或名称
- -U userlist 指定真正的用户ID或名称
- -g gid或groupname 指定有效的gid或组名称
- -G gid或groupname 指定真正的gid或组名称
- -p pid 显示指pid的进程
- -ppid pid 显示属于pid的子进程
- -t ttylist 指定tty,相当于 t
- -M 显示SELinux信息,相当于Z
例如:显示进程的占用cpu百分比内存使用百分比、pid、执行的命令,并以cpu排序
[root@sundazhuo ~]# ps axo %cpu,%mem,pid,comm --sort -%cpu |head -11
%CPU %MEM PID COMMAND
0.3 10.3 1449 java
0.2 0.6 1969 pulseaudio
0.1 0.5 1446 redis-server
0.1 12.4 1944 gnome-shell
0.0 0.4 1 systemd
0.0 0.0 2 kthreadd
0.0 0.0 3 ksoftirqd/0
0.0 0.0 5 kworker/0:0H
0.0 0.0 7 migration/0
0.0 0.0 8 rcu_bh
top命令
栏位信息简介:
us:用户空间
sy:内核空间
ni:调整nice时间
id:空闲
wa:等待IO时间
hi:硬中断
si:软中断(模式切换)
st:虚拟机偷走的时间
内存空间
内存空间使用状态:
free [OPTION]
-b 以字节为单位
-m 以MB为单位
-g 以GB为单位
-h 易读格式
-o 不显示-/+buffers/cache行
-t 显示RAM + swap的总和
-s n 刷新间隔为n秒
-c n 刷新n次后即退出
nload 查看网络实时吞吐量
nload是一个实时监控网络流量和带宽使用情况,以数值和动态图展示进出的流量情况。
界面操作:
- 上下方向键、左右方向键、enter键或者tab键都就可以切换查看多个网卡的流量情况。
- 按 F2 显示选项窗口。
- 按 q 或者 Ctrl+C 退出 nload。