1、操作系统的基础

调用:kernel通过给应用程序提供system call的方式来提供硬件资源;

注意:应用程序也包括库文件

库文件是运行在ring0上的一段程序代码,不对客户直接提供应用

2、程序运行原理(一个进程和对个进程)

一个进程:首先我们需要把硬盘中的程序代码加载到内存中(复制),再将这段代码放到CPU上运算,此时,这段程序就回去调用更多的进程;由这些进程来完成程序所指定任务

在这个过程中,我们就需要去解决数据的输入输出,还有存储问题

多个进程:在电脑中一般都是存在多个进程的,而CPU却只有一个,我们就使用time space 的方式来给进程分配固定时间来运行;某个进程只能在轮到自己运行的时候才会被放到CPU上去运行,时间一到,就会被踢下来,CPU则会执行下一个进程;

问题:

1、进程谁先谁后的问题?

  进程优先级

2、如果进程没有运行完就被踢下来怎么办

  程序数据

  输入数据输出数据(运行到一半留下的数据)

  进程元数据

  task struct 数据结构体:它定义了进程数据的存储格式;我们将进程数据及进程元数据存储于task struct中,这种结构下方便CPU快速存储和读取。

  物理地址空间 ---- 线性地址空间

  内存进程在运行后的一些数据通过线性地址对应的物理地址,存储到内存中;MMU就是用来将不连续的物理地址转换为连续的线性地址

  这些分开的页框数据又有两种组织形式:1、链表型数据 2、双向链表

3、进程造反了怎么办

  Linux结构下进程也是树形结构 – pstree

  内核管理不会去直接管理;一般所有进程都有上一级进程来管理

  最大的进程 --- init,有权限去管理所有进程

正常情况:

如何生成子进程:父进程在需要完成一项工作的时候自己无法完成,则需要生成对应的子进程来完成这项工作,并把自己的内存空间中的数据复制一份交给子进程,用来存储子进程所需的运行数据;这个过程我们就叫写实复制;

子进程完成任务后,如何关闭:子进程完成任务后,交出所占用的资源,再由父进程关闭子进程。

3、进程优先级

0-139

  0-99  守护进程 越大越优先

  100-139  普通进程 越小越优先

【特性】普通用户可以转让自己的优先级

nice值:定义普通进程的优先级,范围在-19 – 20 对应100-139

在我们的内存上会提供一个空间,专门存放运行过后的进程,当所有的进程运行一遍后,这个空间会和原有空间对换,提供给CPU读取。直到进程运行完成为止。

4、进程间通讯原理

1、主机间进行通讯

single信号通信

共享内存

管道形式

2、主机间的进程通讯

streams --- rpc

socket

5、进程类型

守护进程:维护系统的正常运行

普通进程:提供应用

另一种分类方式:根据占用资源的不同

占用CPU多的进程:后台运行进程

占用内存多的进程:前台要显示进程,<优先>

6、进程的状态

进程和程序比较起来,进程是有生命周期的,他会死去

  running运行

  sleeping状态

  stop停止状态

  zombie僵死状态

  中断

7、进程管理的命令

  • pstree  查看进程树;通过树形结构显示进程关系,yum install psmisce -y
  • ps  查看进程当前运行状态

PID  进程ID

TTY  启动该进程的终端是谁

TIME  进程累计在CPU上运行的时间

CMD  启动该进程的命令程序

常用组合:

ps -aux

ps -ef

ps -ejH  以树形结构显示进程

ps -eo  自定义参数格式 ps -eo uid,pid,comm

ps -U  查看指定用户运行的进程

  • top

与ps向反,top实时更新状态,能够动态刷新

k --- 关闭进程 输入PID即可

调整top排序

M 根据内存排序

P  根据CPU即用率排序

T  根据使用CPU累计时长排序

N  根据PID进行排序

  • htop

top的高级版本,默认yum源里没有,需要去下载并编译安装使用

  • vmstat

查看虚拟机内存的相关信息

进程信息、内存信息、交换内存信息、system系统IO信息、cpu信息

-s  以统计的形式显示相关信息

  • pmap

报告内存的内存映射信息

pmap pid

映射内存空间中的物理地址信息和CPU所能识别的线性地址信息。

  • pidof

通过进程ID(UID)来查看进程号(PID)

pidof bash

  • dstat

默认没有安装,通过yum dstat安装

动态的显示各种信息,可以自己定义

  • kill

管理进程,通过kill对进程发送相应的操作信号

1信号:HUP ,挂起进程

2信号:INT ,中断进程,ctrl + c就是使用2信号

9信号:KILL,强制关闭进程,不去保存进程数据,直接杀死

15信号:TERM,优雅关闭,能储存打开的文件

kill -l 查看系统支持的所有信号

  • pgrep

进程过滤,也可以做进程查找,类似于pidof

  • pkill

直接去关闭进程,可以按照UID(名字)关闭

  • jobs

作业:---进程

前台作业:

后台作业:在后台自动运行

前台作业放到后台: ctrl + z

把后台进程切回到前台:fg 【+代表默认切回的进程】

将前台进程放到后台:bg

  • iptables

ip的tables  ip的表格

  iptables只是netfilter的前端管理工具;netfilter是Linux内核提供的数据流量管理模块

   防火墙作用:1、流量控制 2、接VPN

  网络防火墙:一般处在外网出口处,主要对于内外网交互的流量进行监控与过滤

  主机防火墙:主机有内核空间和用户空间,netfilter的过滤模块运行在内核空间,但是它又无法提供数据匹配,所以我们需要使用函数来调用netfilter模块,匹配数据流量模块;

    匹配数据流量:

      五个钩子函数:

PREROUTING

INPUT

FORWARD

OUTPUT

POSTROUTING

三种流量:

1、到达主机的流量

2、通过主机的流量

3、主机发起的流量

四张表:

raw  保持连接---建议不要开启这个表的功能

mangle  数据包修改

nat  做nat映射,包括SNAT和DNAT

filter  数据包过滤,默认启用

raw关联OUTPUT、PREROUTING

mangle关联PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING

nat关联PREROUTING、OUTPUT、POSTROUTING

filter关联INPUT、FORWARD、OUTPUT

【对于数据包的行为,就决定了这个数据包经过的链】

防火墙处理数据包的四种方式:

ACCEPT 允许数据包通过

DROP 直接丢弃数据包,不给任何回应信息

REJECT 拒绝数据包通过,必要时会给数据发送端响应信息。

LOG 在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则

注意:写策略的时候需要关联钩子,策略是属于钩子的,而钩子只做策略匹配,不能进行数据操作;所以,我们需要关联表,每一种表决定了一种行为操作;

表包含链  链包含策略

iptables用法:

iptables [-t table] {-A|-D} chain rule-specification
iptables [-t table] -I chain [rulenum] rule-specification
iptables [-t table] -R chain rulenum rule-specification
iptables [-t table] -D chain rulenum
iptables [-t table] -S [chain [rulenum]]
iptables [-t table] {-F|--Z} [chain [rulenum]] [option...]
iptables [-t table] -N chain
iptables [-t table] -X [chain]
iptables [-t table] -P chain target
iptables [-t table] -E old-chain-name new-chain-name

参数:

-t 指定表

-A  -I  添加策略  -A在最下面添加 ,-I在最上面添加

-D  删除策略

-R  替换链表,需要指定所替换的编号

iptables -t filter -R INPUT 2 -s 1.1.1.1 -d 2.2.2.2 -j ACCEPT

-S  显示链表的所有用法

-P  指定链表的默认行为

iptables -t filter -P INPUT DORP

建议写白名单用

-N  自己定义链表;

      如果策略过多,我们需要将策略分类,这就用自己定义链表来分类;让后再将自己定义的链表调用在其他可以匹配数据流量的链表上;

    -X  清除自定义的链表

      iptables -t filter -X chain

    -v  可以查看策略匹配的数据包

    -w  详细查看数据包匹配情况-w

      iptables -t filter -L -v

    -Z  数据包计数清零

-L  显示所有chain上面所有的规则rule

-F  清空指定chain上面的所有规则

-E  替换chain的名称

Linux--进程管理--06的更多相关文章

  1. Linux进程管理之ps的使用

    主题Linux进程管理之ps工具的使用 一ps工具的介绍 ps: process state  进程状态ps - report a snapshot of the current processesL ...

  2. Linux进程管理子系统分析【转】

    本文转载自:http://blog.csdn.net/coding__madman/article/details/51298732 Linux进程管理: 进程与程序: 程序:存放在磁盘上的一系列代码 ...

  3. 12个Linux进程管理命令介绍(转)

    12个Linux进程管理命令介绍 [日期:2015-06-02] 来源:Linux中国  作者:Linux [字体:大 中 小]   执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的 ...

  4. Linux进程管理知识整理

    Linux进程管理知识整理 1.进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些? TASK_RUNNING(可运行状态) ...

  5. Linux性能及调优指南(翻译)之Linux进程管理

    本文为IBM RedBook的Linux Performanceand Tuning Guidelines的1.1节的翻译原文地址:http://www.redbooks.ibm.com/redpap ...

  6. Linux进程管理专题

    Linux进程管理 (1)进程的诞生介绍了如何表示进程?进程的生命周期.进程的创建等等? Linux支持多种调度器(deadline/realtime/cfs/idle),其中CFS调度器最常见.Li ...

  7. [转帖]十二 个经典 Linux 进程管理命令介绍

    https://www.cnblogs.com/swordxia/p/4550825.html 接了 http referer 头 没法显示图片 可以去原始blog 里面去查看.   随笔- 109  ...

  8. Linux进程管理 (1)进程的诞生

    专题:Linux进程管理专题 目录: Linux进程管理 (1)进程的诞生 Linux进程管理 (2)CFS调度器 Linux进程管理 (3)SMP负载均衡 Linux进程管理 (4)HMP调度器 L ...

  9. Linux进程管理 (2)CFS调度器

    关键词: 目录: Linux进程管理 (1)进程的诞生 Linux进程管理 (2)CFS调度器 Linux进程管理 (3)SMP负载均衡 Linux进程管理 (4)HMP调度器 Linux进程管理 ( ...

  10. Linux进程管理 (7)实时调度

    关键词:RT.preempt_count.RT patch. 除了CFS调度器之外,还包括重要的实时调度器,有两种RR和FIFO调度策略.本章只是一个简单的介绍. 更详细的介绍参考<Linux进 ...

随机推荐

  1. Web服务器怎么解析URL

    问:Web服务器是如何将浏览器中输入的地址"http://localhost:8080/SimpleServlet/First" 答:以Java 为例(各种语言都是类似的) 1)地 ...

  2. springboot-权限控制shiro(一)

    1. 场景描述 (1)权限控制是IT项目特别是企业项目,绕不开的重要模块,接下来结合springboot介绍下权限控制框架shiro. (2)springboot集成shiro的东西有点多,一篇博客完 ...

  3. Java 第四章

    switch选择结构 语法:switch(表达式){ case 常量 1: //代码块1:   break:  case 常量 2: //代码块2: break:    ......  default ...

  4. LeetCode 448. Find All Numbers Disappeared in an Array找到所有数组中消失的元素

    题目 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能 ...

  5. 知识图谱学习与实践(4)——Protégé使用入门

    1 Protégé简介 Protégé是一个本体建模工具软件,由斯坦福大学基于java语言开发的,属于开放源代码软件.软件主要用于语义网中本体的构建和基于本体的知识应用,是本体构建的核心开发工具,最新 ...

  6. ubuntu kylin的桌面崩溃问题

    前几天安了ubuntu kylin,主题还是挺好看的,汉化也很好,就是各种报桌面错误,忍了,结果今天直接进不去桌面了 开机,输入密码,登录,然后桌面死活不显示,还弹出了错误提示我系统有问题,建议重启 ...

  7. RabbitMQ(四):使用Docker构建RabbitMQ高可用负载均衡集群

    本文使用Docker搭建RabbitMQ集群,然后使用HAProxy做负载均衡,最后使用KeepAlived实现集群高可用,从而搭建起来一个完成了RabbitMQ高可用负载均衡集群.受限于自身条件,本 ...

  8. mcrp 对接软件换

     如何配置UniMRCP Server的启动选项 UniMRCP Server的配置参数,比如:ASR server IP 地址.输出目录. 在哪儿设置这些自定义参数,在插件中如何获取这些参数. 修改 ...

  9. Spark 系列(四)—— RDD常用算子详解

    一.Transformation spark 常用的 Transformation 算子如下表: Transformation 算子 Meaning(含义) map(func) 对原 RDD 中每个元 ...

  10. 【精选】Markdown 语法汇总

    博客园也能Markdown?美滋滋,Markdown真的是好用QAQ. 本文档按照Markdown各种常用语法类别,以文字描述+演示的方式来展现markdown语法的使用.Markdown 的目标是实 ...