Android系统开发(8)——linx进程基本概念

日期:2019-02-01 编辑:AG88

Android系统开发(8)——linx澳门太阳集团城网址进程基本概念
一、proc文件系统传统意义上的文件系统是用于块设备上信息的存储,/proc这个目录是一个虚拟文件系统,它放置的数据都是在内存当中,所以这个目录本身不占用任何硬盘空间。主要包含如下系统信息:内存管理系统进程特征数据文件系统设备驱动程序系统总线电源管理终端系统控制参数

用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。下面列出的这些文件或子文件夹,并不是都是在你的系统中存在,这取决于你的内核配置和装载的模块。另外,在/proc下还有三个很重要的目录:net,scsi和sys。 Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi 目录不存在。<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" >vcD48cD6z/cHL0tTJz73pydy1xNXi0KmjrLu509C1xMrH0rvQqdLUyv3X1sP8w/u1xMS/wryjrMv8w8fKx734s8zEv8K8oaPPtc2z1tC1scew1MvQ0LXEw7/Su7j2vfizzLa809C21NOmtcTSu7j2xL/CvNTaL3Byb2PPwqOs0tS9+LPMtcQgUElEusXOqsS/wrzD+6Osy/zDx8rHtsHIob34s8zQxc+itcS907/aoaO2+HNlbGbEv8K81PLKx7bByKG9+LPMsb7J7bXE0MXPor3Tv9qjrMrH0ru49mxpbmuhozwvcD48aDM+tv6hosqyw7TKx734s8w8L2gzPr34s8zNqLOjsbu2qNLlzqrSu7j21f3U2tTL0NC1xLPM0PLKtcD9o6zL/NPJwb249rK/t9bX6bPJo7rSu7j21+mzybK/t9bKx7LZ1/fPtc2z08PAtLncwO2zzNDytcTE2rrLttTP86GjxNq6y7bUz/PKx8+1zbPTw8C0tOa3xbnY09q9+LPMzbO8xtDFz6K1xLXYt72ho8Ht0ru49tfps8myv7fWyse12Na3v9W85KOsy/yw/Lqsy/nT0L/J1rTQ0MSjv+m78kRMTMSjv+m1xLT6wuu6zcr9vt2ho8v8u7mw/Lqstq/MrMTatOa31sXktcS/1bzkoaPI58/fs8y20dW7us220dW7t9bF5L/VvOSho734s8zUy9DQuf2zzKOsxuTKtb7Nysew0bTFxcy1xLb+vfjWxs7EvP6809TYo6jTs8nko6m1vcTatOa/1bzk1tCjrLKix9LWuNL9Q1BVyKXE2rTm1tDRsNa3o6zIu7rzvMbL46OssqLH0re1u9ijqEkvT6OptcS5/bPMoaO/ydLUy7y/vNXi0fnSu7j2zsrM4qOsz9bU2s7Sw8fTssXMyc/T0Mj9uPbOxLz+eHh4LmV4ZSx4eHguYXBrLHh4eKOsstnX98+1zbPKx8jnus7WqrXAxMTQqc7EvP7Kx7/J1rTQ0M7EvP7E2KO/stnX98+1zbPKtrHwv8nWtNDQzsS8/rXEt73KvdPQwb3W1qOs0rvW1srH1NrPtc2zxNq6y7340NDKtrHwo6ixyMjnbGludXi6zXdpbmRvd3OjqaOswe3Su9bWysfU2s+1zbPE2r/isuPKudPD0OnE4rv6wLTKtc/WoaPKudPD0OnE4rv6vs23x7Ojt72x46OsztLDx7/J0tTU2rK70N64xMTausu1xMfpv/bPwtDeuMS6zcCp1bnQ6cTiu/q+zb/J0tTKtc/Wv+fGvcyooaM8aDM+yP2hor34s8y1xNTL0NC5/bPMPC9oMz4xoaK9q7PM0PLXsNTYtb3E2rTmo6izzNDytcTKtcD9u6+jqTMyzru2/r341sbPtc2z1+6089Gw1rfE3MGmyscgMl4zMiA9IDJeMTAgKiAyXjIgPSAxRyAqIDQgPSA0RyzL+dLUztLDx7XEzu/A7cTatObX7rTzv8nS1Mq508M0Ry682cjnztLDx8/W1NrNrMqxv6rByzEwMLj2vfizzLKlt8W159Owo6zV1dH5v8nS1NX9s6OypbfFo6zV4srHzqrKssO0xNijv8rCyrXJz7P9wcvO78DtxNq05s3io6y7udPQ0ru49tDpxOLE2rTmIDxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140831/2014083109370882.png" />
虚拟存储器是一个抽象的概念,它为每一个进程提供了一个假象,每个进程都在独占使用主存(硬盘) 虚拟地址空间如下:(注:图摘自《深入理解计算机系统》)
地址空间最底部存放用户进程定义的代码和数据,对于所有的进程来说,代码是从同一个固定地址开始。接着就是全局变量和对应的数据位置,堆、共享库、栈。最上面是内核虚拟存储器,内核总是驻留在内存中,是操作系统的一部分,地址空间顶部的区域是为内核保留的,不允许应用程序读写这个区域的内容或者直接调用内核代码定义的函数。
2、读取内存中的程序段内容,给变量分配空间,在调用的时候寻址操作进程运行过程其实就是把磁盘的二进制文件映射到内存空间中并且指引CPU去内存中寻址,然后计算并且返回(I/O)的过程。

 #include 
#include 
#include 

int main(){
        printf("hello PID:%d
", getpid());
        printf("hello ppid:%d
", getppid());
        char *p;
        scanf("%s", p);

        return 0;
}
启动这个程序(进程)
可以看到这个进程的ID是1634,进程的父ID是1617,下面我们使用命令ps -aux来查看一下当前的进程,该进程的父进程是shell进程。首先二进制程序getpid被linux系统识别,将该二进制文件放到内存中,处理器寻址并给变量分配内存空间(将函数和变量放到不同的区域),最后将结果输出。四、进程运行过程中的两个特点1、多任务,多进程“并发我们的linux是多任务,分时的,一个独立的逻辑控制流,好像我们的程序独占的使用处理器,下面是CPU的进程调度图。
进程1,2,3,4,5,6......在运行过程中由CPU分配时间片段,上图的处理器就像转盘一样,当指向某个进程后就给该进程分配时间片,开始执行该进程,如此反复。2、彼此独立、所处的内存隔绝使用虚拟内存,每个进程都有一个私有的地址空间,好像我们的程序独占和使用内存。五、进程的生命周期对程序而言,进程有三大状态:运行、挂起、消亡。 1、建立任务(创建进程)2、准备运行(等待CPU分配时间片)3、正在运行(在实际的运行状态中,如果没有分配到cpu实际片,继续等待)4、挂起(分为可打扰的和不可打扰的),比如scanf等待用户输入就是可打扰中断。5、消亡(当任务终止,或者被父进程回收)

http://www.bkjia.com/Androidjc/872958.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/872958.htmlTechArticleAndroid系统开发(8)——linx进程基本概念 一、proc文件系统 传统意义上的文件系统是用于块设备上信息的存储,/proc这个目录是一个虚拟文...

本文源自: AG环亚官网