多进程环境下UNIX操作系统的程序设计技术的研究
第23卷 2007
哈尔滨师范大学自然科学学报 V01.23,No.3
NATURALSCIENCES OFHARBINNORMALUNIVERSITY
第3期 JOURNAL
多进程环境下UNIX操作系统
的程序设计技术的研究
杨茹 孔宪军
(黑龙江工程学院)
【摘要】 本文通过UNIX实现多任务的分析,指出了多进程环境下UNIX操作
系统的程序设计的具体方法,并对UNIX几个重要函数进行了分析,提供了多进程环
境下函数的应用程序.
关键词:UNIX操作系统;多进程;fork()函数;wait()函数
多任务系统采用的方式基本上不外乎两种:
Multitask—
0 引言 (1)协同式多任务(Cooperative
由于UNIX操作系统众所周知的稳定性、可ing);
靠性,用来提供各种Intemet服务的计算机运行 (2)抢占式多任务(PreemptiveMultitasking);
的操作系统占很大比例的是UNIX及UNIX类操UNIX都是抢占式系统.
作系统.目前比较常见的运行在PC机上的UNIX
UNIX2
类操作系统有:BSDUNIX、Solarisx86、SCO UNIX多进程的特点
等. 在传统的多任务系统中,“进程”是一个很重
要的概念,在系统中进程是程序执行的实体,进程
1 UNIX多任务的实现 具有结构特征,它由正文(部分程序)、数据以及
多任务是操作系统的重要性能之一.多任务 堆栈等数据结构组成.当一个进程需要由另一个
即在同一时间内运行多个应用程序,UNIX多任实体执行某项任务时,该进程就派生(fork)一个
务是指系统可以同时运行多个进程.多任务是相 子进程,让子进程去进行处理.在多任务操作系统
对于操作系统而言,指的是同一时间执行多个程 内核调度下,系统中许多进程在并发执行.每个进
序的能力,但是实际上在只有一个CPU的条件下 程按自己的一系列指令严格执行,各进程之间的
不可能同时执行两个以上的程序.CPU在程序之 指令空间是独立的,不能跳转到其它的进程,它只
间做高速的切换,使得所有的程序在很短的时间 会读写自己的数据与堆栈,不能去读写其它进程
之内可以得到更小的CPU时间,这样从用户的角 的数据和堆栈.进程通过系统调用与其它进程和
度来看就好像是同时在执行多个程序.进程就是 外界通信.
应用程序的运行过程.每个进程都有自己私有的
虚拟地址空间. 3 UNIX多进程下的网络编程的方
收稿日期:2006—11—13
万方数据
68 哈尔滨师范大学自然科学学报 2007年
法 {
UNIX系统中派生新进程的唯一的方法是调
用fork()函数.该函数的原型如下所示: 使用的监听插口描述符术/
#include · /水通过connfd读