Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release ...
分类:
编程语言 时间:
2017-03-05 23:10:42
阅读次数:
309
线程:线程基础概念:线程在Linux中又称轻量级进程。并且它和进程都有PCB(进程控制块),但是区别是进程的虚拟地址空间是独享的,也就是每个进程都有自己的虚拟地址空间,但是线程的PCB是共享的,在同一...
分类:
编程语言 时间:
2017-02-16 11:45:22
阅读次数:
164
主要函数: fork 用于创建一个新进程 exit 用于终止进程 exec 用于执行一个程序 wait 将父进程挂起,等待子进程结束 getpid 获取当前进程的进程ID nice 改变进程的优先级 孤儿进程: 如果一个子进程的父进程先于子进程结束,子进程就成为一个孤儿进程,他由init进程收养,成 ...
分类:
系统相关 时间:
2017-02-10 19:54:23
阅读次数:
217
什么是进程? 一个进程是一个程序的一次执行的过程。它和程序不同,程序是静态的,它是一些保存在磁盘上的可执行的代码和数据集合;而进程是一个动态的概念,也是操作系统分配资源的最小单位。 我们知道,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_st ...
分类:
系统相关 时间:
2017-02-10 01:52:15
阅读次数:
216
5. 等待函数 (1)wait和waitpid 头文件 #include <sys/types.h> #include <sys/wait.h> 函数 pid_t wait(int* status); pid_t waitpid(pid_t pid, int* status, int options ...
分类:
系统相关 时间:
2017-01-30 10:47:05
阅读次数:
327
一、进程 进程:就是一个程序在一个数据集上的一次动态执行过程。 进程由三部分组成: 1、程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成 2、数据集:数据集则是程序在执行过程中所需要使用的资源 3、进程控制块:进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和 ...
分类:
编程语言 时间:
2017-01-14 12:42:20
阅读次数:
200
一、wait和waitpid函数 当一个进程正常或异常终止时会向父进程发送SIGCHLD信号。对于这种信号系统默认会忽略。调用wait/waidpid的进程可能会: 阻塞(如果其子进程都还在运行); 立即返回子进程的终止状态(如果一个子进程已经终止正等待父进程存取其终止状态); 出错立即返回(如果它 ...
分类:
系统相关 时间:
2017-01-12 10:32:10
阅读次数:
280
参考 http://www.yesky.com/20010813/192117.shtml 结构化程序设计思想认为:程序 = 数据结构 + 算法。数据结构体现了整个系统的构架,所以数据结构通常都是代码分析的很好的着手点,对Linux内核分析尤其如此。 比如,把进程控制块结构分析清楚了,就对进程有了基 ...
分类:
系统相关 时间:
2017-01-08 12:59:30
阅读次数:
214
[APUE]进程控制(上) 一、进程标识 进程ID 0是调度进程,常常被称为交换进程(swapper)。该进程并不执行任何磁盘上的程序--它是内核的一部分,因此也被称为系统进程。进程ID 1是init进程,在自举(bootstrapping)过程结束时由内核调用。该进程的程序文件在UNIX的早期版本 ...
分类:
其他好文 时间:
2017-01-08 07:59:23
阅读次数:
318
一.进程:是程序的一次动态执行,它对应着从代码加载,执行至执行完毕的一个完整的过程,是一个动态的实体,它有自己的生命 周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映了一个程序在 一定的数据 集上运行的全部动态过程。通过进程控制块(PCB)唯一的标识某个 ...
分类:
编程语言 时间:
2017-01-07 19:22:22
阅读次数:
159