2 3 4

ch3 process


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

Process Concept



堆栈:临时数据(函数参数,返回地址,局部变量)
数据段:全局变量
堆:动态分配的内存

  • 程序不是进程,是储存在磁盘被的动的实体,可执行文件,进程是活动实体,是在内存中运行的程序
    一个程序可以是多个进程

process state(非常重要!!)


会画进程状态图!)

processs control block(进程控制块)


PCB用于表示进程信息

  • PCB示例

process execution--protection



![](https://img2022.cnblogs.com/blog/2401338/202205/2401338-2022051
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(管道)

posted @ 2022-05-11 10:49  kokomi~  阅读(48)  评论(0)    收藏  举报