导航:首页 > 编程大全 > linux网络进程

linux网络进程

发布时间:2023-03-18 03:14:08

linux系统的进程调度

Linux进程调度

1.调度方式

Linux系统的调度方式基本上采用“ 抢占式优先级 ”方式,当进程在用户模式下运行时,不管它是否自愿,核心在一定条件下(如该进程的时间片用完或等待I/O)可以暂时中止其运行,而调度其他进程运行。一旦进程切换到内核模式下运行时,就不受以上限制,而一直运行下去,仅在重新回到用户模式之前才会发生进程调度。

Linux系统中的调度基本上继承了UNIX系统的 以优先级为基础 的调度。也就是说,核心为系统中每个进程计算出一个优先级,该优先级反映了一个进程获得CPU使用权的资格,即高优先级的进程优先得到运行。核心从进程就绪队列中挑选一个优先级最高的进程,为其分配一个CPU时间片,令其投入运行。在运行过程中,当前进程的优先级随时间递减,这样就实现了“负反馈”作用,即经过一段时间之后,原来级别较低的进程就相对“提升”了级别,从而有机会得到运行。当所有进程的优先级都变为0(最低)时,就重新计算一次所有进程的优先级。

2.调度策略

Linux系统针对不同类别的进程提供了3种不同的调度策略,即SCHED_FIFO、SCHED_RR及SCHED_OTHER。其中,SCHED_FIFO适合于 短实时进程 ,它们对时间性要求比较强,而每次运行所需的时间比较短。一旦这种进程被调度且开始运行,就一直运行到自愿让出CPU或被优先级更高的进程抢占其执行权为止。

SCHED_RR对应“时间片轮转法”,适合于每次运行需要 较长时间的实时进程 。一个运行进程分配一个时间片(200 ms),当时间片用完后,CPU被另外进程抢占,而该进程被送回相同优先级队列的末尾,核心动态调整用户态进程的优先级。这样,一个进程从创建到完成任务后终止,需要经历多次反馈循环。当进程再次被调度运行时,它就从上次断点处开始继续执行。

SCHED_OTHER是传统的UNIX调度策略,适合于交互式的 分时进程 。这类进程的优先级取决于两个因素:一个是进程剩余时间配额,如果进程用完了配给的时间,则相应优先级降到0;另一个是进程的优先数nice,这是从UNIX系统沿袭下来的方法,优先数越小,其优先级越高。nice的取值范围是-20 19。用户可以利用nice命令设定进程的nice值。但一般用户只能设定正值,从而主动降低其优先级;只有特权用户才能把nice的值设置为负数。进程的优先级就是以上二者之和。

后台命令对应后台进程(又称后台作业)。后台进程的优先级低于任何交互(前台)进程的优先级。所以,只有当系统中当前不存在可运行的交互进程时,才调度后台进程运行。后台进程往往按批处理方式调度运行。

3.调度时机

核心进行进程调度的时机有以下5种情况:

(1)当前进程调用系统调用nanosleep( )或者pause( ),使自己进入睡眠状态,主动让出一段时间的CPU的使用权。

(2)进程终止,永久地放弃对CPU的使用。

(3)在时钟中断处理程序执行过程中,发现当前进程连续运行的时间过长。

(4)当唤醒一个睡眠进程时,发现被唤醒的进程比当前进程更有资格运行。

(5)一个进程通过执行系统调用来改变调度策略或者降低自身的优先级(如nice命令),从而引起立即调度。

4.调度算法

进程调度的算法应该比较简单,以便减少频繁调度时的系统开销。Linux执行进程调度时,首先查找所有在就绪队列中的进程,从中选出优先级最高且在内存的一个进程。如果队列中有实时进程,那么实时进程将优先运行。如果最需要运行的进程不是当前进程,那么当前进程就被挂起,并且保存它的现场—— 所涉及的一切机器状态,包括程序计数器和CPU寄存器等,然后为选中的进程恢复运行现场。

(二)Linux常用调度命令

· nohup命令

nohup命令的功能是以忽略挂起和退出的方式执行指定的命令。其命令格式是:

nohupcommand[arguments]

其中,command是所要执行的命令,arguments是指定命令的参数。

nohup命令告诉系统,command所代表的命令在执行过程中不受任何结束运行的信号(hangup和quit)的影响。例如,

$ nohup find / -name exam.txt -print>f1 &

find命令在后台运行。在用户注销后,它会继续运行:从根目录开始,查找名字是exam.txt的文件,结果被定向到文件f1中。

如果用户没有对输出进行重定向,则输出被附加到当前目录的nohup.out文件中。如果用户在当前目录中不具备写权限,则输出被定向到$HOME/nohup.out 中。

· at命令

at命令允许指定命令执行的时间。at命令的常用形式是:

attimecommand

其中,time是指定命令command在将来执行时的时间和日期。时间的指定方法有多种,用户可以使用绝对时间,也可以用相对时间。该指定命令将以作业形式在后台运行。例如:

$ at 15:00 Oct 20

回车后进入接收方式,接着键入以下命令:

mail -s "Happy Birthday!" liuzheny

按下D键,屏幕显示:

job 862960800.a at Wed Oct 20 15:00:00 CST 1999

$

表明建立了一个作业,其作业ID号是862960800.a,运行作业的时间是1999年10月20日下午3:00,给liuzheny发一条标题为“Happy Birthday!”(生日快乐)的空白邮件。

利用 at-l 可以列出当前at队列中所有的作业。

利用 at-r 可以删除指定的作业。这些作业以前由at或batch命令调度。例如,

at-r862960797.a

将删除作业ID号是862960797.a的作业。其一般使用形式是:

at-rjob_id

注意,结尾是.a的作业ID号,表示这个作业是由at命令提交的;结尾是.b的作业ID号,表示这个作业是由batch命令提交的。

· batch命令

batch命令不带任何参数,它提交的作业的优先级比at命令提交的作业的优先级低。batch无法指定作业运行的时间。实际运行时间要看系统中已经提交的作业数量。如果系统中优先级较高的作业比较多,那么,batch提交的作业则需要等待;如果系统空闲,则运行batch提交的作业。例如,

$ batch

回车后进入接收方式,接着键入命令:

find / -name exam.txt -print

按下D。退出接收方式,屏幕显示:

job 862961540.b at Thu Nov 18 14:30:00 CST 1999

表示find命令被batch作为一个作业提交给系统,作业ID号是862961540.b。如果系统当前空闲,这个作业被立即执行,其结果同样作为邮件发送给用户。

· jobs命令

jobs命令用来显示当前shell下正在运行哪些作业(即后台作业)。例如:

$ jobs

[2] + Running tar tv3 *&

[1] - Running find / -name README -print > logfile &

$

其中,第一列方括号中的数字表示作业序号,它是由当前运行的shell分配的,而不是由操作系统统一分配的。在当前shell环境下,第一个后台作业的作业号为1,第二个作业的作业号为2,等等。

第二列中的“ ”号表示相应作业的优先级比“-”号对应作业的优先级高。

第三列表明作业状态,是否为运行、中断、等待输入或停止等。

最后列出的是创建当前这个作业所对应的命令行。

利用 jobs-l 形式,可以在作业号后显示出相应进程的PID。如果想只显示相应进程的PID,不显示其它信息,则使用 jobs-p 形式。

· fg命令

fg命令把指定的后台作业移到前台。其使用格式是:

fg [job…]

其中,参数job是一个或多个进程的PID,或者是命令名称或者作业号(前面要带有一个“%”号)。例如:

$ jobs

[2] + Running tar tv3 *&

[1] - Running find / -name README -print > logfile&

$ fg %find

find / -name README -print > logfile

注意,显示的命令行末尾没有“&”符号。下面命令能产生同样的效果:

$ fg %1

这样,find命令对应的进程就在前台执行。当后台只有一个作业时,键入不带参数的fg命令,就能使相应进程移到前台。当有两个或更多的后台作业时,键入不带参数的fg,就把最后进入后台的进程首先移到前台。

· bg命令

bg命令可以把前台进程换到后台执行。其使用格式是:

bg [job…]

其中,job是一个或多个进程的PID、命令名称或者作业号,在参数前要带“%”号。例如,在cc(C编译命令)命令执行过程中,按下Z键,使这个作业挂起。然后键入以下命令:

$ bg %cc

该挂起的作业在后台重新开始执行。

⑵ 如何查看linux哪个进程占用网络

查看linux进程占用端口步骤如下:

  1. lsof -i 用以显示符合条件的进程情况,lsof(list open files)是一个列出内当前系统容打开文件的工具。以root用户来执行lsof -i命令,如下图


    ⑶ linux中怎样查看占用8080端口的进程

    1,使用lsof命令,使用IPv4协议的局域网:执行命令答塌: 宴举轮lsof -Pnl +M -i4|grep 8080
    输出结果: java 1419 1401 IPv4 6793357

    2,先使用netstat命令,再用 ps命令。
    执行命令:netstat -anp|grep 8080
    输出结果:tcp 0 0 :::8080

    执行命令: ps -ef | grep 12006输出结果: root 12886 12851 0 Dec09 /home/bjca/bea/jdk160_05/bin/java -client -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=48m -XX:MaxPermSize=128m......

    ⑷ Linux系统服务进程

    服务名称 功能 默认 建议 备注说明
    NetworkManager 用于自动连接网络,常用在Laptop上 开启 关闭 对服务器无用
    abrt-ccpp 开启 自定 对服务器无用
    abrt-oops 开启 自定 对服务器无用
    abrtd 开启 自定 对服务器无用
    acpid 电源的开关等检测管理,常用在Laptop上 开启 自定 对服务器无用
    atd 在指定时间执行命令 开启 关闭 如果用crond,则可关闭它
    auditd 审核守护进程 开启 开启 如果用selinux,需要开启它

    autofs 文件系统自动加载和卸载 开启 自定 只在需要时开启它,可以关闭
    avahi-daemon 本地网络服务查找 开启 关闭 对服务器无用
    bluetooth 蓝牙无线通讯 开启 关闭 对服务器无用
    certmonger 关闭 关闭
    cpuspeed 调节cpu速度用来省电,常用在Laptop上 开启 关闭 对服务器无用
    crond 计划任务管理 开启 开启 常用,开启
    cups 通用unix打印服务
    开启 关闭 对服务器无用
    dnsmasq dns cache 关闭 关闭 DNS缓存服务,无用
    firstboot 系统安装后初始设定 关闭 关闭
    haldaemon 硬件信息收集服务 开启 开启
    ip6tables ipv6防火墙 开启 关闭 用到ipv6网络的就用,一般关闭
    iptables
    ipv4防火墙 开启 开启 ipv4防火墙服务
    irqbalance cpu负载均衡 开启 自定 多核cup需要
    kmp 硬件变动检测 关闭 关闭 服务器无用
    lvm2-monitor lvm监视 开启 自定 如果使用LVM逻辑卷管理就开启
    matahari-broker 关闭 关闭 此服务不清楚,我关闭
    matahari-host 关闭 关闭 此服务不清楚,我关闭
    matahari-network 关团姿禅闭 关闭 此服务不清楚,我关闭
    matahari-service 关闭 关闭 此服务不清楚,我关闭
    matahari-sysconfig 关闭 关闭 此服务不清楚,我关闭
    mdmonitor 软raid监视 开启 自定
    messagebus 负责在各个系统进程之间传递消息 开启 开启 如停用,haldaemon启动会失败
    netconsole 关闭 关闭
    netfs 系统启动时自动挂载网络文件系统 开启 关闭 如果使用塌尘nfs服务,就开启
    network 系统启动时激活所有网络接口 开启 开启 网络基础服务,必需!
    nfs 网络文件系统 关闭 关闭 nfs文件服务,用到就开启
    nfslock nfs相关 开启 关闭 nfs相关服务,用到就开启
    ntpd 自动对时工具 关闭 自定 网络对时服务,用到就开启
    ntpdate 自动对时工具 关闭 关闭
    oddjobd 与D-BUS相关 关闭 关闭
    portreserve RPC 服务相关 开启 自定 可以关闭
    postfix 替代sendmail的邮件服务器 开启 自定 如果无邮件服务,可关闭
    psacct 负荷检测 关闭 关闭 可以关闭
    qpidd 消息通信 开启 开启
    quota_nld 关闭 关闭 可以关闭
    rdisc 自动检测路由器 关闭 关闭
    restorecond selinux相关 关闭 关闭 如果开启了selinux,就需开启
    rpcbind 开启 开启 关键的基础服务,nfs服务和桌面环境都依赖此服务!相当于CentOS 5.x里面的portmap服务。
    rpcgssd NFS相关 开册消启 关闭 NFS相关服务,可选
    rpcidmapd RPC name to UID/GID mapper 开启 关闭 NFS相关服务,可选
    rpcsvcgssd NFS相关 关闭 关闭 NFS相关服务,可选
    rsyslog 提供系统的登录档案记录 开启 开启 系统日志关键服务,必需!
    saslauthd sasl认证服务相关 关闭 关闭
    smartd 硬盘自动检测守护进程 关闭 关闭
    spice-vdagentd 开启 开启
    sshd ssh服务端,可提供安全的shell登录
    开启 开启 SSH远程登录服务,必需!
    sssd 关闭 关闭
    sysstat 开启 开启 一组系统监控工具的服务,常用
    udev-post 设备管理系统 开启 开启
    wdaemon 关闭 关闭
    wpa_supplicant 无线认证相关 关闭 关闭
    ypbind network information service客户端 关闭 关

    ⑸ linux为什么单进程网络跑不满

    linux单进程网络不能满负荷运行的原因主要有以下几点迅扒:
    1、Linux内核限制了单个进程拥有的最大文件描述符数量,导致单进程无法处理过多的连接;
    2、Linux网络子系统使用了单槽接收灶巧队列,这意味着每个CPU核心只能处理一个网络中断,当网络中断数量较多时,单CPU核心就无法满足处理能力;
    3、Linux网络子系统会受到内核版本、硬件设备驱动程序和系统参数的影响,当这些参数不合理时,会影响网络性能,从亩辩昌而降低单进程的网络负载能力。

    ⑹ linux通过端口查看进程信息的两种方法

    你为什么会近视?为了淡看世间事,所以才模糊了双眼。

    上一篇: linux命令-文件和目录操作命令

    lsof解释( 网络 ): lsof(如御list open files)是一个列出当前系统打开茄茄文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

    格式: lsof -i

    格式: lsof -i :端口号

    Netstat( 网络 )是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

    格式: netstat -tunlp | grep 端口号

    格式: netstat -anp | grep 端口号

    格式: netstat -nultp

    如果感觉本文对您有帮助可以点个赞哦

    本文仅供交流学习,请勿用于非法途径

    仅渣纳岩是个人意见,如有想法,欢迎留言

    ⑺ linux进程数限制导致无法连接服务

    器乱埋运

    解决方法:

    1、检查服务器是否正常运行,如果服务哗梁器没有正常运行,则需要重启服务器。

    2、检查服务器的系统资源,如内存、CPU等,确保服务器的系统资源充足,以支持更多的连接。

    3、检查Linux系统的进程数限制,如果进程数限制过低,可以通过修改/etc/security/limits.conf文件来提高进程数的限制。

    4、检查服务器的网络配液链置,如果服务器的网络配置不正确,可能会导致服务器无法接受连接。

    ⑻ linux进程和程序的区别与联系

    进程通常是指运行中的程序(当然由于操作系统任务调度的关系,不一定当前回处于运行态,只是说已答加载到内存),只是习惯上的叫法而已。 可以通过ps命令查看进程。 而程序就只是文件的概念(代码文件或编译出的可执行文件)。

    ⑼ Linux进程与线程的区别和联系

    进程中可包含多个线程,最少1个,进程可控制进程内线程的运行暂停及结束,线程可共享进程全局变量,进程与进程是单独个体,相互不能直接访问各自线程及全局变量

    ⑽ Linux进程一般可以分为哪三类

    进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。程序一旦运行就是进程。

    进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。

    Linux中进程分为以下三类:

    ①交互进程:由一个shell启动的进程,交互进程既可以在前台运行,也可以在后台运行。

    ②批处理进程:这种进程和终端没有联系,是一个进程序列。

    ③监控进程:也称守护进程,是一个在后台运行且不受任何终端控制的特殊进程,用于执行特定的系统任务。

    进程的状态:

    ①可运行状态:此时进程正在运行或者颂野正在运行队列中等待准备运行。

    ②等待状态:此时进程在等待一个事件的发生或某种系统资源。在Linux系统中等待状态又细分为两种等待状态:可中断的等待状态和缺樱洞不可中断的等待状态。

    ③暂停状态:处于暂停状态的进程被暂停运行。

    ④僵死状态:每个进程在运行结束后伏枯都会处于僵死状态,等待父进程调用进而释放系统资源,处于该状态的进程已经运行结束,但是它的父进程还没有释放其系统资源。

阅读全文

与linux网络进程相关的资料

热点内容
maya粒子表达式教程 浏览:84
抖音小视频如何挂app 浏览:283
cad怎么设置替补文件 浏览:790
win10启动文件是空的 浏览:397
jk网站有哪些 浏览:134
学编程和3d哪个更好 浏览:932
win10移动硬盘文件无法打开 浏览:385
文件名是乱码还删不掉 浏览:643
苹果键盘怎么打开任务管理器 浏览:437
手机桌面文件名字大全 浏览:334
tplink默认无线密码是多少 浏览:33
ipaddgm文件 浏览:99
lua语言编程用哪个平台 浏览:272
政采云如何导出pdf投标文件 浏览:529
php获取postjson数据 浏览:551
javatimetask 浏览:16
编程的话要什么证件 浏览:94
钱脉通微信多开 浏览:878
中学生学编程哪个培训机构好 浏览:852
荣耀路由TV设置文件共享错误 浏览:525

友情链接