操作系统-进程

总结操作系统概念第七版中的概念

1.程序和进程:程序本身不是进程,只是被动实体,如存储在磁盘上包含一系列指令的文件内容(可执行文件);进程是活动实体,它由一个程序计数器来表示下一个要执行的命令和相关资源集合;当一个可执行文件被装入内存时,一个程序才能被称为进程。

2.进程状态图:

3.调度队列:进程进入系统会被加到作业队列中,而驻留在内存中就绪的、等待运行的进程保存在就绪队列中。所有活动的进程用task_struct双向链表表示,内核为当前进程保存一个current指针来操作task_struct中的字段。

4.调度程序:操作系统由调度程序从这些队列中选择进程执行。进程被放到大容量存储设备的缓冲池中长期调度程序/作业调度程序从池中选择进程并装入内存准备执行短期调度程序/CPU调度程序从准备执行的进程中选择进程并为它分配CPU

差别:调度程序执行频率不同,短期xx频繁为CPU选择新进程,由于执行间隔时间断(至少100ms一次),就必须要快(如果花费10ms,就有9%的CPU时间浪费)。长期xx数分钟一次,控制内存中进程数量,只有进程离开系统后,才可能需要长期xx。

长期xx需要注意分配I/O为主(执行I/O花费时间更久,如果全是此类型,没有多少计算需求,短期调度队列空闲)或CPUC为主的进程的组合。

另:中期调度程序可以将进程从内存或CPU竞争中移除,之后再重新调入从中断处继续执行。

5.上下文切换:将CPU切换到另一个进程需要保存当前进程的状态在PCB中,然后装入经调度要执行的并已保存的另一个进程的PCB。进程上下文用进程PCB(process control block)表示,包括CPU寄存器的值、进程状态和内存管理信息等。

6.进程创建:根据一个唯一的进程标识符pid(process identifier)识别进程。

  • 父进程/子进程:当进程创建新进程时:1.父进程与子进程并发;2.父进程等待直到某个或全部子进程执行完。
  • 新进程地址空间:1.与父进程有相同的程序和数据;2.子进程装入另一个新程序。

fork创建新进程,新进程复制原进程的地址空间,这种机制运行父子进程方便通信。父子进程都继续执行调用fork之后的指令,但子进程返回值0,父进程返回值为子进程pid(非零)。

7.协作进程间通信IPC:共享内存:建立一块供协作进程共享的内存区域,通过向此区域读/写交换信息,更快的速度进行通信,仅在建立共享内存区域时需要内核介入,建立成功后为常规内存访问不需要内核介入;消息传递:在协作进程间交换消息,对于交换较少数量的数据很有用,因为不需要避免冲突,更易于实现,又因为消息传递常用系统调用实现,所以需要更多内核介入的时间。

8.客户机-服务器通信:Socket通信,分布式进程通信,只交换无结构的字节流,客户机/服务器程序要自己加上数据结构;远程过程调用RPC,建立在IPC之上,基于消息的通信方案来提供远程服务,消息传递给位于远程系统上监听端口号的RPC服务器,每个消息包含要执行函数的名称和传递给函数的参数;远程方法调用RMI,允许线程调用远程对象的方法,远程可能在同一计算机的不同JVM上。

RPC/RMI区别:RPC只调用远程的子程序或函数,RMI可以调用远程对象的方法;RPC远程过程的参数是普通数据结构,RMI可以将对象座位参数传递。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值