ch3 process

进程产生原因:CPU想要并发地执行多个程序以提高效率
Process Concept


堆栈:临时数据(函数参数,返回地址,局部变量)
数据段:全局变量
堆:动态分配的内存
- 程序不是进程,是储存在磁盘被的动的实体,可执行文件,进程是活动实体,是在内存中运行的程序
一个程序可以是多个进程


process state(非常重要!!)

会画进程状态图!)
processs control block(进程控制块)

PCB用于表示进程信息
- PCB示例

process execution--protection



1142421833-1265342386.png)
Process Execution — Time-sharing


Register Saves/Restores


Threads(线程)

Process Scheduling(进程调度)

Schedulers(调度程序) — Short-term Scheduler

短期调配程序从准备执行的进程中选择进程执行(分配CPU)
Schedulers — Long-term scheduler

长期调度程序选择哪个队列被加到就绪队列中
Schedulers — Medium-term scheduler

Operations on Processes

Process Creation

进程执行过程中会创建多个新进程,父进程-子进程数
- 进程标识符(pid),用于进程识别和索引
父子进程关系一个很好的例子
理解:所有代码都是父进程执行完后子进程也执行一遍,具体顺序却是不定的 - 进程创建新进程时:
1.父子进程并发执行
2.父进程等待,知道某个或者全部子进程执行完

讲的很好的fork()执行分析 - 新进程地址空间也有两种可能
1.子进程是父进程复制品
2.子进程加载另一个新程序


Process Termination(进程终止)

进程执行完最后语句,通过系统调用exit()请求操作系统删除自身,进程终止,进程可以返回状态值到父进程,释放所有系统资源
Interprocess Communication

shared memory:共享内存。建立起一个供协作进程共享的内存区域


message passing:信息传递。通过在协作进程间交换消息来实现通信





Producer-Consumer Problem


采用共享内存解决,当消费者消费一项时,生产者生产另一些。避免消费者消费一个尚未生产出的项

采用信息传递解决,生产者只需阻塞send()等待消息被送到接收者或邮箱。 消费者调用recieve(),它会阻塞知道有一个消息可用

Communication in Client-Server Systems
客户机/服务器通信
Sockets(套接字)

Remote Procedure Calls(远程过程调用)

Pipes(管道)



浙公网安备 33010602011771号