扬中网站建设,html在线运行,建设博客网站,网上做兼职的网站有哪些工作内存分配——内存管理#xff08;Memory Mangae)
进程如何管理内存#xff0c;其实是一个非常复杂的事情
核心结论#xff1a;每个进程的内存#xff0c;是彼此独立#xff0c;互不干扰的 通常情况下#xff0c;进程A不能直接访问进程B的内存;
为了系统的稳定性 如果…内存分配——内存管理Memory Mangae)
进程如何管理内存其实是一个非常复杂的事情
核心结论每个进程的内存是彼此独立互不干扰的 通常情况下进程A不能直接访问进程B的内存;
为了系统的稳定性 如果某个进程代码出bug比如写越界
写错影响的范围只是影响到自己这个进程不会影响到其他进程
系统上的一个进程崩溃影响了其他进程非常糟糕的体验
共享内存也是有限制的
不是所有的内存空间都能共享
这个情况我们也称为“进程独立性”
进程间通信Inter Process Communication
虽然有进程的独立性但是有时候也需要多个进程相互配合完成某个工作
进程间通信和进程的“独立性”并不冲突
系统提供一些公共的空间多个进程都能访问到让两个进程借助这种公共空间来交互数据
操作系统提供的“进程间通信”具体的方式其实有很多种本质上都是上述思路 Java程序员主要使用的进程间通信方式是文件和网络
网络是可以支持同一个主机的不同进程也能支持不同主机的不同进程适用性更高
后端这里很可能是一组服务器与另一组服务器之间进行通信
上诉对于进程的讨论只是序幕。实际上在Java中不太去鼓励多进程编程
线程就更加重要了
进程
多任务操作系统希望系统能够同时运行多个程序
如果是单任务系统完全不涉及进程也不需要管理更不需要调度
事实上进程是可以很好的解决并发编程这样的问题的
有些操作系统上面就只有进程这个概念
在一些特定的情况下进程的表现不尽人意。
比如有些场景下需要频繁的创建和销毁进程的时候此时使用多进程编程系统开销就会很大
早期编写一个服务器程序互联网发展早期网站/web开发这件事开始出现了最早wen开发是使用c语言来编写的服务器程序基于一种CGI这样的技术
基于多进程的编程模式 服务器同一时刻会收到很多请求
针对每个请求都会创建出一个进程给这个请求提供一定的服务返回对应的响应
一旦这个请求处理完了此时这个进程就要销毁了
如果请求很多意味着你的服务器就需要不停的创建新的进程不停销毁旧的进程频繁创建和释放
这样的操作开销很大资源的申请和释放
进程是资源CPU硬盘内存网络宽带分配最基本的单位
一个进程刚刚启动的时候首当其冲就是内存资源进程需要把依赖的代码和数据从磁盘加载到内存中
从系统分配一个内存并非是一件容易的事情
一般来说申请内存的时候需要指定一个大小系统内部就把各种大小的空闲内存通过一定的数据结构给组织起来了
实际申请的时候就需要去这样的空间中进行查找找到个大小合适的空闲内存