linux虚拟地址空间
是由进程的虚地址构成的地址空间。在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中,这个沙盘就是虚拟地址空间(virtual address space)。虚拟地址空间由内核空间(kernel space)和用户模式空间(user mode space)两部分组成。
进程
进程是多任务操作系统中一个运行的实例,是系统资源管理的最小单位。
进程分为三类:
交互进程:例如shell命令进程,文本编辑器(vim),图形应用程序等
批处理进程:例如编译器gcc
守护进程:这类进程一直在后台运行,和任何终端都不关联,很多系统进程(各种服务)都是以守护进程的形式存在
linux下查看进程命令:ps -fe ,ps aux,pstree,top
进程的三种状态:就绪态,运行态,等待态
进程的优先级范围:-20到19,数字越大,优先级越低
进程相关函数
创建 fork和vfork
进程主动退出 exit和_exit
子进程回收 waitpid
在子进程运行其它程序 exec
守护进程
创建守护进程:
(1)创建子进程,退出父进程(使子进程成为后台进程)
(2)设置新的会话(使进程完全独立)
(3)设置工作目录
(4)重设文件掩码
(5)关闭从父进程继承下来的文件描述符
线程函数
创建线程 pthread_create
回收线程资源,阻塞回收 pthread_join
回收线程资源,非阻塞回收 pthread_detach
线程主动退出 pthread_exit
线程被动退出 pthread_exit
线程互斥:利用互斥锁函数pthread_mutex_t myMutex;
线程同步:无名信号量,有名信号量
进程间通讯方式:无名管道,有名管道,信号