linux进程-入门认识

进程控制块

linux的进程是由进程控制块PCB来描述,它包含了进程的描述信息、控制信息以及资源信息,他是进程的一个静态描述。

在 Linux 中,进程控制块中的每一项都是一个 task_struct 结构,它是在 include/linux/sched.h 中定义的。

找一下自己系统中的 task_struct 结构体:

grep struct\ task_struct\ { /usr/src/linux-headers-4.4.0-21/include/* -rn

-n 代表显示行号

分析 task_struct 结构体
内核中的结构体很长
1380 struct task_struct { // 描述我们的进程信息的对象
1381         volatile long state; /* 进程状态 -1 unrunnable, 0 runnable, >0 stopped */
1382         void *stack;
1383         atomic_t usage;
1384         unsigned int flags; /* per process flags, defined below */
1385         unsigned int ptrace;
1444         struct mm_struct *mm, *active_mm; /*虚拟地址 每个进程都有 4GB 独立的空间 */
1452         int exit_state; /*退出状态 */
1453         int exit_code, exit_signal;
1483         pid_t pid; /*进程号 */
1496         struct task_struct __rcu *parent; /* 父进程 recipient of SIGCHLD, wait4() reports */
1497         /*
1498          * children/sibling forms the list of my natural children
1499          */
1500         struct list_head children; /* 子进程 list of my children */

主要的进程标识

进程号 (Process Identity Number ,PID) ,PID 唯一地标识一个进程,可以通过 pid_t getpid(void) 获取;
父进程号 (Parent Process ID,PPID),可以通过 pit_t getppid(void) 获取;

进程类型

交互进程: 该类进程是由 shell 控制和运行的。交互进程既可以在前台运行,也可以在后台运行。
                   例如:shell命令;
批处理进程:该类进程不属于某个终端,它被提交到一个队列中以便顺序执行。
                   例如:启动时shell脚本;
守护进程:该类进程在后台运行。它一般在 Linux 启动时开始执行,系统关闭时才结束。
                   例如:samba、http服务等;

进程查看工具

ps -axj 或 pstree -p
a 不仅列出当前用户的进程,也列出所有其他用户的进程
x 表示不仅列出有控制终端的进程,也列出所有无控制终端的进程。
j 表示列出与作业控制相关的信息
TPGID 一栏写着 -1 的都是没有控制终端的进程,也就是守护进程

进程相关概念

        
        1、进程互斥
        进程互斥是指当有若干进程都要使用某一共享资源时,任何时候最多允许一个进程使用,其他要使用该资源的进程必须等待,直到进程使用者释放了该资源。
        
        2、进程同步
        一组并发进程按一定的顺序执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。
        3、临界资源
        操作系统中将以此只允许一个进程访问的资源称为临界资源。
       4、临界区
        进程中访问临界资源的那段程序代码称为临界区。为实现对临界资源的互斥访问,应保证诸进程互斥地进入各自的临界区。
       5、进程调度
        按一定算法,从一组待运行的进程中选出一个来占有 CPU 运行。内核在编译时已经确定了此系统的调度方式。常见的调度方式如下:
                1、抢占式调度
                2、非抢占式调度
                3、先来先服务调度算法
                4、短进程优先调度算法
                5、高优先级优先调度算法
        6、进程模式
        进程的执行模式分为用户模式和内核模式
        
       7、 进程管理
        启动进程:
                1、手工启动
                2、由用户输入命令直接启动进程
                3、前台运行和后台运行
                4、调度启动
                5、系统根据用户事先的设定自行启动进程
                6、at 在指定时刻执行相关进程,
                7、cron 周期性执行相关进程

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁静的海2006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值