LINUX 进程控制
来源:互联网 发布:程序员简历怎么写 编辑:程序博客网 时间:2024/06/04 19:37
LINUX操作系统借助于进程来管理计算机的软、硬件资源,支持多任务的并行执行。操作系统最核心的概念就是进程。 1.进程的概念 进程是操作系统资源分配的基本单位,是一个动态的实体,是程序的一次执行过程(运行中的程序) 程序是一些保存在硬盘上的可执行的代码。 线程在进程内部,它是比进程更小的能独立运行的基本单位,基本不占用系统资源。进程在执行过程中拥有独立的内存单元,其内部的线程共享这些内存。一个线程可以创建另一个线程,同一个进程中的多个线程并行执行。 2.进程的标识 每一个进程都是通过唯一的进程ID(非负数)标识的。 pid_t getpid(id) 获得进程ID pid_t geppid(id) 获得父进程ID pid_t getuid() 进程的实际用户ID pid_t geteuid() 进程的有效用户ID pid_t getgid() 进程的实际组ID pid_t getugid(id) 进程的有效组ID 3.进程的结构组成 代码段:存放程序的可执行代码 数据段:存放程序的全局变量、常量、静态变量 堆栈段:堆区用于存放动态分配的内存变量,栈区用于函数调用,存放函数的参数、函数内部定义的局部变量 4.进程状态 (1)R 运行状态 (2)S 可中断等待状态:进程可以在等待过程中可以被信号或定时器唤醒 (3)D 不可中断等待状态:进程可以在等待过程中不可以被信号或定时器唤醒 (4)Z 僵死状态:进程已终止,但进程描述符依然存在,直到父进程调用wait()函数后释放 (5)T 停止状态:收到SIGSTOP\SIGTOU等信号停止运行或者该进程正在被追踪 可用ps命令查看当前状态 5.进程的控制 fork:用于创建一个新进程 exit:终止进程 exec:执行一个应用程序 wait:将父进程挂起,等待子进程终止 nice:改变进程的优先级
举例:用fork建立进程
#include<stdio.h>#include<unistd.h>int main(){ pid_t pid; printf("Hello!\n "); int i=1; for(i=1;i<=5;i++) { pid=fork(); if(-1== pid) { perror("fork error"); return -1; } else if(0 == pid) { printf("I am kid %d ",i); break; } } if(i<=5) printf("%u\n",pid); else printf("parents\n"); return 0; }
阅读全文
0 0
- linux进程及进程控制
- linux进程及进程控制
- linux进程及进程控制
- linux进程及进程控制
- LINUX进程控制
- Linux 进程控制
- linux进程控制
- linux进程控制
- Linux的进程控制
- linux进程控制
- LINUX进程控制 笔记
- linux进程控制
- linux 进程控制说明
- linux 进程控制入门
- Linux进程控制
- Linux进程控制
- LInux进程控制
- Linux进程控制
- 【第六章】 函数
- eclipse设置注释模板最全版总结myeclipse也可以通用
- js 错误监控
- STL中list学习笔记
- 身份证识别SDK-身份证识别api(移动端-服务器端)
- LINUX 进程控制
- Java基础11:Wrapper包装类
- leetcode-90-Subsets II
- 高通Android源码下载
- 关于dcim基于active Mq实现数据中心监控数据的接入
- vscode 常用功能 (20171028)
- Eclipse下Maven新建Web项目index.jsp报错完美解决(war包)
- JavaWeb 国际化
- Thinkphp volist 多重循环原样输出数组key值的使用总结