第三章 进程
3.1进程概念
进程就是执行中的程序
进程包含堆栈段,数据段。
进程是活动实体,而程序是被动实体,程序只是一系列的指令而已。
进程状态有:新的,运行,等待,就绪,终止
进程控制块(任务控制块,PCB)
包含
1. 进程状态
2. 进程编号
3. 程序计数器:进程下个指令的地址
4. CPU寄存器:累加器,索引寄存器,堆栈指针,通用寄存器和其他条件码信息寄存器
5. CPU调度信息:进程优先级,调度队列的指针和其他调度参数
6. 内存管理信息:基址和界限寄存器的值,页表或段表
7. 记账信息:CPU时间,实际使用时间,时间界限,记账数据,作业或进程数量
8. I/O状态信息:分配给进程的I/O设备列表,打开的文件列表。
3.4进程间通信
1. 信息共享
2. 提高运算速度:将任务分解为子任务,需要多个处理单元
3. 模块化
4. 方便
两种基本模式:共享内存, 消息传递
3.6客户机-服务器系统通信
Socket
由IP地址和一个端口号组成。
- telnet 监听端口23
- ftp 监听端口21
- web/http 监听端口80
Java提供三种socket:
- 面向连接socket,TCP
- 无连接socket,UDP
- 多点传送socket,可以发给多个接受者
socket虽然高效,但是属于低级的分布式进程通信,在于其只允许在线程之间交换无结构的字节流。
远程过程调用RPC
Java的远程方法调用RMI
RMI和RPc根本不同:
1. RPC支持子程序编程,只能调用远程的子程序或函数;而RMI基于对象的,支持调用远程对象的方法;
2. 在RPC中,远程过程的参数是普通数据结构;而RMI可以将对象作为参数传递给远程方法,这样使用户能够开发分布在网络上的Java应用程序。