操作系统第三章-进程Process

进程是现代分时操作系统的工作单元,是操作系统进行资源分配和调度的基本单位

通过CPU的多路复用(进程之间切换CPU),所有进程可以并发执行

进程不只是程序代码,进程还包括当前活动,如程序计数器的值和寄存器的内容等,还包括堆.栈,数据等

1.进程状态

进程执行时会改变状态
有下面几个状态:
新的(new):进程正在被创建
运行(running):指令正在执行
等待(waiting):又称阻塞状态,进程等待发生某个事件
就绪(ready):进程等待分配处理器
终止(terminated):进程已经结束

进程状态图

2.进程控制块(Process Control Block,PCB)

进程控制块的包含信息在这里插入图片描述
在这里插入图片描述
1.CPU通过读取PCB内的信息来执行对应的进程
2.从保存状态PCB0到PCB1重新加载状态,这个时间段CPU是空闲时间,不执行P0和P1
3.在Lunix内核(C/C++)中,PCB采用task_stuct的双向链表表示

3.进程调度

1.调度队列

  • 进程在进入系统时会被加入到作业队列(job queue) 中,这个队列包括系统内所有进程
  • 就绪队列(ready queue)保存驻留在内存中,就绪的,等待运行的进程
  • 设备队列(device queue)等待特定IO设备的进程列表
    在这里插入图片描述

2.调度程序

操作系统通过调度程序来选择进程,而后执行进程

1.长期调度程序

如批处理系统,提交的进程数量多于可以立即执行的数量,就将进程保存到大容量存储设备(如磁盘)的缓冲池,长期调度就是将缓冲池内的进程调到内存里面去

2.短期调度程序

从准备执行的进程中选择进程,并分配CPU执行

3.中期调度程序

进程a正在执行,突然进程b需要立即执行,进程a就会中断,调度程序会将中断的进程调到缓冲池中,等到进程b执行完,又会从缓冲池中把进程a调到内存中继续执行

4.进程运行

进程树:进程在执行的过程中可能创建多个新的进程,创建进程称为父进程,而新的进程称为子进程.每个新进程可以再创建其他进程,形成进程树
PID:操作系统通过唯一的进程标识符(process identifier,pid)进行标识

1.进程创建

当进程创建新进程时,有两种执行可能:
1.父进程与子进程并发执行
2.父进程等待,直到某个或全部子进程执行完成
子进程的两种类型:
1.子进程是父进程的复制品
2.子进程执行的是一个新程序

linux操作系统使用fork()创建新进程
linux操作系统使用fork()创建新进程

2.进程终止

当进程完成执行最后语句并且通过系统调用exit()请求操作系统删除自身时,进程终止,操作系统会释放其资源

父进程终止子进程的类型:
1.子进程使用了超过它所分配的资源(如超过分配的内存的大小,无打印机等)
2.分配给子进程的任务,不在需要
3.父进程正在退出,而操作系统不允许无父进程的子进程继续执行(父进程终止,下面的所有子进程必须终止,级联终止)

5.客户机/服务器通信

1.socket(套接字)

通信的端点.通过网络通信的每对进程需要使用一对套接字
每个socket由ip和端口号组成
ip对应进程所在主机的地址
端口号对应进程

2.远程过程调用(RPC)

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复 信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。(查看原文)

3.管道(pipe)

普通管道:单向的,只允许单向通信;若要实现双向通信,就需要两个管道;当进程通信开始管道建立,如果进程通信结束,管道不存在
命名管道:可以双向;多个进程可以用一个命名管道进行通信;通信完成后,命名管道继续存在

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值