上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 36 下一页
摘要: http://guoshaoguang.com/wp-content/uploads/2011/10/我-2.jpg 阅读全文
posted @ 2011-10-21 12:27 郭—大—侠 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 8.9 竞态条件 从本书的目的出发,当多个进程都企图对共享数据进行某种处理,而最后的结果又取决于进程运行的顺序时,则我们认为这发生了竞态条件( race condition)。如果在fork之后的某种逻辑显式或隐式地依赖于在fork之后是父进程先运行还是子进程先运行,那么fork函数就会是竞态条件活跃的滋生地。通常,我们不能预料哪一个进程先运行。即使知道哪一个进程先运行,那么在该进程开始运行后,所... 阅读全文
posted @ 2011-10-20 15:51 郭—大—侠 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 8.8 wait3和wait4函数-进程控制 wait3和wait4提供的功能比wait、waitpid和waitid所提供的功能要多一个,这与附加参数rusage有关。该参数要求内核返回由终止进程及其所有子进程使用的资源汇总。 #include #include #include #include pid_t wait3(int *statloc, int options, struct ru... 阅读全文
posted @ 2011-10-19 19:43 郭—大—侠 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 8.7 waitid函数-进程控制 waitid函数类似于waitpid,但提供了更多的灵活性。 #include int waitid(idtype_t idtype, id_t id, siginfo_t *infop. int options);//返回值:成功返回0,出错返回-1与waitpid相似,waitid允许一个进程指定要等待的子进程。但它使用单独的参数表示要等待的子进程的类型... 阅读全文
posted @ 2011-10-19 19:42 郭—大—侠 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 8.6 wait和waitpid函数-进程控制 当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号。因为子进程终止是个异步事件(这可以在父进程运行的任何时候发生),所以这种信号也是内核向父进程发的异步通知。父进程可以忽略该信号,或者提供一个该信号发生时即被调用执行的函数(信号处理程序)。对于这种信号的系统默认动作是忽略它。第1 0章将说明这些选择项。现在需要知道的是调用wait或w... 阅读全文
posted @ 2011-10-19 19:40 郭—大—侠 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 8.5 exit函数-进程控制 如同7 . 3节所述,进程有三种正常终止法及两种异常终止法。 (1) 正常终止: a) 在main函数内执行return语句。如在7 . 3节中所述,这等效于调用exit。 b) 调用exit函数。此函数由ANSI C定义,其操作包括调用各终止处理程序(终止处理程序在调用a t exit函数时登录),然后关闭所有标准I / O流等。因为ANSI C并... 阅读全文
posted @ 2011-10-19 19:39 郭—大—侠 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 8.4 vfork函数-进程控制 vfork函数的调用序列和返回值与fork相同,但两者的语义不同。 vfork用于创建一个新进程,而该新进程的目的是exec一个新程序(如上节(2) 中一样)。程序1 - 5中的shell基本部分就是这种类型程序的一个例子。vfork与fork一样都创建一个子进程,但是它并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exec (或exit ),于是... 阅读全文
posted @ 2011-10-19 19:37 郭—大—侠 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 8.3 fork函数-进程控制 一个现有进程可以调用fork函数创建一个新进程。 #include pid_t fork(void);//返回值:子进程中返回0,父进程中返回子进程ID。出错返回-1.由fork创建的新进程被成为子进程child process。fork函数被调用一次,但是返回两次,两次返回的唯一区别是子进程的返回值是0,而父进程的返回值是新子进程的进程ID。将子进程ID返回 父... 阅读全文
posted @ 2011-10-19 19:35 郭—大—侠 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 8.2 进程标识 每个进程都有一个非负整型的唯一进程ID。因为进程ID标识符总是唯一的,常将其用做其他标识符的一部分以保证其唯一性。例如,应用程序有时就把进程ID作为名字的一部分创建一个唯一的路径名。 虽然是唯一的,但是进程ID可以重用。当一个进程终止后,其进程ID就可以再次使用了。大多数UNIX系统实现延迟重用算法,使得赋予新建进程的ID不同于最近终止进程所使用的ID。这防止了将新进... 阅读全文
posted @ 2011-10-13 11:06 郭—大—侠 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 7 . 11 getrlimit和setrlimit函数 每个进程都有一组资源限制,其中某一些可以用getrlimit和setrlimit函数查询和更改。 #include #include int getrlimit(int resource, struct rlimit * rlptr) ;int setrlimit(int resource, const struct rlimit * r... 阅读全文
posted @ 2011-10-12 15:51 郭—大—侠 阅读(342) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 36 下一页