Linux入门攻坚——15、进程和作业管理

本文围绕Linux系统展开,介绍了计算机系统层次结构、x86特权等级机制、内核功能等基础知识。详细阐述了进程管理,包括进程创建、优先级、状态等,还介绍了多种进程查看及管理工具。此外,讲解了Linux任务计划,如at、batch命令及cron周期性任务计划。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个完整的计算机系统:静态
最底层是硬件,硬件之上是操作系统,也叫内核(即kernel),操作系统提供的是系统调用,在内核之上,是各种库,提供库函数,在此之上是各种应用程序,应用程序可能是基于库函数实现的,也可能直接使用系统调用。

x86引入了访问特权等级(0-3)的机制,x86 cpu共有4个特权级 level0 到 level3 ,也称为ring0~ring3,其中level0特权级最高,level3特权级最低。level0(即ring0,特权指令)只能由内核执行,处理器通过识别CPL、DPL、RPL这3中种特权级进行特权级检验。

内核的功能:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能

一个程序运行分为用户模式和内核模式,用户模式下,cpu运行用户指令,当程序需要用到内核功能时,就会调用系统调用,进入内核模式,cpu运行内核指令。

模式切换:从用户模式到内核模式和从内核模式到用户模式的切换。

时间片:每个进程不能始终占有cpu,而是使用一段固定的时间,即时间片。

进程切换:多个进程同时运行,轮流使用cpu,就是进程切换。

保存现场:进程切换时,需要保存进程的状态,以便下次能够接续执行。
恢复现场:再次执行中断的进程,需要先恢复上次保存现场的状态。

Process(进程):运行中的程序的副本;进程有自己的生命周期。(程序是静态的文件)

内核要为每一个运行的进程创建一个元数据,存储进程状态信息,格式是固定的,叫做任务结构体,task struct,多个任务的task struct组成的链表:task list

进程创建:内核加载完毕,创建第一个进程init,来管理用户空间
    init
        父子关系:进程都由其父进程创建,父进程调用fork(),创建子进程,子进程与父进程一开始拥有相同的空间,当子进程需要修改数据时,发生写时拷贝(CoW),clone()父进程,然后指向克隆后的起始空间,执行自己的修改操作。

进程优先级:0~139
    1-99:实时优先级:(数字越大,优先级越高)
    100-139:静态优先级(数字越小,优先级越高)

    Nice值:-20~19

内存分配:page frame:页框,线性地址空间,物理地址空间。

MMU:Memory Management Unit,线性地址到物理地址映射

IPC:Inter Process Communication
    同一主机:signal、shm——shared memory、semerphor
    不同主机:rpc——remote procedure call、socket

Linux内核:抢占式多任务

进程类型:
    守护进程:daemon,在系统引导过程中启动的进程,跟终端无关的进程;
    前台进程:跟终端相关,通过终端启动的进程。
    注意:也可把在前台启动的进程送往后台,以守护模式运行。

进程状态:
    运行态:running
    就绪态:ready
    睡眠态:一次I/O需要两步:从磁盘到内核内存,从内核内存到用户内存。
        可中断:interruptable
        不可中断:uninterruptable
    停止态:暂停于内存中,但不会被调度,除非手动启动之:stopped
    僵死态:zombie

进程的分类:
    CPU-Bound:多分CPU时间片
    IO-Bound:优先级高

Linux进程查看及管理的工具:pstree、ps、pidof、pgrep、top、htop、glance、pmap、vmstat、dstat、kill、pkill、job、bg、fg、nohup

pstree:显示进程树
    Centos7中:起始进程是systemd

    Centos6中:起始进程是init

ps:process state,进程状态查看工具。report a snapshot of the current processes
每一个进程都会映射到/proc目录下的一个数字目录,对应的这个数字目录下有一个cmdline文件,说明启动这个进程的命令:

目录中还包含其他一些文件,包含了更多的信息,Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中。因为这些文件及信息相对复杂,于是就有了各种进程查看工具,都是来遍历这个目录,以不同格式显示相关信息。

ps [OPTION] ...
    选项:支持两种风格
    常用组合:aux
        u:以用户为中心组织进程状态信息显示
        a:与终端相关的进程
        x:与终端无关的进程

[root@localhost ~]# ps aux
USER    PID %CPU %MEM  VSZ        RSS  TTY    STAT START   TIME     COMMAND
root      1        0.2     1.5      128932  7636    ?        Ss    1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值