一、概括 系统启动架构图: 上图在Android系统-开篇中有讲解,是从Android系统启动的角度来分析,本文是从进程/线程的视角来分析该问题。 1.1 父进程 在所有进程中,以父进程的姿态存在的进程(即图中的浅红色项),如下: kthreadd进程: 是所有内核进程的父进程 init进程 : 是 ...
分类:
移动开发 时间:
2016-07-01 13:30:16
阅读次数:
851
首先创建一个进程有两种做法,fork()和execve()他们都是系统调用,但是运行方式不同。创建一个进程可以使用fork系统调用,然后子进程会得到父进程的数据段,栈段和堆区的一份拷贝,子进程可以独立修改这些内存段,但是文本段是父进程和子进程的共享段,子进程不能修改;如果使..
分类:
系统相关 时间:
2016-06-28 08:15:27
阅读次数:
227
Linux下对文件操作有两种方式:系统调用(systemcall)和库函数调用(Libraryfunctions)fork完后:(1)有两个返回值,子进程返回0,父进程返回子进程的id(2)父子进程谁先运行不确定,由调度系统说了算,但是期望子进程先退出,并且父进程在子进程退出时读取子进程的状态(3..
分类:
其他好文 时间:
2016-06-27 00:14:57
阅读次数:
179
1.fork()函数include<unistd.h>一个现有进程可以调用fork函数穿件一个新进程,子进程返回0,父进程返回子进程ID,出错返回-1子进程是父进程的副本,子进程获得父进程的数据空间、堆和栈的副本,父子进程不共享这些空间。父子进程共享正文段。对于子进程,现在很多实现并..
分类:
系统相关 时间:
2016-06-27 00:11:17
阅读次数:
254
1、首先了解shell的基本框架如上图所示[用户名@主机名当前路径]$命令执行命令结果目标:完成一个简单的shell(输入命令可以得到执行结果)所以框架分为:1、【提示符】$的显示-----一堆函数的调用即可2、命令的执行-----读入数据,进行解析,得到argv[],执行execvp3、对于内置..
分类:
系统相关 时间:
2016-06-26 00:40:31
阅读次数:
299
C标准定义了下面的退出函数:#include<stdlib.h>voidexit(intstatus);void_Exit(intstatus);intatexit(void(*function)(void));函数功能介绍如下:voidexit(intstatus)该函数终止调用的程序。status传递给系统用于父进程恢复。程序退出之前,exit()调用所有以atexit()注..
分类:
系统相关 时间:
2016-06-26 00:39:30
阅读次数:
380
实验内容:有3个进程,其中一个为父进程,其余两个是该父进程创建的子进程,其中一个子进程运行"ls -l"指令,另一个子进程暂停5s之后异常退出,父进程先用阻塞方式等待第一子进程的结束,然后用非阻塞方式等待另一个子进程退出,等待收集到第二个子进程结束的信息,父进程就返回。 第二种代码写法: ...
分类:
系统相关 时间:
2016-06-24 20:20:52
阅读次数:
175
首先介绍一下android的进程. Android 进程分为两种 :其一,java层的进程,也就是在虚拟机里运行的进程,他们的父进程是zygote进程,我们平时调用的AM里面的类似getrunningprocess()方法,返回的就是这类进程信息,这类进程很容易被杀死。其二,native层的原生进程
也就是linux c的进程,这类进程比较安全,其中父进程是init进程的更加安全,很难杀死,在...
分类:
移动开发 时间:
2016-06-24 16:16:33
阅读次数:
431
PS查看进程 inux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系 ...
分类:
系统相关 时间:
2016-06-24 12:42:39
阅读次数:
358
fork函数 头文件:#include<unistd.h> 函数原型:pid_t fork( void);(pid_t 是一个宏定义,其实质是int 被定义在#include<sys/types.h>中) 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1 ...
分类:
系统相关 时间:
2016-06-24 12:39:57
阅读次数:
229