多进程详解
多进程详解.txt
一.多进程程序的特点
进程是一个具有独立功能的程序关于某个数据集合的一次可以并发执行的运
行活动,是处
于活动状态的计算机程序。
进程作为构成系统的基本细胞,
不仅是系统内部独立运行的实体,
而且是独立竞争资源的基本实体。
进程是资源管理的最小单位,线程是程序执行的最小单位。进程管理着资源(
比
如 cpu、内存、文件等等),而将线程分配到某个 cpu 上执行。在操作系统设计
上,从进程演化出线程,最主要的目的就是更好的支持多处理器系统和减小上下
文切换开销。
进程的状态 系统为了充分的利用资源,对进程区分了不同的状态.将进程分
为新
建,运行,阻塞,就绪和完成五个状态.
新建 表示进程正在被创建,
运行 是进程正在运行,
阻塞 是进程正在等待某一个事件发生,
就绪 是表示系统正在等待 CPU 来执行命令,
完成 表示进程已经结束了系统正在回收资源.
由于 UNIX 系统是分时多用户系统, CPU 按时间片分配给各个用户使用,而在实
质上应
该说 CPU 按时间片分配给各个进程使用, 每个进程都有自己的运行环境以使得
在 CPU 做进
程切换时不会忘记该进程已计算了一半的半成品”. 以 DOS 的概念来说,
进程的切换都
是一次DOS 中断处理过程, 包括三个层次:
第 1 页
多进程详解.txt
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 时
间片时能正常运行。 既然系统已经处理好所有这些中断处理的过程, 我们做程
序
还有什么要担心 的呢? 我们尽可以使用系统提供的多进程的特点, 让几个程序
精
诚合作, 简单而又高效地把结果给它搞出来。
多进程程序的
一些突出的特点:
并行化
简单有序
互不干扰
事务化
二.常用的多进程编程的系统调用
1)功能:创建一个新的进程.
第 2 页
多进程详解.txt
语法:
#include unistd.h
#include sys/types.h
pid_t fork();
说明:本系统调用产生一个新的进程, 叫子进程, 是调用进程的一个复制品.
调用进程叫父进
程, 子进程继承了父进程的几乎所有的属性。
简述:fork() 调用成功时,分别返回两个整数,对父进程返回 〉0 的整数,对
子进程返回
0,
进程:代码段(程序代码)
堆栈段(局部变量、函数返回地址、函数参数)
数据段(全局变量、常数等)
在 Linux 系统中,系统调用 fork 后,内核为完成系统调用 fork 要进行几步操
作:
第一步,为新进程在进程表中分配一个表项。系统对一个普通用户可以同
时运行的进
程数是有限制的,对超级用户没有该限制,但不能超过进程表的最大表项的
数目。
第二步,给子进程一个唯一的进程标识号(PID)
第三步,复制一个父进程的进程表项的副本给子进程。内核初始化子进程
的进程表项
时,是从父进程处拷贝的。所以子进程拥有与父进程一样的 uid、当前目录、
当前根、用户文件描述符表等。
第四步,
父进程相连的文件表和索引节点表的引用数加
您可能关注的文档
最近下载
- 大学英语六级词汇表-带音标.pdf VIP
- 第二章成本性态分析与变动成本法_管理会计.doc VIP
- 山东省春季高考英语真题与.docx VIP
- 山东省2024年春季高考考试语文试卷试题真题_可搜索.pdf VIP
- 2025年山东省春季高考英语试卷试题真题(含答案).pdf VIP
- 2021年山东省春季高考数学真题-【含答案】.docx VIP
- 【新教材】人教PEP版(2024)四年级下册英语全册教案(含教学计划).docx
- 2024年山东省春季高考数学试卷试题及答案详解.pdf VIP
- 2024年山东省春季高考数学试卷试题真题(含答案) (2).pdf VIP
- 2024年山东省春季高考数学试卷试题真题(含答案).pdf VIP
原创力文档

文档评论(0)