一、进程与信号进程状态

进程状态查看

ps -ef

UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 Aug27 ?        00:00:06 /sbin/init auto noprompt
root          2      0  0 Aug27 ?        00:00:00 [kthreadd]
root          3      2  0 Aug27 ?        00:00:00 [ksoftirqd/0]

ps -aux

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 120056  6208 ?        Ss   Aug27   0:06 /sbin/init auto noprompt
root          2  0.0  0.0      0     0 ?        S    Aug27   0:00 [kthreadd]

进程调度策略

task_struct中的调度信息

  策略

    轮流策略

    先进先出策略

  优先权

    JIFFIES变量

  实时优先权

    实时进程之间

  计数器

进程函数

#include <unistd.h>
#include <sys/types.h>

pid_t getpid(void);  //获取当前进程pid
pid_t getuid(void); //获取进程用户uid
pid_t geteuid(void);//获取进程的有效用户id
pid_t getgid(void);//获取进程用户组id
pid_t getppid(void);//获取进程父进pid
pid_t getpgrp(void);//获取进程所在进程组id
pid_t getpgid(void);//获取进程组id
时间: 2024-11-03 05:44:10

一、进程与信号进程状态的相关文章

进程资源和进程状态 TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE

摘要:本文主要介绍进程资源和进程状态.进程资源由两部分组成:内核空间进程资源以及用户空间进程资源.进程状态,就绪/运行状态.等待状态(可以被中断打断).等待状态(不可以被中断打断).停止状态和僵死状态. 1.进程资源 进程是Linux系统下资源管理的基本单位,每个进程都有自己的独立的运行空间.为了更好的管理Linux所访问的资源,系统引入了进程控制(PCB)的概念,PCB结构体. 进程资源由两部分组成:内核空间进程资源以及用户空间进程资源. 内核空间进程资源:指的就是PCB相关信息.包括进程控制

第9章 进程和信号(一)

本文目录: 9.1 进程的简单说明 9.11 进程和程序的区别 9.12 多任务和cpu时间片 9.13 父子进程及创建进程的方式 9.14 进程的状态 9.15 举例分析进程状态转换过程 9.16 进程结构和子shell 9.2 job任务 9.3 终端和进程的关系 9.4 信号 9.41 需知道的信号 9.42 SIGHUP 9.43 僵尸进程和SIGCHLD 9.44 手动发送信号(kill命令) 9.45 pkill和killall 9.5 fuser和lsof 9.1 进程简单说明 进

一、进程与信号之信号的概念

信号:进程与进程之间通讯机制 信号是软件中断 信号是异步事件 信号来源:内核产生,常用信号kill(),raise(),alarm(),settimer()等 kill -l 查看linux所有 信号共64个 1-31 非实时信号发送信号可能回丢失,不支持信号排队 32-64实时信号 进程处理信号: 忽略信号 SIGKILL和SIGSTOP永远不能被忽略 忽略硬件异常 进程启动时SIGUSER1和SIGUSER2两个信号被忽略 执行默认操作 每个信号都有默认动作,大部分信号动作是终止信号 捕获信

2信号处理之:信号产生原因,进程处理信号行为,信号集处理函数,PCB的信号集,sigprocmask()和sigpending(),信号捕捉设定,sigaction,C标准库信号处理函数,可重入函数,

 1信号产生原因 2.进程处理信号行为 manpage里信号3中处理方式: SIG_IGN SIG_DFL                                            默认Term动作 a signal handling function 进程处理信号 A默认处理动作 term   中断 core    core(调试的时候产生) gcc –g file.c ulimit –c 1024 gdb a.out core ign      忽略 stop     停止

Android -- Init进程对信号的处理流程

Android -- Init进程对信号的处理流程 在Android中,当一个进程退出(exit())时,会向它的父进程发送一个SIGCHLD信号.父进程收到该信号后,会释放分配给该子进程的系统资源:并且父进程需要调用wait()或waitpid()等待子进程结束.如果父进程没有做这种处理,且父进程初始化时也没有调用signal(SIGCHLD, SIG_IGN)来显示忽略对SIGCHLD的处理,这时子进程将一直保持当前的退出状态,不会完全退出.这样的子进程不能被调度,所做的只是在进程列表中占据

进程和信号

前言 没深入研究进程和信号,只是本人一个粗虐的理解. 什么是进程? 1.当程序未被解析器运行时,只是一个静态的文件或数据流. 2.程序被解析器运行时,就产生了进程,进程代表当前程序运行时的一个状态. 父子进程 1.进程好比现实生活中的人,也有父子关系. 2.子进程会继承父进程,但子进程是独立的. 3.如果父进程死了,子进程会成孤儿,但儿子并不孤独,还有天地嘛. 4.有的人活着但死了,现实中叫僵尸,计算机里叫僵尸进程 信号 1.我们知道进程和进程是独立的,进程之间通信必须通过某方式进行交流.我们事

Linux 命令 - killall: 通过进程名向进程发送信号

命令格式 killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME... killall -l, --list killall -V, --version 命令参数 -e, --exact 对于长名字,要求精确匹配.如果一个命令名的长度超过 15 字符,则可能不会用完整的名字.这种情况下,killall 会杀死名字匹配前 15 个字符的进程.使用 -e 选项,则会要求进程名字完全匹配. -I, --ignore-case 匹配进程

linux程序设计——进程和信号总结(第十一章)

11.4.2    信号集 头文件signal.h定义了类型sigset_t和用来处理信号集的函数.sigaction和其他函数.sigaction和其他函数将用这些信号集来修改进程在接收到信号时的行为. #include <signal.h> int sigaddset(sigset_t *set, int signo); int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigdelset(sigset_t

linux程序设计——进程和信号(第十一章)

11.4.1    发送信号 进程可以通过调用kill函数向包括它本身在内的其他进程发送一个信号.如果程序没有发送该信号的权限,对kill函数的调用就将失败,失败的常见原因是目标进程由另一个用户所拥有.这个函数和同名的shell命令完成相同的功能,它的定义如下所示: #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); kill函数把参数sig给定的信号发送给参数pid给出的进程号所指定的进