
进程
努力努力再努力r
这个作者很懒,什么都没留下…
展开
-
进程控制
进程创建(1)fork#include #include pid_t fork(void);应用程序创建进程的唯一方法:fork()。子进程复制了父进程的存储映像。fork()调用成功时,子进程返回值为0,父进程返回值为他所创建的子进程的PID。(2)exec系列exec是一组函数用于产生一个新的程序映像,替换了当前进程的正文段、数据段、堆段和栈段等待进程完成#原创 2017-11-28 22:30:03 · 171 阅读 · 0 评论 -
进程环境——终止进程
终止进程正常终止:main函数返回 或 exit() 或 _exit()。异常终止:abort() 或 信号注意:exit()和_exit()的区别是,_exit()直接到内核,exit()要完成一些清理工作然后调用_exit()到内核。#include void exit(int status);出口状态参数status是出口状态。出口状态用来向父进程报告程序运原创 2017-11-25 23:06:06 · 211 阅读 · 0 评论 -
进程间通信
(1)匿名管道和FIFO有名管道。(2)消息队列、信号量和共享存储。(3)套接字。管道——匿名管道在命令行中使用:$cat file | grep "pipe" | more。这句话用了两个管道,分别使cat的标准输出成为grep的标准输入,grep的标准输出成为more的标准输入。创建管道:#include int pipe(int fdes[2]);该函数在系统内部创原创 2017-12-05 14:55:19 · 130 阅读 · 0 评论 -
信号
信号生成信号的事件:程序错误(0作除数)、外部事件(按下Ctrl-C)、显示请求(kill)信号的生成可以是同步的,即在某个具体操作进行的同时产生,如溢出;也可以是异步的,即进程之外的事件生成的信号,任意时刻,无法预期。信号发生时进程可以采取的三种动作:忽略,捕获,默认动作(流产、终止、忽略、挂起、继续)。生成信号的函数:#include int raise(int sig)原创 2017-12-05 20:30:17 · 171 阅读 · 0 评论 -
进程环境——进程的存储空间
进程的存储空间每当进程申请一片存储空间或者企图读写已分配的存储空间时,内核负责映射虚地址到物理地址,即负责虚地址空间至实地址空间的转换。进程的地址空间进程的地址空间由系统允许程序引用或访问的所有存储单元组成。进程的地址空间及其寄存器上下文,反映了进程所运行的当前状态。当进程用exec()装入一个新程序时,内核便为这个新程序建立地址空间。进程的地址空间由若干不同的段组成,每个原创 2017-11-27 22:59:05 · 743 阅读 · 1 评论 -
进程与线程的区别
a.进程是资源分配的基本单位,线程是cpu调度,或者说是程序执行的最小单位。在Mac、Windows NT等采用微内核结构的操作系统中,进程的功能发生了变化:它只是资源分配的单位,而不再是调度运行的单位。在微内核系统中,真正调度运行的基本单位是线程。因此,实现并发功能的单位是线程。b.进程有独立的地址空间,比如在linux下面启动一个新的进程,系统必须分配给它独立的地址空间,建立众多的数据表来维护...转载 2018-03-01 16:52:33 · 173 阅读 · 0 评论