操作系统概念笔记3.进程

进程概念

进程包括栈,堆,数据段,代码段/文本段,程序计数器和寄存器

进程等待:等待发生某个事件

进程就绪:等待分配处理器

进程控制块(PCB):记录进程信息

 

进程调度

job queue:所有的进程

就绪队列:内存中就绪的进程

设备队列:等待特定I/O设备的进程列表。

长期调度:从磁盘中选择进程加载到内存

将I/O密集型进程和CPU密集型进程组合

中期调度:将进程从内存中移除

短期调度:从就绪队列中选择进程分配CPU

 

进程运行

级联终止:某些系统中,一个进程终止,它的所有子进程也应终止

wait:释放子进程的进程标识符和进程表中的条目

僵尸进程:子进程终止,父进程还没有调用wait

孤儿进程:父进程终止,子进程成为孤儿进程,被init进程收养

 

进程间通信

  • 消息传递与共享内存比较

消息传递:

     1.需要采用系统调用实现

     2.适合交换少量数据

     3.对于多核系统,性能更优

     4.更易实现

共享内存

    1.只在建立时需要系统调用

    2.存在缓存一致性问题

  • 消息传递分类

直接通信:需要通信的每对进程之间建立链路

对称性:sender明确receiver进程,receiver明确sender进程

非对称性:sender明确reverver进程,receiver不需要指定

间接通信:需要通信的两个进程共享一个邮箱

邮箱可以属于进程或者操作系统

 

客户机/服务器通信

  • 套接字

由IP + 端口号组成

服务器监听指定端口,等待客户请求

服务器端口<1024

      telnet:23

      ftp:21

      http:80

客户端口>1024

只允许通信线程交换无结构的字节流

  • RPC

客户传输的消息包括:指定函数的标识符+函数的参数

服务器返回函数执行结果

为了解决大端小端的问题:定义独立机器的数据表示(外数据表示XDR)

最多一次:服务器记录时间戳历史,如果消息的时间戳已经出现,则忽略

正好一次:在最多一次的基础上,向客户发送ACK

客户获取服务端口方式:

    1.预先固定

    2.服务器在固定端口提供提供交会服务程序,告知客户程序RPC名称对应的端口地址

  • 管道

属于特殊的文件

匿名管道:

     单向通信

     父子进程之间通信,只能由创建进程访问

     关闭未使用端:另一侧能够检测到EOF

命名管道:

     允许所有进程通信,双向,半双工

 

共享内存:

Poxis:

 

 

消息传递

 

套接字

 

匿名管道

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值