linux下的进程
一、进程的基础:
1、程序:程序是一些保存在磁盘上的指令的有序集合;
2、进程:进程是程序的一次执行过程;
3、进程与程序的关系:①、程序是静态的,进程是动态的;
②、一个程序可以对应多个进程;
③、程序只有数据段和代码段,进程除了有数据段和代码段之外,还有堆和栈;

关于进程:
堆栈区:存放的是函数的返回地址,函数的参数以及程序中的局部变量;
代码段:存放程序代码;
bss段:存放未初始化的全部变量和静态变量;
数据段:存放初始化全局和静态变量;
4、进程的特征:
①、动态的:程序的一次执行过程,在虚拟内存中运行,每时每刻都在变化;
②、并发的:“同时”运行;
③、独立的:每一个运行的进程都有独立的4GB大小的虚拟内存空间,每个进程都独占系统资源;
进程是系统资源分配的最小单位;
线程是CPU调度的最小单位;
④、异步的:多个线程运行时他们是相关无关的;

5、进程的生命周期(状态)
6、进程的分类
①、交互进程
②、批处理进程
③、守护进程
7、进程的系统调用(API)
①、创建进程:
#include <unistd.h>
pid_t fork(void);
功能:创建进程;
特点:调用一次,返回两次;
返回值:调用失败:返回-1给调用的进程;调用成功:给父进程返回子进程的ID,给子进程返回:0;
当调用fork后:
1)系统会映射虚拟内存空间给子进程;
2)拷贝父进程的堆、栈,数据段给子进程;
3)给父进程返回子进程ID,给子进程返回0;
4)子进程共享父进程的代码段;
5)fork返回后,父、子进程从fork函数调用的下一条语句同时往下执行;
②、 exec函数族
③、结束进程:exit和_exit
④、使当前进程阻塞,给子进程收尸:wait、waitpid。
linux下的进程的更多相关文章
- Linux下java进程CPU占用率高分析方法
Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...
- linux下对进程按照内存使用情况进行排序
linux下对进程按照内存使用情况进行排序的命令为:ps aux --sort -rss 详细解说参见 http://alvinalexander.com/linux/unix-linux-proce ...
- linux下查看进程占用端口和端口占用进程命令
Linux下查看进程占用端口: 查看程序对应进程号:ps –ef|grep 进程名 REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程号 ubuntu:查看进程占用端 ...
- linux 下的进程管理工具 supervisor
在linux下监控进程: 1)yum install python-setuptools linux下的python安装工具 2)easy_install supervisor 安装sup ...
- linux下监控进程需掌握的四个命令
linux下监控进程需掌握的四个命令 在LInux系统下,最困难的工作之一就是跟踪正在系统中运行的程序,尤其是现在,图形桌面使用很多的程序,只是为了生成一个桌面环境,系统中运行了太多的进程,幸运的 ...
- Linux下的进程与线程(二)—— 信号
Linux进程之间的通信: 本文主要讨论信号问题. 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程. 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得 ...
- Linux下的进程与线程(一)—— 进程概览
进程是操作系统分配资源的基本单位.线程是操作系统进行运行和调度的基本单位. 进程之间可以切换,以便轮流占用CPU,实现并发.一般进程运行在用户模式下,只能执行指令集中的部分指令. 当进程进行上下文切换 ...
- linux下查询进程占用的内存方法总结
linux下查询进程占用的内存方法总结,假设现在有一个「php-cgi」的进程 ,进程id为「25282」.现在想要查询该进程占用的内存大小.linux命令行下有很多的工具进行查看,现总结常见的几种方 ...
- Django项目部署在Linux下以进程方式启动
Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...
- Linux下php-fpm进程过多导致内存耗尽问题
这篇文章主要介绍了解决Linux下php-fpm进程过多导致内存耗尽问题,需要的朋友可以参考下 最近,发现个人博客的Linux服务器,数据库服务经常挂掉,导致需要重启,才能正常访问,极其恶心,于是 ...
随机推荐
- 32.ExtJS简单的动画效果
转自:http://blog.sina.com.cn/s/blog_74684ec501015lhq.html 说明:这篇文章的大部分内容来源于网上,经过自己实现其效果后,整理如下: 在进行 Java ...
- java笔记线程方式1线程暂停yield
public static void yield():暂停当前正在执行的线程对象,并执行其他线程. 让多个线程的执行更和谐,但是不能靠它保证一人一次. public class ThreadYield ...
- 关于Java泛型的?和 T 的区别
java中的?号指未知的类型:而T指具体类型 泛型问号(?)未知的类型就是可以指定当前问号(?)所代表的类,可以指定上限(extends)和下限(super) 泛型T指已经具体知道了类型,就是不能指定 ...
- Objective-C程序
创建: 2018/01/17 完成: 2018/01/19 对象(object)与信息 信息式 声明实例变量 id obj; 向对象变量发送信息 [obj msg] //这就是信息式 例: [ ...
- 【杂文】5亿大质数表(5e8)
[杂文]\(5\) 亿大质数表(\(5e8\)) 在写哈希,刷数论题时曾一度想要查质数,\(F**k\) 百度文库数据又少,翻页蛋疼,还不给复制,真的是服了. 于是在我闲的蛋疼的时候就搞了个质数表出来 ...
- MongoDB Built-In Roles(内置角色)
1. 数据库用户角色:read.readWrite; 2. 数据库管理角色:dbAdmin.dbOwner.userAdmin: 3. 集群管理角色:clusterAdmin.clusterManag ...
- Linq 内连接和外连接(转载)
一.内连接 Model1Container model = new Model1Container(); //内连接 var query = from s in model.Student join ...
- 403 Frog Jump 青蛙过河
一只青蛙想要过河. 假定河流被等分为 x 个单元格,并且在每一个单元格内都有可能放有一石子(也有可能没有). 青蛙可以跳上石头,但是不可以跳入水中.给定石子的位置列表(用单元格序号升序表示), 请判定 ...
- [转]position:fixed; 在IE9下无效果的问题
本文转自:http://www.cnblogs.com/xinwang/archive/2013/04/06/3002384.html 平常DIV+CSS布局时,position属性一般用absoul ...
- PHP语言开发Paypal支付demo的具体实现
如果我们的应用是面向国际的.那么支付的时候通常会考虑使用paypal.以下为个人写的一个paypal支付示例,已亲测可行.paypal有个很不错的地方就是为开发者提供了sandbox(沙箱)测试功能. ...