深入研究java.lang.ProcessBuilder类一、概述 ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法。在J2SE 1.5之前,都是由Process类处来实现进程的控制管理...
分类:
编程语言 时间:
2014-06-28 18:43:49
阅读次数:
232
原子操作一、添写到文件 早期的UNIX的open函数里面,不支持O_APPEND的选项。所以要追写到文件结尾处,必须先利用lseek把文件偏移量移到文件的结尾处,再进行write操作。 如果当前进程A刚执行完lseek后,系统进程调度作用切换到了另一个进程B,进程B对同一个文件进行了写操作。进程B写...
分类:
其他好文 时间:
2014-06-19 08:58:03
阅读次数:
318
进程的创建
四种主要的事件导致进程的创建:
系统初始化正在运行的进程发出系统调用,创建一个活多个进程用户请求创建一个新进程一个批处理作业的初始化
在所有的情形中,新进程都是由于一个以存在的进程执行了一个用与创建进程的系统调用而创建的。
Unix 进程的创建:
fork(系统调用)--> 创建一个与系统调用相同的副本 --> 子进程执行execve或一个类似的系统调用 -->...
分类:
其他好文 时间:
2014-06-05 03:39:59
阅读次数:
193
前言:
开发操作系统是为了给应用程序提供一个方便、安全、一致的访问接口,以屏蔽硬件的复杂性。我们可以将操作系统理解为资源的统一抽象表示,可以被应用程序请求和访问。资源包括内存,文件等,一旦操作系统为应用程序创建了这些资源的抽象表示,就必须管理它们的使用。现代操作系统采用进程来管理应用程序的执行。
进程的概念:
1.一个具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系...
分类:
其他好文 时间:
2014-06-03 06:28:55
阅读次数:
272
在操作系统中,进程实体是指PCB+程序段+相关的数据段这里主要总结一下进程控制块作用:
使一个在多带程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程
或者,OS是根据PCB来对并发执行的进程进行控制的。 PCB常被OS访问,因此其应常驻内存中; 描...
分类:
其他好文 时间:
2014-05-31 01:24:29
阅读次数:
291
进程管理中最基本的功能。创建,终止,状态转换操作有OS内核中的原语实现的,原语由若干指令组成,是‘原子操作‘,所有动作要么做,要么不做,不允许中断,在管态下执行,常驻内存进程创建:
进程图是描述有进程家族关系的有向树 进程间关系:子进程可以继承父进程所拥有的资源 引起进程创建事件: 1,、用户登录;...
分类:
其他好文 时间:
2014-05-31 01:18:59
阅读次数:
321
什么是堆,什么是栈,什么是数据段,什么是代码段...这些都是历史遗留问题,如今编程真的没有必要在意这些了!不要被/proc/xx/{maps,smaps}里面的内容所迷惑和萦绕,自己管理好自己的内存分配就好,如果程序不是自己写的,那么就找写它的人。本文将从一个链接动态库的可执行文..
分类:
其他好文 时间:
2014-05-27 03:15:06
阅读次数:
313
一、进程管理进程管理包括进程控制,进程调度,进程同步与通信,死锁控制四个内容。(一)进程控制进程是操作系统中运行的基本单位,包括程序段,数据段和进程控制段。操作系统通过进程控制块(PCB)管理进程。每一个PCB唯一标示一个进程。它存储进程的PID,UID,当前状态等信息,以及进程执行某一时刻的寄存器...
分类:
其他好文 时间:
2014-05-25 22:16:57
阅读次数:
337
什么是堆,什么是栈,什么是数据段,什么是代码段...这些都是历史遗留问题,如今编程真的没有必要在意这些了!不要被/proc/xx/{maps,smaps}里面的内容所迷惑和萦绕,自己管理好自己的内存分配就好,如果程序不是自己写的,那么就找写它的人。本文将从一个链接动态库的可执行文件如何载入进程地址空间开始,谈一下我对进程地址空间布局的看法。我没有采用精确的方式描述ELF或PE文件如何载入的,而仅仅...
分类:
其他好文 时间:
2014-05-18 18:23:26
阅读次数:
378
引言:
对于每个进程,都有一个非负整数表示的唯一进程ID。虽然进程的ID是唯一的,但却是可重用的。系统中有一些专用的进程。如ID为0的进程通常是调度进程,也成交换进程或系统进程(它是内核进程)。进程ID为1通常是init进程,它是一个普通的用户进程。一些与进程ID有关的函数:
#include
pid_t getpid(void); //返回值:调用进程的进程ID
pit_t get...
分类:
系统相关 时间:
2014-05-15 13:15:26
阅读次数:
482