进程与线程

进程:是程序执行的一次过程,分配和管理资源的基本单位,每个进程都有一个自己的地址空间。
线程:是Cpu调度和分配的基本单位,可同一个进程的其他线程共享全部资源。
关系:线程是进程的一部分,一个线程只能属于一个进程,一个进程可以有多个线程。(至少一个)

资源:指的是Cpu、内存、文件、网络等
根本区别:进程是操作系统资源的基本单位,而线程是任务调度和执行的基本单位
开销方面:每个进程都有独立的代码和数据空间,进程间切换开销较大。同一类线程共享代码段和数据空间,每个线程也有自己独立的运行栈和程序计数器,线程之间切换开销小
内存分配:操作系统在程序运行过程中为其分配内存空间。除cpu外不会为线程,分配内存,所需资源来源于进程,线程组之间只能共享资源。

进程间通信方式:

  • 1.管道:内核中维护的一段内存,有名管道(只能在父子进程中通信),无名管道(非父子进程中都能通信)
  • 2.信号量:通过同步和互斥来使通信
  • 3.消息队列:内核维护的一个FIFO,往队列中放入消息,在往队列中拿出消息
  • 4.共享内存:大片数据映射到同一片内存,一个编码,一个解码

线程间通信方式

  • 互斥量+条件变量:

Linux的虚拟内存详解:

虚拟内存:为了运行比实际物理内存大的程序而产生的。
虚拟内存大小:取决于cpu最大寻址能力,也就是计数器的字长,32位机,能访问到2的32次方,即4G。
程序的特点是,总有稳定运行一小部分程序。
将要运行的那段从辅存复制到内存中,即换入,反之换出
虚拟地址空间与物理地址空间如何进行映射:页表
虚拟内存空间有个管理虚拟地址的叫页,物理内存管理地址的叫页框
将页表和框对应起来:映射处理器。实现虚拟地址和物理地址的访问

来自:
https://blog.csdn.net/qq_38410730/article/details/81036768?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

内存映射机制:将虚拟内存与物理内存对应起来
fork

mmap
创建新的虚拟地址内存空间,并将磁盘对象映射到新建的虚拟地址空间

网络编程

https://blog.csdn.net/gneveek/article/details/8699198?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159520757819724843300571%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159520757819724843300571&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-1-8699198.pc_ecpm_v3_pc_rank_v3&utm_term=%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值