Download presentation
Presentation is loading. Please wait.
1
Process Description And Control
CHAPTER 3 Process Description And Control
2
程序的执行顺序 1.程序的顺序执行 例子: S1:a:= x+y; S2:b:= a-5; S3:c:= b+1;
3
2.程序顺序执行时的特征 (1)顺序性:处理机的操作严格按照程序所规定的顺序执行。 (2)封闭性:程序运行时独占全机资源,程序一旦开始执行,其执行结果不受外界因素影响。 (3)可再现性:只要程序执行时的环境和初始条件相同,都将获得相同的结果。 (不论它是从头到尾不停顿地执行,还是“停停走走”地执行)
4
程序的并发执行
5
2.程序并发执行时的特征 1)间断性:由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。相互制约将导致并发程序具有“执行——暂停——执行”这种间断性的活动规律。 2)失去封闭性: 是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行已失去了封闭性。 3)不可再现性: 程序在并发执行时,由于失去了封闭性,导致不可再现性 。
6
例如,有两个循环程序A和已它们共享一个变量N。程序A每执行一次时,都要做N:=N+1操作;程序B每执行一次时,都要执行Print(N)操作,然后再将N置成“0”。程序A和B以不同的速度运行。这样,可能出现其计算结果不可再现性,亦即,程序经过多次执行后,虽然它们执行时的环境和初始条件相同,但得到的结果却各不相同。
7
Major Requirements of an Operating System
Interleave the execution of several processes to maximize processor utilization while providing reasonable response time Allocate resources to processes Support interprocess communication and user creation of processes
8
3.1 Process Also called a task Execution of an individual program
进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位 进程是可并发执行的程序在一个数据集合上的运行过程 Can be traced list the sequence of instructions that execute
9
例 假设内存中有3个进程A、B、C,他们的程序代码已全部装入内存。若A、C两进程需要执行12条指令,B进程需要执行4条指令,且B进程执行到第4条指令处必须等待I/O
12
Two-State Process Model
Process may be in one of two states Running(执行) Not-running(非执行)
13
Not-Running Process in a Queue
14
进程的创建 事 件 说 明 新的批作业 通常位于磁带或磁盘中的批作业控制流被提供给操作系统。当操作系统准备接纳新工作时。它将读取下一个作业控制命令 交互登录 终端用户登录到系统 操作系统因为提供一项服务而创建 操作系统可以创建一个进程,代表用户程序执行一个功能,使用户无需等待(如控制打印的进程) 由现有的进程生成 基于模块化的考虑,或者为了开发并行性,用户程序可以规定许多进程的创建
15
进程的终止 事件 说明 正常完成 进程自行执行一个操作系统服务调用,表示它已经结束运行 超过时限 无可用存储器
进程运行时间超过规定的时限。可以测量很多种类型的时间,包括总的运行时间(“挂钟时间”)。花费在执行上的时间以及对于交互进程从上一次用户输入到当前时刻的时间总量 无可用存储器 系统无法满足进程需要的存储器空间 越界 进程试图访问不允许访问的存储器单元 保护错误 进程试图使用不允许使用的资源或文件,或者试图以一种不正确的方式使用,如往只读文件中写 算术错误 进程试图进行被禁止的计算,如除以零或者存储器大于硬件可以接纳的数字
16
进程等待某一事件发生的时间超过了规定的最大值
接上表 事件 说明 时间超出 进程等待某一事件发生的时间超过了规定的最大值 I/O失败 在输入或输出期间发生错误,如找不到文件、在超过规定的最多努力次数后仍然读/写失败(例如当遇到了磁带上的一个坏区时)或者无效操作(如从行式打印机中读) 无效指令 进程试图执行一个不存在的指令(通常是由于转移到了数据区并企图执行数据) 特权指令 进程试图使用为操作系统保留的指令 数据误用 错误类型或未初始化的一块数据 操作员或操作系统干涉 由于某些原因,操作员或操作系统终止进程(例如,如果存在死锁) 父进程终止 当父进程终止时,操作系统可能会自动终止该进程的所有后代进程 父进程请求 父进程通常具有终止其任何后代进程的权力
17
A Five-State Model Running:占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机) Ready:准备执行
Blocked:等待某事件发生才能执行,如等待I/O完成等 New:进程已经创建,但未被OS接纳为可执行进程,并且程序还在辅存,PCB在内存 Exit:因停止或取消,被OS从执行状态释放
18
导致进程状态转换的事件
19
Null →New:新创建进程首先处于新状态
事 件 说 明 新的批作业 通常位于磁带或磁盘中的批作业控制流被提供给操作系统。当操作系统准备接纳新工作时。它将读取下一个作业控制命令 交互登录 终端用户登录到系统 操作系统因为提供一项服务而创建 操作系统可以创建一个进程,代表用户程序执行一个功能,使用户无需等待(如控制打印的进程) 由现有的进程生成 基于模块化的考虑,或者为了开发并行性,用户程序可以规定许多进程的创建
20
New→Ready:OS接纳新状态进程为就绪进程
Ready →Running:OS只能从就绪进程中选一个进程执行 Running →Exit:执行状态的进程执行完毕,或被取消,则转换为退出状态 Running→Ready:分时系统中,时间片用完,或优先级高的进程到来,将终止优先级低的进程的执行 Running →Blocked:执行进程需要等待某事件发生。通常因进程需要的系统调用不能立即完成,而阻塞
21
Blocked →Ready:当阻塞进程等待的事件发生,就转换为就绪状态
Ready → Exit:某些系统允许父进程在任何情况下终止其子进程。若一个父进程终止,其子孙进程都必须终止。 Blocked →Exit:因为它自身退出了,或者是因为某种原因被取消。
23
Using Two Queues
25
Suspended Processes Processor is faster than I/O so all processes could be waiting for I/O Swap these processes to disk to free up more memory Blocked state becomes suspend state when swapped to disk
26
Reasons for Process Suspension
27
被挂起进程的特征 不能被调度执行。 可能是等待某事件发生,若是,则阻塞条件独立于挂起条件,即使阻塞事件发生,该进程也不能执行。
为了阻止进程执行,可以通过代理使进程挂起。代理可以是进程自身或父进程、或OS。 只有代理才能使之由挂起状态转换为其他状态。
28
One Suspend State 一个挂起
29
Two Suspend States
30
具有挂起状态的进程状态转换 Blocked→Blocked/Suspend :OS通常将阻塞进程换出,以腾出内存空间
Blocked/Suspend→Ready/Suspend: 当Blocked/Suspend进程等待的事件发生时,可以将其转换为Ready/suspend Ready/Suspend→Ready:OS需要调入一个进程执行时 Ready→Ready/Suspend :挂起就绪进程,释放足够的内存空间 New → Ready/suspend(New Ready): 新进程创建后,可以插入到就绪队列或Ready/suspend队列。若无足够的内存分配给新进程,则需要New → Ready/Suspend
31
具有挂起状态的进程状态转换(续) Blocked/Suspend→Blocked:当Blocked/Suspend队列中有一个进程的阻塞事件可能会很快发生,则可将一个Blocked/Suspend进程换入内存,变为Blocked Running→Ready/Suspend :当执行进程的时间片用完时,会转换为Ready。或,一个高优先级的Blocked/Suspend进程正好变为非阻塞状态,OS可以将执行进程转换为Ready/Suspend状态 All→Exit:通常,Running → Exit。但某些OS中,父进程可以终止其子进程,使任何状态的进程都可转换为退出状态
32
3.2 Process Description ?问题: OS如何感知进程、控制进程及其所用的系统资源?
34
Operating System Control Structures
Information about the current status of each process and resource Tables are constructed for each entity the operating system manages - Memory Tables - I/O Tables - File Tables - Process Table
36
Memory Tables Allocation of main memory to processes
Allocation of secondary memory to processes Protection attributes for access to shared memory regions Information needed to manage virtual memory
37
I/O Tables I/O device is available or assigned Status of I/O operation
Location in main memory being used as the source or destination of the I/O transfer
38
File Tables Existence of files Location on secondary memory
Current Status Attributes Sometimes this information is maintained by a file-management system
39
Process Table The operationg system must maintain process table to manage processes. There is a primary process table(基本进程表) with one entry(表项) for each process . Each entry contains a pointer to a process image(进程映像).
40
说明两点: ①系统建立的四个表必须以某种方式 链接起来或交叉引用。操作系统是为进程管理存储器、I/O和文件的,因此进程表中必须有对这些资源的直接或间接引用。文件表中的文件可以通过I/O设备访问,有时它们也位于主存中或虚存中。
41
②操作系统最初如何知道创建表? 显然,操作系统必须知道基本环境的一些知识,如有多少主存空间. I/O设备是什么
42
Process Control Structures (进程控制结构)
这部分主要讨论以下三个内容: 1.进程位置 2.进程属性 3.进程控制块的作用
43
Process Location Process includes set of programs to be executed
Data locations for local and global variables Any defined constants Stack Process control block Collection of attributes Process image(映像) Collection of program, data, stack, and PCB
44
Process image User Data User Program System Stack:存放系统及过程调用地址、参数
Process Control Block(PCB):OS感知进程、控制进程的数据结构
45
Process Control Block Process Control Block, PCB:是OS控制和管理进程时所用的基本数据结构
作用:PCB是相关进程存在于系统中的唯一标志;系统根据PCB而感知相关进程的存在。 内容:通常情况下,PCB包含Identifiers(标识)、状态、控制、指针等多种信息。
46
Process Control Block Process identification
Processor State Information:通用寄存器、控制状态寄存器(含程序寄存器、条件代码、状态信息)、栈指针 Process Control Information:调度和状态信息、数据结构、进程间通信、进程权限、存储管理、拥有的资源及其利用情况
47
Process Control Block(PCB)
Process identification Identifiers Identifier of this process (进程ID) Identifier of the process that created this process (parent process) (父进程ID) User identifier (用户ID)
48
Process Control Block Processor State Information
User-Visible Registers A user-visible register is one that may be referenced by means of the machine language that the processor executes. Typically, there are from 8 to 32 of these registers, although some RISC implementations have over 100.
49
Process Control Block Processor State Information
Control and Status Registers These are a variety of processor registers that are employed to control the operation of the processor. These include •Program counter: Contains the address of the next instruction to be fetched •Condition codes: Result of the most recent arithmetic or logical operation (e.g., sign, zero, carry, equal, overflow) •Status information: Includes interrupt enabled/disabled flags, execution mode
50
Process Control Block Processor State Information Stack Pointers
Each process has one or more last-in-first-out (LIFO) system stacks associated with it. A stack is used to store parameters and calling addresses for procedure and system calls. The stack pointer points to the top of the stack.
51
Process Control Block Process Control Information
Scheduling and State Information •Process state: defines the readiness of the process to be scheduled for execution (e.g., running, ready, waiting, halted). •Priority: One or more fields may be used to describe the scheduling priority of the process. •Scheduling-related information: This will depend on the scheduling algorithm used. •Event: Identity of event the process is awaiting before it can be resumed
52
Process Control Block Process Control Information Data Structuring
A process may be linked to other process in a queue, ring, or some other structure. A process may exhibit a parent-child (creator-created) relationship with another process. The process control block may contain pointers to other processes to support these structures.
53
Process Control Block Process Control Information
Interprocess Communication Various flags, signals, and messages may be associated with communication between two independent processes. Some or all of this information may be maintained in the process control block. Process Privileges Processes are granted privileges in terms of the memory that may be accessed and the types of instructions that may be executed. In addition, privileges may apply to the use of system utilities and services.
54
Process Control Block Process Control Information Memory Management
This section may include pointers to segment and/or page tables that describe the virtual memory assigned to this process. Resource Ownership and Utilization Resources controlled by the process may be indicated, such as opened files. A history of utilization of the processor or other resources may also be included; this information may be needed by the scheduler.
56
进程的运行状态不同,被连接在不同的链表中
57
The Role of the Process Conrol Block (进程控制块的角色)
进程控制块是操作系统中最重要的数据结构。 进程控制块包含了OS所需要的所有信息,以便对进程进行控制。 进程控制块组定义了操作系统的状态。 The handler routine can read and write these blocks(PCB)to protect pcb。
58
3.3 PROCESS CONTROL Modes of Execution(CPU的执行模式) 1.用户模式:运行用户程序,无特权模式。
2.系统模式(控制模式、内核模式):运行OS内核程序,属特权模式。(见表3.8 -P138) 处理机如何知道它在什么模式下执行? 在PSW中有一位来指示当前CPU工作的模式。当用户执行系统调用时,才进行模式变换。
59
Typical Function of an OS Kernel
Process Management:进程创建和终止、调度、状态转换、同步和通信、管理PCB Memory Management:为进程分配地址空间、对换、段/页管理 I/O Management:缓存管理、为进程分配I/O通道和设备
60
Typical Function of an OS Kernel (支撑功能)
Interrupt handling,中断处理 Timing,时钟管理 Primitive(原语):Atomic Operation Accounting,统计 Monitoring,监测
61
Process Control Primitives
Process Switch,进程切换 Create and Terminate,创建与终止 Block and Wakeup,阻塞与唤醒 Suspend and Activate,挂起与激活
62
When to Switch a Process
Clock interrupt process has executed for the maximum allowable time slice I/O interrupt Memory fault memory address is in virtual memory so it must be brought into main memory
63
When to Switch a Process
Trap error occurred may cause process to be moved to Exit state Supervisor call(管理程序调入) such as file open
64
Change of Process State
Save context of processor including program counter and other registers Update the process control block of the process that is currently running Move process control block to appropriate queue - ready, blocked Select another process for execution
65
Change of Process State
Update the process control block of the process selected Update memory-management data structures Restore context of the selected process
66
Process Switching vs. Mode Switching
Process Switch,是作用于进程之间的一种操作。当分派程序收回当前进程的CPU 并准备把它分派给某个就绪进程时,该操作将被引用。 Mode Switch,是进程内部所引用的一种操作。当进程映像所包含的程序引用核心子系统所提供的系统调用时,该操作将被引用。
67
Process Creation Submission of a batch job User logs on
Created to provide a service such as printing Process creates another process
68
Process Creation ( creat()原语,步骤)
为进程分配一个唯一标识号ID 主进程表中增加一个新的表项 为进程分配空间 : 用户地址空间、用户栈空间、PCB空间。若共享已有空间,则应建立相应的链接。 初始化PCB:进程标识、处理机状态信息、进程状态 建立链接 :若调度队列是链表,则将新进程插入到就绪或(就绪,挂起)链表 建立或扩展其他数据结构
69
Process Termination Batch job issues Halt instruction User logs off
Quit an application Error and fault conditions
70
Reasons for Process Termination
Normal completion,正常结束 Time limit exceeded,超时终止,执行时间超过预计时间 Memory unavailable,内存不足,无法为进程分配所需的内存空间 Bounds violation,越界访问 Protection error,企图使用未允许用的数据,或操作方式错 Arithmetic error,计算错,如除零,或企图存储硬件允许的最大数 Time overrun,超时等待某事件发生
71
Reasons for Process Termination
I/O failure, 如找不到文件或多次重试仍无法读写文件,或无效操作 Invalid instruction,企图执行不存在的指令 Privileged instruction,企图执行特权指令 Data misuse,数据类型不符,或未初始化 Operating system intervention,操作员或OS干预,如发生死锁的时候 Parent terminates so child processes terminate Parent request
72
Reasons for Process Termination (destroy()原语,步骤)
根据被终止进程的标识符ID,找到其PCB,读出该进程的状态; 若该进程为执行状态,则终止其执行,调度新进程执行; 若该进程有子孙进程,则立即终止其所有子孙进程 将该进程的全部资源,或归还给其父进程,或归还给系统 将被终止进程(的PCB)从所在的队列中移出,等待其它程序来搜集信息
73
Process Block and Wakeup (阻塞的原因)
请求系统服务 启动某种操作:如I/O 新数据尚未到达 无新工作可做
74
Process Block and Wakeup (原语)
当出现阻塞事件,进程调用阻塞原语将自己阻塞。状态变为“阻塞状态”,并进入相应事件的阻塞队列 唤醒原语wakeup() 当阻塞进程期待的事件发生,有关进程调用唤醒原语,将等待该事件的进程唤醒。状态变为Ready,插入就绪队列
75
Process Suspend and Active (原语)
当出现挂起事件,系统利用挂起原语将指定进程或阻塞状态进程挂起。进程从内存换到外存,状态改变:Ready Ready,Suspend;Blocked Blocked,Suspend,插入相应队列 激活原语active() 当激活事件发生,系统利用激活原语将指定进程激活。进程从外存换入到内存,状态改变:Ready,Suspend Ready ;Blocked,Suspend Blocked ,插入相应队列
76
3.3.3 进程切换 在某一时刻,一个正在运行的进程被中断,操作系统指定另一个进程为运行状态,并把控制权交给这个进程。
什么事件触发进程的切换? 表3.8 给出了触发进程的切换的事件。
77
表3.8进程执行的中断机制 机制 原因 使用 中断 当前指令的外部执行 对异步外部事件的反应 陷入 与当前指令的执行相关
处理一个错误或异常条件 管理程序调用 显式请求 调用操作系统函数
78
两种类型的系统中断 : ①中断:与运行进程无关的某种类型的外部事件引起的中断。I/O中断。 ②陷阱:当前正在运行的进程所产生的错误或异常条件相关。如非法的文件访问。 常见的中断如下: ①时钟中断:时间片到, 进程必须切换到就绪状态,调入另一个进程。 ②I/O中断: ③存储器失效:缺页或缺段中断.
79
进程切换可以在操作系统从当前正在运行的进程中获得控制权的任何时刻发生。 模式切换:发生模式切换可以不改变正处于运行状态的进程状态。
何时切换进程 ? 进程切换可以在操作系统从当前正在运行的进程中获得控制权的任何时刻发生。 模式切换:发生模式切换可以不改变正处于运行状态的进程状态。 处理器需要做以下工作:(模式切换) 1.保存当前正在执行的程序的上下文环境(PSW,PC,AX,BX,ES,CS等)。 2.把程序计数器置成中断处理程序的开始地址。 3.从用户模式切换到内核模式,使得中断处理代码可以包含有特权的指令。
80
程序状态的变化 一个完整的进程切换步骤如下: 1.保存处理器上下文环境,包括程序计数器和其他寄存器。
2.更新当前处于运行状态的进程的进程控制块,包括把进程的状态改变到另一状态(就绪,阻塞。就绪/挂起或退出)。还必须更新其他相关域,包括离开运行状态的原因和计账信息。 3.把进程的进程控制块移到相应的队列(就绪、在事件i处阻塞、就绪/佳起)。 4.选择一个要执行的进程。 5.更新所选择进程的进程控制块,包括把进程的状态变为运行。 6.更新存储管理数据结构(地址变换)。 7.由被选择进程的上下文环境设置处理器,通过载入程序计数器和其他寄存器以前的值来实现新调入的进程执行。
81
3.3.4操作系统的执行 无进程的内核 所有的进程之外执行操作系统内核(图3.14a).
操作系统有自己的存储器区域和系统栈,用于控制过程调用和返回。 操作系统可以完成保存进程环境的功能,并继续调度和分派另一个进程,
83
在用户进程中执行 操作系统从根本上说是用户调用的一组例程,在用户进程环境中执行,用于实现各种功能,如图3.14b所示。 在任何时刻,操作系统管理着n个进程映像,每个映像不仅包括图3.12中列出的区域,而且还包括内核程序的程序。数据和栈区域。
85
基于进程的操作系统 把操作系统作为一组系统进程来实现。在这种情况下,主要的内核函数被组织成独立的进程 。如图3.14c.
86
3.4 UNIX SVR4进程管理 UNIX系统V使用了一种简单但是功能强大的进程机制,且对用户可见。
大部分操作系统在用户进程环境中执行,因此需要两种模式,即用户模式和内核模式。 UNIX使用两类进程,即系统进程和用户进程。 系统进程在内核模式下运行,执行操作系统代码以实现管理功能。如存储空间的分配等。 用户进程在用户模式下运行以执行用户程序和实用程序。 在内核模式下运行以执行属于内核的指令。当产生异常(错误)或发生中断时,用户进程通过发系统调用进入内核模式。
87
Process State
88
表3.10 UNIX进程状态 进程状态 说明 用户运行 在用户模式下执行 内核运行 在内核模式下执行 就绪→运行,并驻留在存储器中
只要内核调度到就立即准备运行 睡眠,并驻留在存储器中 在某事件发生前不能执行,且进程在主存中(一种阻塞状态) 就绪→运行,被交换 进程已经就绪,但交换程序必须把它换入主存,内核才能调度它去执行 睡眠,被交换 进程正在等待一个事件,并且被交换到辅存中(一种阻塞状态) 被剥夺 进程从内核模式返回到用户模式,但是内核剥夺它,并做了进程切换,以调度另一个进程 创建 进程刚被创建,还没有做好运行的准备 僵死 进程不再存在、但是它留下一个记录,该记录可由其父进程收集
89
Process Description (进程描述)
UNIX中的进程是一组相当复杂的数据结构,它给操作系统提供管理和分派进程所需要的所有信息。 每个进程映像由三部分组织成:用户信息、寄存器信息和系统级控制信息。
90
表3.11 UNIX进程映像 用户信息 进程正文 程序中可执行的机器指令 进程数据 由这个进程的程序可访问的数据 用户栈
用户信息 进程正文 程序中可执行的机器指令 进程数据 由这个进程的程序可访问的数据 用户栈 包含参数、局部变量和在用户模式下运行的函数指针 共享存储区 与其他进程共享的存储区,用于进程间的通信 寄存器信息 程序计数器 将要执行的下一条指令地址,该地址是内核中或用户存储空间中的虚地址 处理器状态寄存器 包含在剥夺时的硬件状态,其内容和格式取决于硬件 栈指针 指向内核栈或用户栈的栈顶,取决于当前的运行模式 通用寄存器 与硬件相关 系统级控制信息 进程表项 定义了进程的状态,操作系统总是可以取到这个信息 U(用户)区 含有进程控制信息,这些信息只需要在该进程的上下文中存取 本进程区表 定义了从虚地址到物理地址的映射,还包含一个权限域,用于指明进程允许的访问类型:只读、读写或读-执行 内核栈 在内核模式下,进程执行时,内核调用的堆栈区
91
表3.12 UNIX进程表项 项目 说明 进程状态 进程的当前状态 指针 指向U区和进程存储区(文本、数据和栈) 进程大小
使操作系统知道给进程分配多少空间 用户标识号 实用户ID( real user ID):标识用户(外部标识符) 有效用户ID( effective user ID):被进程使用有效标识符(内部标识符) 进程标识号 该进程ID和父进程的ID。这一项是在系统调用FORK()期间,当进程进入“创建”状态时设置的 事件描述符 当进程处于睡眠状态时有效。当事件发生时,该进程转换到就绪状态 优先级 用于进程调度 信号量 信号量数被发送到进程,但还没有处理 计时器 包括进程执行时间。内核资源使用和用户设置的用于给进程发送警告信号的计时器 p-link 指向就绪队列中的下一个链接(进程就绪时有效) 存储器状态 指明进程映像是在主存中,还是已被换出。如果在存储器中,该域还指出它是否可能被换出,或者是临时锁定在主存中
92
表 3.13 UNIX的U区 项目 说明 进程表指针 指明对应于U区的表项 用户标识号 实用户ID和有效用户ID,用于确定用户的权限 计时器
记录进程(以及它的后代)在用户模式下执行的时间和在内核模式下执行的时间 信号处理程序数组 对系统中定义的每类信号,指出进程收到信号后将做出什么反应(退出、忽略、执行特定的用户函数) 控制终端 指明该进程的登录终端 错误域 记录在系统调用时遇到的错误 返回值 包含系统调用的结果 I/O参数 描述传送的数据量、源(或目标)数据数组在用户空间中的地址和用于I/O的文件偏移量 文件参数 描述进程的文件系统环境的当前目录和当前根 用户文件描述符表 记录进程已打开的文件 限度域 限制进程的大小和可以写入的文件大小 容许模式域 在文件中由进程创建设置的屏蔽模式
93
Process Control (进程控制)
UNIX中的进程创建是通过内核系统调用fork()实现的。当一个进程产生一个fork()请求时,操作系统执行以下功能: 1.为新进程在进程表中分配一个空项。 2.为子进程赋一个惟一的进程标识号。 3.为子进程建立父进程映像的副本,不包括共享存储区。 4.父进程所拥有的所有文件的计数器加1,以表示有一个另外的进程现在也拥有这些文件。 5.把子进程置为就绪状态。 6.返回子进程的进程号给父进程;对子进程返回零。
94
创建操作都在父进程的内核模式下完成,当内核完成这些功能后可以继续下面三种操作之一:
1.保留在父进程中。返回父进程进行fork()调用处。 2.控制转交给子进程。子进程开始执行代码,执行点与父进程相同,也就是说在fork()调用的返回处。 3.控制转交给另一个进程。父进程和子进程都置于就绪状态。
95
怎样区别在父进程还是在子进程执行? 上述创建进程的方法中父进程和子进程都执行相同的代码,其区别在于:当从fork()中返回时,测试返回参数,如果值为0,则它是子进程,可以转移到相应的用户程序中继续执行;如果值不为0,则它是父进程,继续执行父进程。
Similar presentations