Chinaunix首页 | 论坛 | 博客
  • 博客访问: 982460
  • 博文数量: 186
  • 博客积分: 10020
  • 博客等级: 上将
  • 技术积分: 1676
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-14 17:08
文章存档

2011年(5)

2009年(11)

2008年(2)

2007年(111)

2006年(57)

我的朋友

分类: LINUX

2007-07-31 16:19:20

一.多进程程序的特点
由于UNIX系统是分时多用户系统, CPU按时间片分配给各个用户使用, 而在实质上
应该
说CPU按时间片分配给各个进程使用, 每个进程都有自己的运行环境以使得在CPU
做进程
切换时不会"忘记"该进程已计算了一半的"半成品". 以DOS的概念来说, 进程的切
换都
是一次"DOS中断"处理过程, 包括三个层次:
    (1)用户的保存: 包括正文段(TEXT), 段(DATA,BSS), 栈段(STACK)
, 共享
内存段(SHARED MEMORY)的保存.
        (2)寄存器的保存: 包括PC(program counter,指向下一条要执行的

令的地址), PSW(processor status word,处理机状态字), SP(stack pointer,栈

针), PCBP(pointer of process control block,进程控制块指针), FP(frame
pointer,指向栈中一个函数的local变量的首地址), AP(augument pointer,指向
栈中函
数调用的实参位置), ISP(interrupt stack pointer,中断栈指针), 以及其他的
通用寄
存器等.
        (3)系统层次的保存: 包括proc,u,虚拟存储空间管理表格,中断处理栈.
以便于
该进程再一次得到CPU时间片时能正常运行下去.既然系统已经处理好所有这些中
断处理
的过程, 我们做程序还有什么要担心的呢? 我们尽可以使用系统提供的多进程的
特点,
让几个程序精诚合作, 简单而又高效地把结果给它搞出来.
    另外,UNIX系统本身也是用C语言写的多进程程序,多进程是UNIX的特点,
当我们
熟悉了多进程后,将会对UNIX系统机制有一个较深的认识.首先我介绍一下多
进程程
序的一些突出的特点:
    1.并行化
        一件复杂的事件是可以分解成若干个简单事件来解决的, 这在程序员
    的大脑中早就形成了这种概念, 首先将问题分解成一个个小问题, 将小问
    题再细分, 最后在一个合适的规模上做成一个函数. 在软件工程中也是这
    么说的. 如果我们以图的方式来思考, 一些小问题的计算是可以互不干扰
    的, 可以同时处理, 而在关键点则需要统一在一个地方来处理, 这样程序
    的运行就是并行的, 至少从人的时间观念上来说是这样的. 而每个小问题
    的计算又是较简单的.
    2.简单有序
        这样的程序对程序员来说不亚于管理一班人, 程序员为每个进程设计
    好相应的功能, 并通过一定的通讯机制将它们有机地结合在一起, 对每个
    进程的设计是简单的, 只在总控部分小心应付(其实也是蛮简单的), 就可
    完成整个程序的施工.
    3.互不干扰
        这个特
阅读(1355) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~